#region Imports
|
|
using DPumpHydr.WinFrmUI.RLT.Enum.Poison;
|
using System;
|
using System.Collections;
|
using System.Windows.Forms;
|
|
#endregion
|
|
namespace DPumpHydr.WinFrmUI.RLT.Util
|
{
|
#region PoisonUtil
|
|
#region PoisonDefaults
|
|
internal static class PoisonDefaults
|
{
|
public const ColorStyle Style = ColorStyle.Blue;
|
public const ThemeStyle Theme = ThemeStyle.Light;
|
|
public static class PropertyCategory
|
{
|
public const string Appearance = "Poison Appearance";
|
public const string Behaviour = "Poison Behaviour";
|
}
|
}
|
|
#endregion
|
|
#region HiddenTabClass
|
public class HiddenTabs
|
{
|
public HiddenTabs(int id, string page)
|
{
|
Index = id;
|
Tabpage = page;
|
}
|
|
public int Index { get; }
|
|
public string Tabpage { get; }
|
}
|
#endregion HiddenTabClass
|
|
#region ListViewColumnSorter
|
|
//namespace System.Runtime.CompilerServices
|
//{
|
// public class ExtensionAttribute : Attribute { }
|
//}
|
|
//public static class ControlExtensions
|
//{
|
// public static void DoubleBuffering(this Control control, bool enable)
|
// {
|
// var method = typeof(Control).GetMethod("SetStyle", BindingFlags.Instance | BindingFlags.NonPublic);
|
// method.Invoke(control, new object[] { ControlStyles.OptimizedDoubleBuffer, enable });
|
// }
|
//}
|
|
public class ListViewColumnSorter : IComparer
|
{
|
public int ColumnToSort;
|
|
public SortOrder OrderOfSort;
|
|
private readonly CaseInsensitiveComparer ObjectCompare;
|
|
public SortModifiersType _SortModifier { set; get; } = SortModifiersType.SortByText;
|
|
public ListViewColumnSorter()
|
{
|
// Initialize the column to '0'
|
ColumnToSort = 0;
|
|
// Initialize the CaseInsensitiveComparer object
|
ObjectCompare = new CaseInsensitiveComparer();
|
}
|
|
public int Compare(object x, object y)
|
{
|
ListViewItem listviewX, listviewY;
|
|
// Cast the objects to be compared to ListViewItem objects
|
listviewX = (ListViewItem)x;
|
listviewY = (ListViewItem)y;
|
|
|
int compareResult;
|
if (DateTime.TryParse(listviewX.SubItems[ColumnToSort].Text, out DateTime dateX) && DateTime.TryParse(listviewY.SubItems[ColumnToSort].Text, out DateTime dateY))
|
{
|
compareResult = ObjectCompare.Compare(dateX, dateY);
|
}
|
else
|
{
|
compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text, listviewY.SubItems[ColumnToSort].Text);
|
}
|
|
// 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;
|
}
|
}
|
|
public int SortColumn
|
{
|
set => ColumnToSort = value;
|
get => ColumnToSort;
|
}
|
|
public SortOrder Order
|
{
|
set => OrderOfSort = value;
|
get => OrderOfSort;
|
}
|
}
|
|
#endregion
|
|
#endregion
|
}
|