From 988e9bf8d6b7b2face3b0234f9dc44a0f769ff9e Mon Sep 17 00:00:00 2001
From: KirillFirsof <117719052+KirillFirsof@users.noreply.github.com>
Date: Thu, 9 Nov 2023 21:34:06 +0400
Subject: [PATCH] =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=20=D1=81?=
=?UTF-8?q?=20=D1=84=D0=BE=D1=80=D0=BC=D0=BE=D0=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../FormTractorCollection.cs | 233 +++++++++++++-----
1 file changed, 166 insertions(+), 67 deletions(-)
diff --git a/RPP_FirstLaba_Tractor/RPP_FirstLaba_Tractor/FormTractorCollection.cs b/RPP_FirstLaba_Tractor/RPP_FirstLaba_Tractor/FormTractorCollection.cs
index 2d758b7..2c883d3 100644
--- a/RPP_FirstLaba_Tractor/RPP_FirstLaba_Tractor/FormTractorCollection.cs
+++ b/RPP_FirstLaba_Tractor/RPP_FirstLaba_Tractor/FormTractorCollection.cs
@@ -14,32 +14,112 @@ using ProjectTractor.MovementStrategy;
namespace ProjectTractor
{
public partial class FormTractorCollection : Form
- {
+ {
///
/// Набор объектов
///
- private readonly TractorsGenericCollection _tractors;
+ private readonly TractorsGenericStorage _storage;
///
/// Конструктор
///
public FormTractorCollection()
{
InitializeComponent();
- _tractors = new TractorsGenericCollection(pictureBoxCollection.Width, pictureBoxCollection.Height);
+ _storage = new TractorsGenericStorage(pictureBoxCollection.Width,
+ pictureBoxCollection.Height);
+ }
+ ///
+ /// Заполнение listBoxObjects
+ ///
+ private void ReloadObjects()
+ {
+ int index = listBoxStorages.SelectedIndex;
+ listBoxStorages.Items.Clear();
+ for (int i = 0; i < _storage.Keys.Count; i++)
+ {
+ listBoxStorages.Items.Add(_storage.Keys[i]);
+ }
+ if (listBoxStorages.Items.Count > 0 && (index == -1 || index
+ >= listBoxStorages.Items.Count))
+ {
+ listBoxStorages.SelectedIndex = 0;
+ }
+ else if (listBoxStorages.Items.Count > 0 && index > -1 &&
+ index < listBoxStorages.Items.Count)
+ {
+ listBoxStorages.SelectedIndex = index;
+ }
+ }
+ ///
+ /// Добавление набора в коллекцию
+ ///
+ ///
+ ///
+ ///
+ private void ButtonAddObject_Click(object sender, EventArgs e)
+ {
+ if (string.IsNullOrEmpty(textBoxStorageName.Text))
+ {
+ MessageBox.Show("Не все данные заполнены", "Ошибка",
+ MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ _storage.AddSet(textBoxStorageName.Text);
+ ReloadObjects();
+ }
+ ///
+ /// Выбор набора
+ ///
+ ///
+ ///
+ private void ListBoxObjects_SelectedIndexChanged(object sender,
+ EventArgs e)
+ {
+ pictureBoxCollection.Image =
+ _storage[listBoxStorages.SelectedItem?.ToString() ?? string.Empty]?.ShowTractors();
+ }
+ ///
+ /// Удаление набора
+ ///
+ ///
+ ///
+ private void ButtonDelObject_Click(object sender, EventArgs e)
+ {
+ if (listBoxStorages.SelectedIndex == -1)
+ {
+ return;
+ }
+ if (MessageBox.Show($"Удалить объект {listBoxStorages.SelectedItem}?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
+ {
+ _storage.DelSet(listBoxStorages.SelectedItem.ToString() ?? string.Empty);
+ ReloadObjects();
+ }
}
+ ///
+ /// Добавление объекта в набор
+ ///
+ ///
+ ///
private void ButtonAddTractor_Click(object sender, EventArgs e)
{
+ if (listBoxStorages.SelectedIndex == -1)
+ {
+ return;
+ }
+ var obj = _storage[listBoxStorages.SelectedItem.ToString() ?? string.Empty];
+ if (obj == null)
+ {
+ return;
+ }
FormTractor form = new();
if (form.ShowDialog() == DialogResult.OK)
{
- if (_tractors + form.SelectedTractor)
+ if (obj + form.SelectedTractor)
{
MessageBox.Show("Объект добавлен");
- pictureBoxCollection.Image = _tractors.ShowTractors();
+ pictureBoxCollection.Image = obj.ShowTractors();
}
else
{
@@ -55,16 +135,26 @@ namespace ProjectTractor
///
private void ButtonRemoveTractor_Click(object sender, EventArgs e)
{
+ if (listBoxStorages.SelectedIndex == -1)
+ {
+ return;
+ }
+ var obj = _storage[listBoxStorages.SelectedItem.ToString() ??
+ string.Empty];
+ if (obj == null)
+ {
+ return;
+ }
if (MessageBox.Show("Удалить объект?", "Удаление",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
int pos = Convert.ToInt32(maskedTextBoxNumber.Text);
- if (_tractors - pos)
+ if (obj - pos != null)
{
MessageBox.Show("Объект удален");
- pictureBoxCollection.Image = _tractors.ShowTractors();
+ pictureBoxCollection.Image = obj.ShowTractors();
}
else
{
@@ -76,25 +166,34 @@ namespace ProjectTractor
///
///
///
- private void ButtonRefreshCollection_Click(object sender, EventArgs
- e)
+ private void ButtonRefreshCollection_Click(object sender, EventArgs e)
{
- pictureBoxCollection.Image = _tractors.ShowTractors();
+ if (listBoxStorages.SelectedIndex == -1)
+ {
+ return;
+ }
+ var obj = _storage[listBoxStorages.SelectedItem.ToString() ??
+ string.Empty];
+ if (obj == null)
+ {
+ return;
+ }
+ pictureBoxCollection.Image = obj.ShowTractors();
}
private void InitializeComponent()
{
this.pictureBoxCollection = new System.Windows.Forms.PictureBox();
this.groupBox = new System.Windows.Forms.GroupBox();
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.ButtonDelObject = new System.Windows.Forms.Button();
+ this.listBoxStorages = new System.Windows.Forms.ListBox();
+ this.ButtonAddObject = new System.Windows.Forms.Button();
+ this.textBoxStorageName = new System.Windows.Forms.MaskedTextBox();
this.ButtonRefreshCollection = new System.Windows.Forms.Button();
this.ButtonRemoveTractor = new System.Windows.Forms.Button();
this.ButtonAddTractor = new System.Windows.Forms.Button();
this.maskedTextBoxNumber = new System.Windows.Forms.MaskedTextBox();
- this.groupBox1 = new System.Windows.Forms.GroupBox();
- this.maskedTextBox1 = new System.Windows.Forms.MaskedTextBox();
- this.button1 = new System.Windows.Forms.Button();
- this.listBoxStorages = new System.Windows.Forms.ListBox();
- this.button2 = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxCollection)).BeginInit();
this.groupBox.SuspendLayout();
this.groupBox1.SuspendLayout();
@@ -123,6 +222,53 @@ namespace ProjectTractor
this.groupBox.TabStop = false;
this.groupBox.Text = "Инструменты";
//
+ // groupBox1
+ //
+ this.groupBox1.Controls.Add(this.ButtonDelObject);
+ this.groupBox1.Controls.Add(this.listBoxStorages);
+ this.groupBox1.Controls.Add(this.ButtonAddObject);
+ this.groupBox1.Controls.Add(this.textBoxStorageName);
+ this.groupBox1.Location = new System.Drawing.Point(16, 29);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(224, 279);
+ this.groupBox1.TabIndex = 9;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "Наборы";
+ //
+ // ButtonDelObject
+ //
+ this.ButtonDelObject.Location = new System.Drawing.Point(12, 227);
+ this.ButtonDelObject.Name = "ButtonDelObject";
+ this.ButtonDelObject.Size = new System.Drawing.Size(203, 35);
+ this.ButtonDelObject.TabIndex = 3;
+ this.ButtonDelObject.Text = "Удалить набор";
+ this.ButtonDelObject.UseVisualStyleBackColor = true;
+ //
+ // listBoxStorages
+ //
+ this.listBoxStorages.FormattingEnabled = true;
+ this.listBoxStorages.ItemHeight = 20;
+ this.listBoxStorages.Location = new System.Drawing.Point(12, 116);
+ this.listBoxStorages.Name = "listBoxStorages";
+ this.listBoxStorages.Size = new System.Drawing.Size(203, 84);
+ this.listBoxStorages.TabIndex = 2;
+ //
+ // ButtonAddObject
+ //
+ this.ButtonAddObject.Location = new System.Drawing.Point(12, 59);
+ this.ButtonAddObject.Name = "ButtonAddObject";
+ this.ButtonAddObject.Size = new System.Drawing.Size(203, 29);
+ this.ButtonAddObject.TabIndex = 1;
+ this.ButtonAddObject.Text = "Добавить набор";
+ this.ButtonAddObject.UseVisualStyleBackColor = true;
+ //
+ // textBoxStorageName
+ //
+ this.textBoxStorageName.Location = new System.Drawing.Point(12, 26);
+ this.textBoxStorageName.Name = "textBoxStorageName";
+ this.textBoxStorageName.Size = new System.Drawing.Size(203, 27);
+ this.textBoxStorageName.TabIndex = 0;
+ //
// ButtonRefreshCollection
//
this.ButtonRefreshCollection.Location = new System.Drawing.Point(28, 464);
@@ -160,53 +306,6 @@ namespace ProjectTractor
this.maskedTextBoxNumber.Size = new System.Drawing.Size(203, 27);
this.maskedTextBoxNumber.TabIndex = 5;
//
- // groupBox1
- //
- this.groupBox1.Controls.Add(this.button2);
- this.groupBox1.Controls.Add(this.listBoxStorages);
- this.groupBox1.Controls.Add(this.button1);
- this.groupBox1.Controls.Add(this.maskedTextBox1);
- this.groupBox1.Location = new System.Drawing.Point(16, 29);
- this.groupBox1.Name = "groupBox1";
- this.groupBox1.Size = new System.Drawing.Size(224, 279);
- this.groupBox1.TabIndex = 9;
- this.groupBox1.TabStop = false;
- this.groupBox1.Text = "Наборы";
- //
- // maskedTextBox1
- //
- this.maskedTextBox1.Location = new System.Drawing.Point(12, 26);
- this.maskedTextBox1.Name = "maskedTextBox1";
- this.maskedTextBox1.Size = new System.Drawing.Size(203, 27);
- this.maskedTextBox1.TabIndex = 0;
- //
- // button1
- //
- this.button1.Location = new System.Drawing.Point(12, 59);
- this.button1.Name = "button1";
- this.button1.Size = new System.Drawing.Size(203, 29);
- this.button1.TabIndex = 1;
- this.button1.Text = "Добавить набор";
- this.button1.UseVisualStyleBackColor = true;
- //
- // listBoxStorages
- //
- this.listBoxStorages.FormattingEnabled = true;
- this.listBoxStorages.ItemHeight = 20;
- this.listBoxStorages.Location = new System.Drawing.Point(12, 116);
- this.listBoxStorages.Name = "listBoxStorages";
- this.listBoxStorages.Size = new System.Drawing.Size(203, 84);
- this.listBoxStorages.TabIndex = 2;
- //
- // button2
- //
- this.button2.Location = new System.Drawing.Point(12, 227);
- this.button2.Name = "button2";
- this.button2.Size = new System.Drawing.Size(203, 35);
- this.button2.TabIndex = 3;
- this.button2.Text = "Удалить набор";
- this.button2.UseVisualStyleBackColor = true;
- //
// FormTractorCollection
//
this.ClientSize = new System.Drawing.Size(893, 536);
@@ -232,10 +331,10 @@ namespace ProjectTractor
private Button ButtonAddTractor;
private MaskedTextBox maskedTextBoxNumber;
private GroupBox groupBox1;
- private Button button2;
+ private Button ButtonDelObject;
private ListBox listBoxStorages;
- private Button button1;
- private MaskedTextBox maskedTextBox1;
+ private Button ButtonAddObject;
+ private MaskedTextBox textBoxStorageName;
private PictureBox pictureBoxCollection;
}