From dbcbcb24eaf0bc651c3ba82a9b7060a16bc6e05a Mon Sep 17 00:00:00 2001
From: MariaBelkina <89656988623@mail.ru>
Date: Tue, 7 May 2024 09:12:53 +0400
Subject: [PATCH] =?UTF-8?q?4=20=D0=BB=D0=B0=D0=B1=D0=B0=20=D0=B1=D0=B5?=
=?UTF-8?q?=D0=B7=20=D0=B4=D0=BE=D0=BF=D0=BE=D0=B2.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../AbstractCompany.cs | 11 +-
.../CollectionGenericObjects/Garage.cs | 8 +-
.../ICollectoinGenericObjects.cs | 6 +-
.../ListGenericObjects.cs | 59 ++++--
.../MassiveGenericObject.cs | 34 ++--
.../StorageCollection.cs | 31 ++-
.../FormBulldozerCollection.Designer.cs | 189 +++++++++---------
.../FormBulldozerCollection.cs | 52 +++--
8 files changed, 231 insertions(+), 159 deletions(-)
diff --git a/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/AbstractCompany.cs b/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/AbstractCompany.cs
index 302c514..eec22a2 100644
--- a/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/AbstractCompany.cs
+++ b/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/AbstractCompany.cs
@@ -63,9 +63,9 @@ public abstract class AbstractCompany
/// Компания
/// Добавляемый объект
///
- public static bool operator +(AbstractCompany company, DrawningDozer dozer)
+ public static int operator +(AbstractCompany company, DrawningDozer dozer)
{
- return company._collection?.Insert(dozer) ?? false;
+ return company._collection.Insert(dozer);
}
///
@@ -74,9 +74,9 @@ public abstract class AbstractCompany
/// Компания
/// Номер удаляемого объекта
///
- public static bool operator -(AbstractCompany company, int position)
+ public static DrawningDozer? operator -(AbstractCompany company, int position)
{
- return company._collection?.Remove(position) ?? false;
+ return company._collection.Remove(position);
}
///
@@ -100,7 +100,8 @@ public abstract class AbstractCompany
DrawBackground(graphics);
SetObjectsPosition();
- for (int i = 0; i < (_collection?.Count ?? 0); i++) {
+ for (int i = 0; i < (_collection?.Count ?? 0); ++i)
+ {
DrawningDozer? obj = _collection?.Get(i);
obj?.DrawTransport(graphics);
}
diff --git a/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/Garage.cs b/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/Garage.cs
index 1e25e8d..c1131d7 100644
--- a/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/Garage.cs
+++ b/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/Garage.cs
@@ -31,8 +31,10 @@ public class Garage : AbstractCompany
{
int cntVertically = _pictureHeight / _placeSizeHeight; //Колличество мест по вертикали
int cntHorizontally = _pictureWidth / _placeSizeWidth; //Колличество мест по горизонтали
- Pen pen = new Pen(Color.FromArgb(185, 140, 0));
- pen.Width = 3;
+ Pen pen = new(Color.FromArgb(185, 140, 0))
+ {
+ Width = 3
+ };
for (int i = 0; i < cntHorizontally; i++)
{
@@ -78,7 +80,5 @@ public class Garage : AbstractCompany
placeVertically--;
}
}
-
- //throw new NotImplementedException();
}
}
diff --git a/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/ICollectoinGenericObjects.cs b/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/ICollectoinGenericObjects.cs
index be6c0e0..ef584bc 100644
--- a/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/ICollectoinGenericObjects.cs
+++ b/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/ICollectoinGenericObjects.cs
@@ -28,7 +28,7 @@ public interface ICollectoinGenericObjects
///
/// Добавляемый объект
/// true - вставка прошла удачно, false - вставка не удалась
- bool Insert(T obj);
+ int Insert(T obj);
///
/// Добавление объекта в коллекцию на конкретную позицию
@@ -36,14 +36,14 @@ public interface ICollectoinGenericObjects
/// Добавляемый объект
/// Позиция
/// true - вставка прошла удачно, false - вставка не удалась
- bool Insert(T obj, int position);
+ int Insert(T obj, int position);
///
/// Удаление объекта из коллекции на конкретной позиции
///
/// Позиция
///
- bool Remove(int position);
+ T? Remove(int position);
///
/// Получение объекта по позиции
diff --git a/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/ListGenericObjects.cs b/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/ListGenericObjects.cs
index d622439..3b24d65 100644
--- a/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/ListGenericObjects.cs
+++ b/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/ListGenericObjects.cs
@@ -10,7 +10,8 @@ namespace ProjectBulldozer.CollectionGenericObjects;
/// Параметрезированный набор объектов
///
/// Параметр: ограничение - ссылочный тип
-public class ListGenericObjects :ICollectoinGenericObjects where T : class
+public class ListGenericObjects : ICollectoinGenericObjects
+ where T : class
{
///
/// Список объектов, которые храним
@@ -36,29 +37,57 @@ public class ListGenericObjects :ICollectoinGenericObjects where T : class
public T? Get(int position)
{
- //TODO проверка позиции
+ // Проверка позиции.
+ if (position < 0 || position >= _collection.Count || _collection == null || _collection.Count == 0)
+ {
+ return null;
+ }
return _collection[position];
}
- public bool Insert(T obj)
+ public int Insert(T obj)
{
- //TODO проверка, что не привышено максимальное колличество элементов
- //TODO вставка в конец набора
- return true;
+ // Проверка, что не привышено максимальное колличество элементов.
+ if (Count == _maxCount)
+ {
+ return -1;
+ }
+
+ // Вставка в конец набора.
+ _collection.Add(obj);
+ return _collection.Count;
}
- public bool Insert(T obj, int position)
+ public int Insert(T obj, int position)
{
- //TODO проверка, что не превышено максимальное колличество элементов
- //TODO проверка позиции
- //TODO вставка по позиции
- return true;
+ // Проверка, что не превышено максимальное колличество элементов.
+ if (Count == _maxCount)
+ {
+ return -1;
+ }
+
+ // Проверка позиции.
+ if (position < 0 || position >= _collection.Count || _collection == null || _collection.Count == 0) //TODO проверить, что если заменить _Collection.Count на Count
+ {
+ return -1;
+ }
+
+ // Вставка по позиции.
+ _collection.Insert(position, obj);
+ return position;
}
- public bool Remove(int position)
+ public T? Remove(int position)
{
- //TODO проверка позиции
- //TODO удаление объекта из спписка
- return true;
+ // Проверка позиции.
+ if (position < 0 || position >= _collection.Count || _collection == null || _collection.Count == 0)
+ {
+ return null;
+ }
+
+ // Удаление объекта из списка.
+ T? obj = _collection[position];
+ _collection[position] = null;
+ return obj;
}
}
diff --git a/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/MassiveGenericObject.cs b/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/MassiveGenericObject.cs
index 22bf179..10ade07 100644
--- a/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/MassiveGenericObject.cs
+++ b/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/MassiveGenericObject.cs
@@ -22,11 +22,14 @@ public class MassiveGenericObject : ICollectoinGenericObjects
{
if (value > 0)
{
- Array.Resize(ref _collection, value);
- }
- else
- {
- _collection =new T?[value];
+ if (_collection.Length > 0)
+ {
+ Array.Resize(ref _collection, value);
+ }
+ else
+ {
+ _collection = new T[value];
+ }
}
}
}
@@ -52,7 +55,7 @@ public class MassiveGenericObject : ICollectoinGenericObjects
}
}
- public bool Insert(T obj)
+ public int Insert(T obj)
{
//Вставка в свободное место набора
for (int i = 0; i < Count; i++)
@@ -60,19 +63,19 @@ public class MassiveGenericObject : ICollectoinGenericObjects
if (_collection[i] == null)
{
_collection[i] = obj;
- return true;
+ return i;
}
}
- return false;
+ return -1;
}
- public bool Insert(T obj, int position)
+ public int Insert(T obj, int position)
{
//Проверка позиции
if ((position < 0) || (position >= Count))
{
- return false;
+ return -1;
}
//Проверка, что элемент массива по этой позиции пустой, если нет, то ищется свободное место после этой
@@ -105,25 +108,26 @@ public class MassiveGenericObject : ICollectoinGenericObjects
if (placed == false)
{
- return false;
+ return -1;
}
}
//Вставка
_collection[position] = obj;
- return true;
+ return position;
}
- public bool Remove(int position)
+ public T? Remove(int position)
{
//Проверка позиции
if ((position < 0) || (position >= Count) || (_collection[position] == null))
{
- return false;
+ return null;
}
//Удаление объекта из массива, присвоив элементу массива значение null
+ T? elem = _collection[position];
_collection[position] = null;
- return true;
+ return elem;
}
}
diff --git a/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/StorageCollection.cs b/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/StorageCollection.cs
index 29aa40a..6537f15 100644
--- a/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/StorageCollection.cs
+++ b/ProjectBulldozer/ProjectBulldozer/CollectionGenericObjects/StorageCollection.cs
@@ -10,7 +10,8 @@ namespace ProjectBulldozer.CollectionGenericObjects;
/// Класс-хранилище коллекций
///
///
-public class StorageCollection where T : class
+public class StorageCollection
+ where T : class
{
///
/// Словарь (хранилище) с коллекциями
@@ -37,8 +38,20 @@ public class StorageCollection where T : class
/// тип коллекции
public void AddCollection(string name, CollectionType collectionType)
{
- // TODO проверка, что name не пустой и нет в словаре записи с таким ключом
- // TODO прописать логику для добавления
+ // Проверка, что name не пустой и нет в словаре записи с таким ключом.
+ if (_storages.ContainsKey(name) && name == "")
+ {
+ return;
+ }
+ // Логика для добавления.
+ if (collectionType == CollectionType.Massive)
+ {
+ _storages[name] = new MassiveGenericObject();
+ }
+ else
+ {
+ _storages[name] = new ListGenericObjects();
+ }
}
///
@@ -47,7 +60,11 @@ public class StorageCollection where T : class
/// Название коллекции
public void DelCollection(string name)
{
- // TODO Прописать логику для удаления коллекции
+ // Логика для удаления коллекции.
+ if (_storages.ContainsKey(name))
+ {
+ _storages.Remove(name);
+ }
}
///
@@ -59,7 +76,11 @@ public class StorageCollection where T : class
{
get
{
- // TODO Продумать логику получения объекта
+ // Логика получения объекта.
+ if (_storages.ContainsKey(name))
+ {
+ return _storages[name];
+ }
return null;
}
}
diff --git a/ProjectBulldozer/ProjectBulldozer/FormBulldozerCollection.Designer.cs b/ProjectBulldozer/ProjectBulldozer/FormBulldozerCollection.Designer.cs
index c3209d1..a3d7ad0 100644
--- a/ProjectBulldozer/ProjectBulldozer/FormBulldozerCollection.Designer.cs
+++ b/ProjectBulldozer/ProjectBulldozer/FormBulldozerCollection.Designer.cs
@@ -29,6 +29,13 @@
private void InitializeComponent()
{
groupBoxTools = new GroupBox();
+ panelCompanyTools = new Panel();
+ buttonAddDozer = new Button();
+ buttonAddBulldozer = new Button();
+ buttonDelBulldozer = new Button();
+ maskedTextBox = new MaskedTextBox();
+ buttonGoToCheck = new Button();
+ buttonRefresh = new Button();
panelStorage = new Panel();
listBoxCollection = new ListBox();
buttonCollectionDel = new Button();
@@ -38,19 +45,12 @@
textBoxCollectionName = new TextBox();
labelCollectionName = new Label();
buttonCreateCompany = new Button();
- maskedTextBox = new MaskedTextBox();
- buttonRefresh = new Button();
- buttonGoToCheck = new Button();
- buttonDelBulldozer = new Button();
- buttonAddBulldozer = new Button();
- buttonAddDozer = new Button();
comboBoxSelectorCompany = new ComboBox();
pictureBox = new PictureBox();
- panelCompanyTools = new Panel();
groupBoxTools.SuspendLayout();
+ panelCompanyTools.SuspendLayout();
panelStorage.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureBox).BeginInit();
- panelCompanyTools.SuspendLayout();
SuspendLayout();
//
// groupBoxTools
@@ -68,6 +68,89 @@
groupBoxTools.TabStop = false;
groupBoxTools.Text = "Инструменты";
//
+ // panelCompanyTools
+ //
+ panelCompanyTools.Controls.Add(buttonAddDozer);
+ panelCompanyTools.Controls.Add(buttonAddBulldozer);
+ panelCompanyTools.Controls.Add(buttonDelBulldozer);
+ panelCompanyTools.Controls.Add(maskedTextBox);
+ panelCompanyTools.Controls.Add(buttonGoToCheck);
+ panelCompanyTools.Controls.Add(buttonRefresh);
+ panelCompanyTools.Enabled = false;
+ panelCompanyTools.Location = new Point(3, 624);
+ panelCompanyTools.Name = "panelCompanyTools";
+ panelCompanyTools.Size = new Size(400, 449);
+ panelCompanyTools.TabIndex = 7;
+ //
+ // buttonAddDozer
+ //
+ buttonAddDozer.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
+ buttonAddDozer.Font = new Font("Comic Sans MS", 9F, FontStyle.Regular, GraphicsUnit.Point);
+ buttonAddDozer.Location = new Point(11, 14);
+ buttonAddDozer.Name = "buttonAddDozer";
+ buttonAddDozer.Size = new Size(332, 64);
+ buttonAddDozer.TabIndex = 2;
+ buttonAddDozer.Text = "Добавление бульдозера";
+ buttonAddDozer.UseVisualStyleBackColor = true;
+ buttonAddDozer.Click += ButtonAddDozer_Click;
+ //
+ // buttonAddBulldozer
+ //
+ buttonAddBulldozer.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
+ buttonAddBulldozer.Font = new Font("Comic Sans MS", 9F, FontStyle.Regular, GraphicsUnit.Point);
+ buttonAddBulldozer.Location = new Point(11, 84);
+ buttonAddBulldozer.Name = "buttonAddBulldozer";
+ buttonAddBulldozer.Size = new Size(332, 79);
+ buttonAddBulldozer.TabIndex = 3;
+ buttonAddBulldozer.Text = "Добавление крутого бульдозера";
+ buttonAddBulldozer.UseVisualStyleBackColor = true;
+ buttonAddBulldozer.Click += ButtonAddBulldozer_Click;
+ //
+ // buttonDelBulldozer
+ //
+ buttonDelBulldozer.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
+ buttonDelBulldozer.Font = new Font("Comic Sans MS", 9F, FontStyle.Regular, GraphicsUnit.Point);
+ buttonDelBulldozer.Location = new Point(11, 216);
+ buttonDelBulldozer.Name = "buttonDelBulldozer";
+ buttonDelBulldozer.Size = new Size(332, 63);
+ buttonDelBulldozer.TabIndex = 3;
+ buttonDelBulldozer.Text = "Удаленить бульдозер";
+ buttonDelBulldozer.UseVisualStyleBackColor = true;
+ buttonDelBulldozer.Click += ButtonDelBulldozer_Click;
+ //
+ // maskedTextBox
+ //
+ maskedTextBox.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
+ maskedTextBox.Location = new Point(11, 169);
+ maskedTextBox.Name = "maskedTextBox";
+ maskedTextBox.Size = new Size(332, 41);
+ maskedTextBox.TabIndex = 5;
+ maskedTextBox.ValidatingType = typeof(int);
+ //
+ // buttonGoToCheck
+ //
+ buttonGoToCheck.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
+ buttonGoToCheck.Font = new Font("Comic Sans MS", 9F, FontStyle.Regular, GraphicsUnit.Point);
+ buttonGoToCheck.Location = new Point(11, 285);
+ buttonGoToCheck.Name = "buttonGoToCheck";
+ buttonGoToCheck.Size = new Size(332, 63);
+ buttonGoToCheck.TabIndex = 3;
+ buttonGoToCheck.Text = "Передать на тесты";
+ buttonGoToCheck.UseVisualStyleBackColor = true;
+ buttonGoToCheck.Click += ButtonGoToCheck_Click;
+ //
+ // buttonRefresh
+ //
+ buttonRefresh.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
+ buttonRefresh.Font = new Font("Comic Sans MS", 9F, FontStyle.Regular, GraphicsUnit.Point);
+ buttonRefresh.Location = new Point(11, 354);
+ buttonRefresh.Name = "buttonRefresh";
+ buttonRefresh.Size = new Size(332, 63);
+ buttonRefresh.TabIndex = 3;
+ buttonRefresh.Text = "Обновить";
+ buttonRefresh.UseVisualStyleBackColor = true;
+ buttonRefresh.Click += ButtonRefresh_Click;
+ //
// panelStorage
//
panelStorage.Controls.Add(listBoxCollection);
@@ -140,7 +223,6 @@
textBoxCollectionName.Name = "textBoxCollectionName";
textBoxCollectionName.Size = new Size(332, 41);
textBoxCollectionName.TabIndex = 1;
- textBoxCollectionName.Text = " ";
//
// labelCollectionName
//
@@ -161,75 +243,6 @@
buttonCreateCompany.UseVisualStyleBackColor = true;
buttonCreateCompany.Click += ButtonCreateCompany_Click;
//
- // maskedTextBox
- //
- maskedTextBox.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
- maskedTextBox.Location = new Point(11, 169);
- maskedTextBox.Name = "maskedTextBox";
- maskedTextBox.Size = new Size(332, 41);
- maskedTextBox.TabIndex = 5;
- maskedTextBox.ValidatingType = typeof(int);
- //
- // buttonRefresh
- //
- buttonRefresh.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
- buttonRefresh.Font = new Font("Comic Sans MS", 9F, FontStyle.Regular, GraphicsUnit.Point);
- buttonRefresh.Location = new Point(11, 354);
- buttonRefresh.Name = "buttonRefresh";
- buttonRefresh.Size = new Size(332, 63);
- buttonRefresh.TabIndex = 3;
- buttonRefresh.Text = "Обновить";
- buttonRefresh.UseVisualStyleBackColor = true;
- buttonRefresh.Click += ButtonRefresh_Click;
- //
- // buttonGoToCheck
- //
- buttonGoToCheck.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
- buttonGoToCheck.Font = new Font("Comic Sans MS", 9F, FontStyle.Regular, GraphicsUnit.Point);
- buttonGoToCheck.Location = new Point(11, 285);
- buttonGoToCheck.Name = "buttonGoToCheck";
- buttonGoToCheck.Size = new Size(332, 63);
- buttonGoToCheck.TabIndex = 3;
- buttonGoToCheck.Text = "Передать на тесты";
- buttonGoToCheck.UseVisualStyleBackColor = true;
- buttonGoToCheck.Click += ButtonGoToCheck_Click;
- //
- // buttonDelBulldozer
- //
- buttonDelBulldozer.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
- buttonDelBulldozer.Font = new Font("Comic Sans MS", 9F, FontStyle.Regular, GraphicsUnit.Point);
- buttonDelBulldozer.Location = new Point(11, 216);
- buttonDelBulldozer.Name = "buttonDelBulldozer";
- buttonDelBulldozer.Size = new Size(332, 63);
- buttonDelBulldozer.TabIndex = 3;
- buttonDelBulldozer.Text = "Удаленить бульдозер";
- buttonDelBulldozer.UseVisualStyleBackColor = true;
- buttonDelBulldozer.Click += ButtonDelBulldozer_Click;
- //
- // buttonAddBulldozer
- //
- buttonAddBulldozer.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
- buttonAddBulldozer.Font = new Font("Comic Sans MS", 9F, FontStyle.Regular, GraphicsUnit.Point);
- buttonAddBulldozer.Location = new Point(11, 84);
- buttonAddBulldozer.Name = "buttonAddBulldozer";
- buttonAddBulldozer.Size = new Size(332, 79);
- buttonAddBulldozer.TabIndex = 3;
- buttonAddBulldozer.Text = "Добавление крутого бульдозера";
- buttonAddBulldozer.UseVisualStyleBackColor = true;
- buttonAddBulldozer.Click += ButtonAddBulldozer_Click;
- //
- // buttonAddDozer
- //
- buttonAddDozer.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
- buttonAddDozer.Font = new Font("Comic Sans MS", 9F, FontStyle.Regular, GraphicsUnit.Point);
- buttonAddDozer.Location = new Point(11, 14);
- buttonAddDozer.Name = "buttonAddDozer";
- buttonAddDozer.Size = new Size(332, 64);
- buttonAddDozer.TabIndex = 2;
- buttonAddDozer.Text = "Добавление бульдозера";
- buttonAddDozer.UseVisualStyleBackColor = true;
- buttonAddDozer.Click += ButtonAddDozer_Click;
- //
// comboBoxSelectorCompany
//
comboBoxSelectorCompany.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
@@ -241,7 +254,7 @@
comboBoxSelectorCompany.Name = "comboBoxSelectorCompany";
comboBoxSelectorCompany.Size = new Size(332, 41);
comboBoxSelectorCompany.TabIndex = 1;
- comboBoxSelectorCompany.SelectedIndexChanged += comboBoxSelectorCompany_SelectedIndexChanged;
+ comboBoxSelectorCompany.SelectedIndexChanged += ComboBoxSelectorCompany_SelectedIndexChanged;
//
// pictureBox
//
@@ -252,20 +265,6 @@
pictureBox.TabIndex = 4;
pictureBox.TabStop = false;
//
- // panelCompanyTools
- //
- panelCompanyTools.Controls.Add(buttonAddDozer);
- panelCompanyTools.Controls.Add(buttonAddBulldozer);
- panelCompanyTools.Controls.Add(buttonDelBulldozer);
- panelCompanyTools.Controls.Add(maskedTextBox);
- panelCompanyTools.Controls.Add(buttonGoToCheck);
- panelCompanyTools.Controls.Add(buttonRefresh);
- panelCompanyTools.Enabled = false;
- panelCompanyTools.Location = new Point(3, 624);
- panelCompanyTools.Name = "panelCompanyTools";
- panelCompanyTools.Size = new Size(400, 449);
- panelCompanyTools.TabIndex = 7;
- //
// FormBulldozerCollection
//
AutoScaleDimensions = new SizeF(13F, 32F);
@@ -276,11 +275,11 @@
Name = "FormBulldozerCollection";
Text = "Коллекция бульдозеров";
groupBoxTools.ResumeLayout(false);
+ panelCompanyTools.ResumeLayout(false);
+ panelCompanyTools.PerformLayout();
panelStorage.ResumeLayout(false);
panelStorage.PerformLayout();
((System.ComponentModel.ISupportInitialize)pictureBox).EndInit();
- panelCompanyTools.ResumeLayout(false);
- panelCompanyTools.PerformLayout();
ResumeLayout(false);
}
diff --git a/ProjectBulldozer/ProjectBulldozer/FormBulldozerCollection.cs b/ProjectBulldozer/ProjectBulldozer/FormBulldozerCollection.cs
index 44db24e..0f24c1a 100644
--- a/ProjectBulldozer/ProjectBulldozer/FormBulldozerCollection.cs
+++ b/ProjectBulldozer/ProjectBulldozer/FormBulldozerCollection.cs
@@ -18,7 +18,9 @@ namespace ProjectBulldozer;
///
public partial class FormBulldozerCollection : Form
{
-
+ ///
+ /// Хранилище коллекций
+ ///
private readonly StorageCollection _storageCollection;
///
@@ -40,7 +42,7 @@ public partial class FormBulldozerCollection : Form
///
///
///
- private void comboBoxSelectorCompany_SelectedIndexChanged(object sender, EventArgs e)
+ private void ComboBoxSelectorCompany_SelectedIndexChanged(object sender, EventArgs e)
{
panelCompanyTools.Enabled = false;
@@ -91,7 +93,7 @@ public partial class FormBulldozerCollection : Form
return;
}
- if (_company + drawningDozer)
+ if (_company + drawningDozer != -1)
{
MessageBox.Show("Объект добавлен.");
pictureBox.Image = _company.Show();
@@ -152,7 +154,7 @@ public partial class FormBulldozerCollection : Form
}
int pos = Convert.ToInt32(maskedTextBox.Text);
- if (_company - pos)
+ if (_company - pos != null)
{
MessageBox.Show("Объект удалён.");
pictureBox.Image = _company.Show();
@@ -241,6 +243,11 @@ public partial class FormBulldozerCollection : Form
RefreshListBoxItems();
}
+ /*private ListBox GetListBoxCollection()
+ {
+ return listBoxCollection;
+ }*/
+
///
/// Удаление коллекции
///
@@ -250,20 +257,30 @@ public partial class FormBulldozerCollection : Form
{
// Прописать логику удаления элемента из коллекции.
// Нужно убедиться, что есть выбранная коллекция
- if (listBoxCollection.SelectedIndex < 0 || listBoxCollection.SelectedItem == null)
+ if (listBoxCollection.SelectedItem == null || listBoxCollection.SelectedIndex < 0)
{
MessageBox.Show("Коллекция не выбрана!");
return;
}
-
- // Спросить у пользователя через MessageBox, что он подтверждает, что хочет удалить запись
- if (MessageBox.Show("Удалить коллекцию?", "Удаление...", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
+ else
{
- MessageBox.Show("Коллукция не выбрана!");
- return;
+ // Спросить у пользователя через MessageBox, что он подтверждает, что хочет удалить запись
+ if (MessageBox.Show("Удалить коллекцию?", "Удаление...", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
+ {
+ MessageBox.Show("Коллекция не выбрана!");
+ return;
+ }
+ else
+ {
+ // Удалить и обновить ListBox
+ _storageCollection.DelCollection(listBoxCollection.SelectedItem.ToString());
+ RefreshListBoxItems();
+ }
}
- // Удалить и обновить ListBox
- }
+
+
+
+ }
///
/// Обновление списка в ListBoxCollection
@@ -271,7 +288,7 @@ public partial class FormBulldozerCollection : Form
private void RefreshListBoxItems()
{
listBoxCollection.Items.Clear();
- for (int i = 0; i < _storageCollection.Keys?.Count; i++)
+ for (int i = 0; i < _storageCollection.Keys?.Count; ++i)
{
string? colName = _storageCollection.Keys?[i];
if (!string.IsNullOrEmpty(colName))
@@ -288,14 +305,14 @@ public partial class FormBulldozerCollection : Form
///
private void ButtonCreateCompany_Click(object sender, EventArgs e)
{
- if (listBoxCollection.SelectedIndex < 0)
+ if (listBoxCollection.SelectedIndex < 0 || listBoxCollection.SelectedItem == null)
{
MessageBox.Show("Коллекция не выбрана!");
return;
}
- ICollectoinGenericObjects? collectoin = _storageCollection[listBoxCollection.SelectedItem.ToString() ?? string.Empty];
- if (collectoin == null)
+ ICollectoinGenericObjects? collection = _storageCollection[listBoxCollection.SelectedItem.ToString() ?? string.Empty];
+ if (collection == null)
{
MessageBox.Show("Коллекция не проинициализирована!");
return;
@@ -304,10 +321,11 @@ public partial class FormBulldozerCollection : Form
switch (comboBoxSelectorCompany.Text)
{
case "Хранилище":
- _company = new Garage(pictureBox.Width, pictureBox.Height, new MassiveGenericObject());
+ _company = new Garage(pictureBox.Width, pictureBox.Height, collection);
break;
}
panelCompanyTools.Enabled = true;
+ RefreshListBoxItems();
}
}