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

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() private void InitializeComponent()
{ {
groupBoxTools = new GroupBox(); groupBoxTools = new GroupBox();
buttonSortByType = new Button();
buttonSortByColor = new Button();
groupBoxStorages = new GroupBox(); groupBoxStorages = new GroupBox();
buttonRemoveStorage = new Button(); buttonRemoveStorage = new Button();
listBoxStorages = new ListBox(); listBoxStorages = new ListBox();
@ -53,6 +55,8 @@
// //
// groupBoxTools // groupBoxTools
// //
groupBoxTools.Controls.Add(buttonSortByType);
groupBoxTools.Controls.Add(buttonSortByColor);
groupBoxTools.Controls.Add(groupBoxStorages); groupBoxTools.Controls.Add(groupBoxStorages);
groupBoxTools.Controls.Add(maskedTextBoxNumber); groupBoxTools.Controls.Add(maskedTextBoxNumber);
groupBoxTools.Controls.Add(buttonRefreshCollection); groupBoxTools.Controls.Add(buttonRefreshCollection);
@ -66,6 +70,26 @@
groupBoxTools.TabStop = false; groupBoxTools.TabStop = false;
groupBoxTools.Text = "Инструменты"; 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
// //
groupBoxStorages.Controls.Add(buttonRemoveStorage); groupBoxStorages.Controls.Add(buttonRemoveStorage);
@ -246,5 +270,7 @@
private ToolStripMenuItem загрузитьToolStripMenuItem; private ToolStripMenuItem загрузитьToolStripMenuItem;
private OpenFileDialog openFileDialog; private OpenFileDialog openFileDialog;
private SaveFileDialog saveFileDialog; private SaveFileDialog saveFileDialog;
private Button buttonSortByType;
private Button buttonSortByColor;
} }
} }

View File

@ -142,7 +142,7 @@ namespace ProjectStormtrooper
{ {
MessageBox.Show(ex.Message); MessageBox.Show(ex.Message);
_logger.LogWarning("Ошибка добавления: " + ex.Message); _logger.LogWarning("Ошибка добавления: " + ex.Message);
} }
} }
/// <summary> /// <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());
} }
} }