Browse Source

allow sorting of GAC panel

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@947 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Markus Palme 20 years ago
parent
commit
bfd3512e6b
  1. 46
      src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/GacReferencePanel.cs

46
src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/GacReferencePanel.cs

@ -20,10 +20,43 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -20,10 +20,43 @@ namespace ICSharpCode.SharpDevelop.Gui
{
public class GacReferencePanel : ListView, IReferencePanel
{
class ColumnSorter : IComparer
{
private int column = 0;
bool asc = true;
public int CurrentColumn
{
get
{
return column;
}
set
{
if(column == value) asc = !asc;
else column = value;
}
}
public int Compare(object x, object y)
{
ListViewItem rowA = (ListViewItem)x;
ListViewItem rowB = (ListViewItem)y;
int result = String.Compare(rowA.SubItems[CurrentColumn].Text, rowB.SubItems[CurrentColumn].Text);
if(asc) return result;
else return result * -1;
}
}
SelectReferenceDialog selectDialog;
ColumnSorter sorter;
public GacReferencePanel(SelectReferenceDialog selectDialog)
{
sorter = new ColumnSorter();
this.ListViewItemSorter = sorter;
this.selectDialog = selectDialog;
ColumnHeader referenceHeader = new ColumnHeader();
@ -31,6 +64,8 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -31,6 +64,8 @@ namespace ICSharpCode.SharpDevelop.Gui
referenceHeader.Width = 160;
Columns.Add(referenceHeader);
Sorting = SortOrder.Ascending;
ColumnHeader versionHeader = new ColumnHeader();
versionHeader.Text = ResourceService.GetString("Dialog.SelectReferenceDialog.GacReferencePanel.VersionHeader");
versionHeader.Width = 70;
@ -45,10 +80,19 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -45,10 +80,19 @@ namespace ICSharpCode.SharpDevelop.Gui
Dock = DockStyle.Fill;
FullRowSelect = true;
ItemActivate += new EventHandler(AddReference);
ColumnClick += new ColumnClickEventHandler(columnClick);
PrintCache();
}
void columnClick(object sender, ColumnClickEventArgs e)
{
if(e.Column < 2)
{
sorter.CurrentColumn = e.Column;
Sort();
}
}
public void AddReference(object sender, EventArgs e)
{
foreach (ListViewItem item in SelectedItems) {

Loading…
Cancel
Save