Реализована логика сортировки в форме

This commit is contained in:
Никита Потапов 2023-12-16 23:33:43 +04:00
parent 44887378b2
commit 83e8f8850c
2 changed files with 48 additions and 1 deletions

View File

@ -29,6 +29,8 @@
private void InitializeComponent()
{
groupBoxTools = new GroupBox();
buttonSortByType = new Button();
buttonSortByColor = new Button();
groupBoxStorages = new GroupBox();
buttonRemoveStorage = new Button();
listBoxStorages = new ListBox();
@ -53,6 +55,8 @@
//
// groupBoxTools
//
groupBoxTools.Controls.Add(buttonSortByType);
groupBoxTools.Controls.Add(buttonSortByColor);
groupBoxTools.Controls.Add(groupBoxStorages);
groupBoxTools.Controls.Add(maskedTextBoxNumber);
groupBoxTools.Controls.Add(buttonRefreshCollection);
@ -66,6 +70,26 @@
groupBoxTools.TabStop = false;
groupBoxTools.Text = "Инструменты";
//
// buttonSortByType
//
buttonSortByType.Location = new Point(6, 273);
buttonSortByType.Name = "buttonSortByType";
buttonSortByType.Size = new Size(218, 29);
buttonSortByType.TabIndex = 7;
buttonSortByType.Text = "Сортировка по типу";
buttonSortByType.UseVisualStyleBackColor = true;
buttonSortByType.Click += buttonSortByType_Click;
//
// buttonSortByColor
//
buttonSortByColor.Location = new Point(6, 305);
buttonSortByColor.Name = "buttonSortByColor";
buttonSortByColor.Size = new Size(218, 29);
buttonSortByColor.TabIndex = 6;
buttonSortByColor.Text = "Сортировка по цвету";
buttonSortByColor.UseVisualStyleBackColor = true;
buttonSortByColor.Click += buttonSortByColor_Click;
//
// groupBoxStorages
//
groupBoxStorages.Controls.Add(buttonRemoveStorage);
@ -246,5 +270,7 @@
private ToolStripMenuItem загрузитьToolStripMenuItem;
private OpenFileDialog openFileDialog;
private SaveFileDialog saveFileDialog;
private Button buttonSortByType;
private Button buttonSortByColor;
}
}

View File

@ -142,7 +142,7 @@ namespace ProjectStormtrooper
{
MessageBox.Show(ex.Message);
_logger.LogWarning("Ошибка добавления: " + ex.Message);
}
}
}
/// <summary>
/// Удаление объекта из набора
@ -246,5 +246,26 @@ namespace ProjectStormtrooper
}
}
}
/// <summary>
/// Сортировка по сравнителю
/// </summary>
/// <param name="comparer"></param>
private void ComparePlanes(IComparer<DrawingPlane?> comparer)
{
if (listBoxStorages.SelectedIndex == -1)
{
return;
}
var obj = _storage[listBoxStorages.SelectedItem.ToString() ?? string.Empty];
if (obj == null)
{
return;
}
obj.Sort(comparer);
pictureBoxCollection.Image = obj.ShowPlanes();
}
private void buttonSortByType_Click(object sender, EventArgs e) => ComparePlanes(new PlaneCompareByType());
private void buttonSortByColor_Click(object sender, EventArgs e) => ComparePlanes(new PlaneCompareByColor());
}
}