From 9bbe889440a25ee0445df499490223dcf96daeb7 Mon Sep 17 00:00:00 2001 From: AparyanLuiza Date: Thu, 30 Nov 2023 02:46:03 +0400 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=8D=D0=BB=D0=B5=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=BE=D0=B2=20=D0=BD=D0=B0=20=D1=84=D0=BE=D1=80=D0=BC=D1=83=20?= =?UTF-8?q?FormBulldozerCollection?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FormBulldozerCollections.Designer.cs | 158 +++++++++++++----- ProjectBulldozer/FormBulldozerCollections.cs | 89 ++++++++-- 2 files changed, 193 insertions(+), 54 deletions(-) diff --git a/ProjectBulldozer/FormBulldozerCollections.Designer.cs b/ProjectBulldozer/FormBulldozerCollections.Designer.cs index c2d85cc..2390fee 100644 --- a/ProjectBulldozer/FormBulldozerCollections.Designer.cs +++ b/ProjectBulldozer/FormBulldozerCollections.Designer.cs @@ -15,58 +15,55 @@ #region Windows Form Designer generated code private void InitializeComponent() { - Instruments = new Panel(); + components = new System.ComponentModel.Container(); maskedTextBoxNumber = new MaskedTextBox(); ButtonRefreshCollection = new Button(); ButtonRemoveTractor = new Button(); ButtonAddTractor = new Button(); pictureBoxCollections = new PictureBox(); - Instruments.SuspendLayout(); + textBoxStorageName = new TextBox(); + bindingSource1 = new BindingSource(components); + bindingSource2 = new BindingSource(components); + groupBox1 = new GroupBox(); + listBoxStorage = new ListBox(); + ButtonAddObject = new Button(); + ButtonRemoveObject = new Button(); + Instruments = new GroupBox(); ((System.ComponentModel.ISupportInitialize)pictureBoxCollections).BeginInit(); + ((System.ComponentModel.ISupportInitialize)bindingSource1).BeginInit(); + ((System.ComponentModel.ISupportInitialize)bindingSource2).BeginInit(); + groupBox1.SuspendLayout(); + Instruments.SuspendLayout(); SuspendLayout(); // - // Instruments - // - Instruments.Anchor = AnchorStyles.Right; - Instruments.AutoSize = true; - Instruments.Controls.Add(maskedTextBoxNumber); - Instruments.Controls.Add(ButtonRefreshCollection); - Instruments.Controls.Add(ButtonAddTractor); - Instruments.Controls.Add(ButtonRemoveTractor); - Instruments.Location = new Point(588, 11); - Instruments.Margin = new Padding(3, 2, 3, 2); - Instruments.Name = "Instruments"; - Instruments.Size = new Size(150, 456); - Instruments.TabIndex = 0; - // // maskedTextBoxNumber // - maskedTextBoxNumber.Location = new Point(15, 51); + maskedTextBoxNumber.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + maskedTextBoxNumber.Location = new Point(33, 399); maskedTextBoxNumber.Margin = new Padding(3, 2, 3, 2); maskedTextBoxNumber.Mask = "0"; maskedTextBoxNumber.Name = "maskedTextBoxNumber"; - maskedTextBoxNumber.Size = new Size(119, 23); + maskedTextBoxNumber.Size = new Size(131, 23); maskedTextBoxNumber.TabIndex = 4; // // ButtonRefreshCollection // - ButtonRefreshCollection.Anchor = AnchorStyles.Right; - ButtonRefreshCollection.Location = new Point(3, 175); + ButtonRefreshCollection.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + ButtonRefreshCollection.Location = new Point(33, 499); ButtonRefreshCollection.Margin = new Padding(3, 2, 3, 2); ButtonRefreshCollection.Name = "ButtonRefreshCollection"; - ButtonRefreshCollection.Size = new Size(131, 27); + ButtonRefreshCollection.Size = new Size(131, 31); ButtonRefreshCollection.TabIndex = 2; - ButtonRefreshCollection.Text = "Обновить "; + ButtonRefreshCollection.Text = "Обновить все"; ButtonRefreshCollection.UseVisualStyleBackColor = true; - ButtonRefreshCollection.Click += ButtonRefreshCollection_Click; // // ButtonRemoveTractor // - ButtonRemoveTractor.Anchor = AnchorStyles.Right; - ButtonRemoveTractor.Location = new Point(3, 133); + ButtonRemoveTractor.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + ButtonRemoveTractor.Location = new Point(33, 444); ButtonRemoveTractor.Margin = new Padding(3, 2, 3, 2); ButtonRemoveTractor.Name = "ButtonRemoveTractor"; - ButtonRemoveTractor.Size = new Size(131, 27); + ButtonRemoveTractor.Size = new Size(131, 33); ButtonRemoveTractor.TabIndex = 1; ButtonRemoveTractor.Text = "Удалить объект"; ButtonRemoveTractor.UseVisualStyleBackColor = true; @@ -74,11 +71,11 @@ // // ButtonAddTractor // - ButtonAddTractor.Anchor = AnchorStyles.Top | AnchorStyles.Right; - ButtonAddTractor.Location = new Point(6, 20); + ButtonAddTractor.Anchor = AnchorStyles.Top; + ButtonAddTractor.Location = new Point(33, 346); ButtonAddTractor.Margin = new Padding(3, 2, 3, 2); ButtonAddTractor.Name = "ButtonAddTractor"; - ButtonAddTractor.Size = new Size(128, 27); + ButtonAddTractor.Size = new Size(131, 29); ButtonAddTractor.TabIndex = 0; ButtonAddTractor.Text = "Добавить объект"; ButtonAddTractor.UseVisualStyleBackColor = true; @@ -86,41 +83,116 @@ // // pictureBoxCollections // - pictureBoxCollections.Anchor = AnchorStyles.Left; - pictureBoxCollections.Location = new Point(12, 11); + pictureBoxCollections.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + pictureBoxCollections.Location = new Point(4, 4); pictureBoxCollections.Margin = new Padding(3, 2, 3, 2); pictureBoxCollections.Name = "pictureBoxCollections"; - pictureBoxCollections.Size = new Size(570, 456); + pictureBoxCollections.Size = new Size(693, 541); pictureBoxCollections.TabIndex = 1; pictureBoxCollections.TabStop = false; - pictureBoxCollections.Click += pictureBoxCollections_Click; + // + // textBoxStorageName + // + textBoxStorageName.Location = new Point(27, 32); + textBoxStorageName.Name = "textBoxStorageName"; + textBoxStorageName.Size = new Size(131, 23); + textBoxStorageName.TabIndex = 5; + textBoxStorageName.TextChanged += textBoxStorageName_TextChanged; + // + // groupBox1 + // + groupBox1.Controls.Add(listBoxStorage); + groupBox1.Controls.Add(ButtonAddObject); + groupBox1.Controls.Add(ButtonRemoveObject); + groupBox1.Controls.Add(textBoxStorageName); + groupBox1.Location = new Point(6, 22); + groupBox1.Name = "groupBox1"; + groupBox1.Size = new Size(189, 296); + groupBox1.TabIndex = 5; + groupBox1.TabStop = false; + groupBox1.Text = "Наборы"; + // + // listBoxStorage + // + listBoxStorage.FormattingEnabled = true; + listBoxStorage.ItemHeight = 15; + listBoxStorage.Location = new Point(27, 122); + listBoxStorage.Name = "listBoxStorage"; + listBoxStorage.Size = new Size(131, 94); + listBoxStorage.TabIndex = 9; + listBoxStorage.SelectedIndexChanged += listBoxStorage_SelectedIndexChanged; + // + // ButtonAddObject + // + ButtonAddObject.Anchor = AnchorStyles.Top; + ButtonAddObject.Location = new Point(27, 72); + ButtonAddObject.Margin = new Padding(3, 2, 3, 2); + ButtonAddObject.Name = "ButtonAddObject"; + ButtonAddObject.Size = new Size(131, 29); + ButtonAddObject.TabIndex = 7; + ButtonAddObject.Text = "Добавить набор"; + ButtonAddObject.UseVisualStyleBackColor = true; + ButtonAddObject.Click += ButtonAddObject_Click; + // + // ButtonRemoveObject + // + ButtonRemoveObject.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + ButtonRemoveObject.Location = new Point(27, 244); + ButtonRemoveObject.Margin = new Padding(3, 2, 3, 2); + ButtonRemoveObject.Name = "ButtonRemoveObject"; + ButtonRemoveObject.Size = new Size(131, 33); + ButtonRemoveObject.TabIndex = 8; + ButtonRemoveObject.Text = "Удалить набор"; + ButtonRemoveObject.UseVisualStyleBackColor = true; + ButtonRemoveObject.Click += ButtonRemoveObject_Click; + // + // Instruments + // + Instruments.Controls.Add(ButtonRefreshCollection); + Instruments.Controls.Add(groupBox1); + Instruments.Controls.Add(maskedTextBoxNumber); + Instruments.Controls.Add(ButtonAddTractor); + Instruments.Controls.Add(ButtonRemoveTractor); + Instruments.Location = new Point(697, 4); + Instruments.Name = "Instruments"; + Instruments.Size = new Size(200, 541); + Instruments.TabIndex = 6; + Instruments.TabStop = false; + Instruments.Text = "Инструменты"; // // FormTractorCollections // AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(748, 478); - Controls.Add(pictureBoxCollections); + ClientSize = new Size(904, 543); Controls.Add(Instruments); + Controls.Add(pictureBoxCollections); Margin = new Padding(3, 2, 3, 2); Name = "FormTractorCollections"; - Text = "Набор трактороов"; + Text = "Набор локомотивов"; + ((System.ComponentModel.ISupportInitialize)pictureBoxCollections).EndInit(); + ((System.ComponentModel.ISupportInitialize)bindingSource1).EndInit(); + ((System.ComponentModel.ISupportInitialize)bindingSource2).EndInit(); + groupBox1.ResumeLayout(false); + groupBox1.PerformLayout(); Instruments.ResumeLayout(false); Instruments.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)pictureBoxCollections).EndInit(); ResumeLayout(false); - PerformLayout(); - } - private void pictureBoxCollections_Click(object sender, EventArgs e) - { - throw new NotImplementedException(); } + #endregion - private Panel Instruments; private Button ButtonRefreshCollection; private Button ButtonRemoveTractor; private Button ButtonAddTractor; private PictureBox pictureBoxCollections; private MaskedTextBox maskedTextBoxNumber; + private GroupBox groupBox1; + private TextBox textBoxStorageName; + private BindingSource bindingSource1; + private BindingSource bindingSource2; + private ListBox listBoxStorage; + private Button ButtonAddObject; + private Button ButtonRemoveObject; + private GroupBox Instruments; } } \ No newline at end of file diff --git a/ProjectBulldozer/FormBulldozerCollections.cs b/ProjectBulldozer/FormBulldozerCollections.cs index 7b080fa..f82e027 100644 --- a/ProjectBulldozer/FormBulldozerCollections.cs +++ b/ProjectBulldozer/FormBulldozerCollections.cs @@ -1,29 +1,79 @@ using Bulldozer; -using ProjectBulldozer.Drawning; using ProjectBulldozer.Generics; -using ProjectBulldozer.MovementStrategy; namespace ProjectBulldozer { public partial class FormTractorCollections : Form { - private readonly TractorGenericCollection _Tractors; + private readonly TractorGenericStorage _storage; + //private readonly TractorGenericCollection _Tractors; public FormTractorCollections() { InitializeComponent(); - _Tractors = new TractorGenericCollection(pictureBoxCollections.Width, - pictureBoxCollections.Height); + _storage = new TractorGenericStorage(pictureBoxCollections.Width, pictureBoxCollections.Height); + } + private void ReloadObjects() + { + int index = listBoxStorage.SelectedIndex; + + listBoxStorage.Items.Clear(); + for (int i = 0; i < _storage.Keys.Count; i++) + { + listBoxStorage.Items.Add(_storage.Keys[i]); + } + if (listBoxStorage.Items.Count > 0 && (index == -1 || index >= listBoxStorage.Items.Count)) + { + listBoxStorage.SelectedIndex = 0; + } + else if (listBoxStorage.Items.Count > 0 && index > -1 && index < listBoxStorage.Items.Count) + { + listBoxStorage.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 listBoxStorage_SelectedIndexChanged(object sender, EventArgs e) + { + pictureBoxCollections.Image = _storage[listBoxStorage.SelectedItem?.ToString() ?? string.Empty]?.ShowTractors(); + } + private void ButtonRemoveObject_Click(object sender, EventArgs e) + { + if (listBoxStorage.SelectedIndex == -1) + { + return; + } + if (MessageBox.Show($"Удалить объект {listBoxStorage.SelectedItem}?", "Удаление", MessageBoxButtons.YesNo, + MessageBoxIcon.Question) == DialogResult.Yes) + { + _storage.DelSet(listBoxStorage.SelectedItem.ToString() ?? string.Empty); + ReloadObjects(); + } } private void ButtonAddTractor_Click(object sender, EventArgs e) { - if (_Tractors == null) return; + + if (listBoxStorage.SelectedIndex == -1) return; + + var obj = _storage[listBoxStorage.SelectedItem.ToString() ?? string.Empty]; + if (obj == null) + { + return; + } FormBulldozer form = new(); if (form.ShowDialog() == DialogResult.OK) { //проверяем, удалось ли нам загрузить объект - if (_Tractors + form.SelectedTractor != -1) + if (obj + form.SelectedTractor > -1) { MessageBox.Show("Объект добавлен"); - pictureBoxCollections.Image = _Tractors.ShowTractors(); + pictureBoxCollections.Image = obj.ShowTractors(); } else { @@ -33,15 +83,22 @@ namespace ProjectBulldozer } private void ButtonRemoveTractor_Click(object sender, EventArgs e) { + if (listBoxStorage.SelectedIndex == -1) return; + var obj = _storage[listBoxStorage.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 != null) + if (obj - pos != null) { MessageBox.Show("Объект удален"); - pictureBoxCollections.Image = _Tractors.ShowTractors(); + pictureBoxCollections.Image = obj.ShowTractors(); } else { @@ -50,7 +107,17 @@ namespace ProjectBulldozer } private void ButtonRefreshCollection_Click(object sender, EventArgs e) { - pictureBoxCollections.Image = _Tractors.ShowTractors(); + if (listBoxStorage.SelectedIndex == -1) return; + var obj = _storage[listBoxStorage.SelectedItem.ToString() ?? string.Empty]; + if (obj == null) + { + return; + } + pictureBoxCollections.Image = obj.ShowTractors(); + } + private void textBoxStorageName_TextChanged(object sender, EventArgs e) + { + } } }