-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Total overhaul. No more metadata requests. Metadata instead part of S…
…3 object key
- Loading branch information
Ove Bakken
committed
Sep 27, 2020
1 parent
b9e2013
commit 432026f
Showing
16 changed files
with
1,915 additions
and
1,534 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Text; | ||
|
||
namespace MyS3.GUI | ||
{ | ||
using System.Collections; | ||
using System.Windows.Forms; | ||
|
||
/// <summary> | ||
/// This class is an implementation of the 'IComparer' interface. | ||
/// </summary> | ||
public class ListViewColumnSorter : IComparer | ||
{ | ||
/// <summary> | ||
/// Specifies the column to be sorted | ||
/// </summary> | ||
private int ColumnToSort; | ||
|
||
/// <summary> | ||
/// Specifies the order in which to sort (i.e. 'Ascending'). | ||
/// </summary> | ||
private SortOrder OrderOfSort; | ||
|
||
/// <summary> | ||
/// Case insensitive comparer object | ||
/// </summary> | ||
private CaseInsensitiveComparer ObjectCompare; | ||
|
||
/// <summary> | ||
/// Class constructor. Initializes various elements | ||
/// </summary> | ||
public ListViewColumnSorter() | ||
{ | ||
// Initialize the column to '0' | ||
ColumnToSort = 0; | ||
|
||
// Initialize the sort order to 'none' | ||
OrderOfSort = SortOrder.None; | ||
|
||
// Initialize the CaseInsensitiveComparer object | ||
ObjectCompare = new CaseInsensitiveComparer(); | ||
} | ||
|
||
/// <summary> | ||
/// This method is inherited from the IComparer interface. It compares the two objects passed using a case insensitive comparison. | ||
/// </summary> | ||
/// <param name="x">First object to be compared</param> | ||
/// <param name="y">Second object to be compared</param> | ||
/// <returns>The result of the comparison. "0" if equal, negative if 'x' is less than 'y' and positive if 'x' is greater than 'y'</returns> | ||
public int Compare(object x, object y) | ||
{ | ||
int compareResult = 0; | ||
ListViewItem listviewX, listviewY; | ||
|
||
// Cast the objects to be compared to ListViewItem objects | ||
listviewX = (ListViewItem)x; | ||
listviewY = (ListViewItem)y; | ||
|
||
// Compare the two items | ||
try | ||
{ | ||
compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text, listviewY.SubItems[ColumnToSort].Text); | ||
} | ||
catch (Exception) { } | ||
|
||
// Calculate correct return value based on object comparison | ||
if (OrderOfSort == SortOrder.Ascending) | ||
{ | ||
// Ascending sort is selected, return normal result of compare operation | ||
return compareResult; | ||
} | ||
else if (OrderOfSort == SortOrder.Descending) | ||
{ | ||
// Descending sort is selected, return negative result of compare operation | ||
return (-compareResult); | ||
} | ||
else | ||
{ | ||
// Return '0' to indicate they are equal | ||
return 0; | ||
} | ||
} | ||
|
||
/// <summary> | ||
/// Gets or sets the number of the column to which to apply the sorting operation (Defaults to '0'). | ||
/// </summary> | ||
public int SortColumn | ||
{ | ||
set | ||
{ | ||
ColumnToSort = value; | ||
} | ||
get | ||
{ | ||
return ColumnToSort; | ||
} | ||
} | ||
|
||
/// <summary> | ||
/// Gets or sets the order of sorting to apply (for example, 'Ascending' or 'Descending'). | ||
/// </summary> | ||
public SortOrder Order | ||
{ | ||
set | ||
{ | ||
OrderOfSort = value; | ||
} | ||
get | ||
{ | ||
return OrderOfSort; | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.