From ebc44e92dcdec2187a23c3300c7836ba33f39cd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?10=D0=93=20=D0=95=D0=B3=D0=BE=D1=80=20=D0=A0=D0=BE=D0=BC?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=D0=B2?= Date: Mon, 24 Oct 2022 00:20:27 +0400 Subject: [PATCH] =?UTF-8?q?=D0=93=D0=BE=D1=82=D0=BE=D0=B2=D0=B0=D1=8F=204?= =?UTF-8?q?=20=D0=BB=D0=B0=D0=B1=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FormHoistingCrane.Designer.cs | 64 ++++--- .../HoistingCrane/FormHoistingCrane.resx | 3 + .../FormMapWithSetHoistingCrane.Designer.cs | 170 +++++++++++++----- .../FormMapWithSetHoistingCrane.cs | 116 +++++++++--- .../MapWithSetHoistingCraneGeneric.cs | 16 +- HoistingCrane/HoistingCrane/MapsCollection.cs | 80 +++++++++ .../HoistingCrane/SetHoistingCraneGeneric.cs | 68 ++++--- 7 files changed, 369 insertions(+), 148 deletions(-) create mode 100644 HoistingCrane/HoistingCrane/MapsCollection.cs diff --git a/HoistingCrane/HoistingCrane/FormHoistingCrane.Designer.cs b/HoistingCrane/HoistingCrane/FormHoistingCrane.Designer.cs index 6418a51..3a48eba 100644 --- a/HoistingCrane/HoistingCrane/FormHoistingCrane.Designer.cs +++ b/HoistingCrane/HoistingCrane/FormHoistingCrane.Designer.cs @@ -49,9 +49,10 @@ this.buttonUp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.buttonUp.BackgroundImage = global::HoistingCrane.Properties.Resources.up; this.buttonUp.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; - this.buttonUp.Location = new System.Drawing.Point(722, 353); + this.buttonUp.Location = new System.Drawing.Point(825, 471); + this.buttonUp.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.buttonUp.Name = "buttonUp"; - this.buttonUp.Size = new System.Drawing.Size(30, 30); + this.buttonUp.Size = new System.Drawing.Size(34, 40); this.buttonUp.TabIndex = 0; this.buttonUp.UseVisualStyleBackColor = true; this.buttonUp.Click += new System.EventHandler(this.ButtonMove_Click); @@ -61,9 +62,10 @@ this.buttonLeft.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.buttonLeft.BackgroundImage = global::HoistingCrane.Properties.Resources.left; this.buttonLeft.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; - this.buttonLeft.Location = new System.Drawing.Point(686, 389); + this.buttonLeft.Location = new System.Drawing.Point(784, 519); + this.buttonLeft.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.buttonLeft.Name = "buttonLeft"; - this.buttonLeft.Size = new System.Drawing.Size(30, 30); + this.buttonLeft.Size = new System.Drawing.Size(34, 40); this.buttonLeft.TabIndex = 1; this.buttonLeft.UseVisualStyleBackColor = true; this.buttonLeft.Click += new System.EventHandler(this.ButtonMove_Click); @@ -73,9 +75,10 @@ this.buttonRight.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.buttonRight.BackgroundImage = global::HoistingCrane.Properties.Resources.right; this.buttonRight.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; - this.buttonRight.Location = new System.Drawing.Point(758, 389); + this.buttonRight.Location = new System.Drawing.Point(866, 519); + this.buttonRight.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.buttonRight.Name = "buttonRight"; - this.buttonRight.Size = new System.Drawing.Size(30, 30); + this.buttonRight.Size = new System.Drawing.Size(34, 40); this.buttonRight.TabIndex = 2; this.buttonRight.UseVisualStyleBackColor = true; this.buttonRight.Click += new System.EventHandler(this.ButtonMove_Click); @@ -85,9 +88,10 @@ this.buttonDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.buttonDown.BackgroundImage = global::HoistingCrane.Properties.Resources.down; this.buttonDown.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; - this.buttonDown.Location = new System.Drawing.Point(722, 389); + this.buttonDown.Location = new System.Drawing.Point(825, 519); + this.buttonDown.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.buttonDown.Name = "buttonDown"; - this.buttonDown.Size = new System.Drawing.Size(30, 30); + this.buttonDown.Size = new System.Drawing.Size(34, 40); this.buttonDown.TabIndex = 3; this.buttonDown.UseVisualStyleBackColor = true; this.buttonDown.Click += new System.EventHandler(this.ButtonMove_Click); @@ -95,9 +99,10 @@ // buttonCreate // this.buttonCreate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.buttonCreate.Location = new System.Drawing.Point(12, 393); + this.buttonCreate.Location = new System.Drawing.Point(14, 524); + this.buttonCreate.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.buttonCreate.Name = "buttonCreate"; - this.buttonCreate.Size = new System.Drawing.Size(75, 23); + this.buttonCreate.Size = new System.Drawing.Size(86, 31); this.buttonCreate.TabIndex = 4; this.buttonCreate.Text = "Создать"; this.buttonCreate.UseVisualStyleBackColor = true; @@ -105,40 +110,43 @@ // // statusStrip // + this.statusStrip.ImageScalingSize = new System.Drawing.Size(20, 20); this.statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripStatusLabelSpeed, this.toolStripStatusLabelWeight, this.toolStripStatusLabelBodyColor}); - this.statusStrip.Location = new System.Drawing.Point(0, 428); + this.statusStrip.Location = new System.Drawing.Point(0, 574); this.statusStrip.Name = "statusStrip"; - this.statusStrip.Size = new System.Drawing.Size(800, 22); + this.statusStrip.Padding = new System.Windows.Forms.Padding(1, 0, 16, 0); + this.statusStrip.Size = new System.Drawing.Size(914, 26); this.statusStrip.TabIndex = 5; this.statusStrip.Text = "statusStrip"; // // toolStripStatusLabelSpeed // this.toolStripStatusLabelSpeed.Name = "toolStripStatusLabelSpeed"; - this.toolStripStatusLabelSpeed.Size = new System.Drawing.Size(62, 17); + this.toolStripStatusLabelSpeed.Size = new System.Drawing.Size(76, 20); this.toolStripStatusLabelSpeed.Text = "Скорость:"; // // toolStripStatusLabelWeight // this.toolStripStatusLabelWeight.Name = "toolStripStatusLabelWeight"; - this.toolStripStatusLabelWeight.Size = new System.Drawing.Size(29, 17); + this.toolStripStatusLabelWeight.Size = new System.Drawing.Size(36, 20); this.toolStripStatusLabelWeight.Text = "Вес:"; // // toolStripStatusLabelBodyColor // this.toolStripStatusLabelBodyColor.Name = "toolStripStatusLabelBodyColor"; - this.toolStripStatusLabelBodyColor.Size = new System.Drawing.Size(36, 17); + this.toolStripStatusLabelBodyColor.Size = new System.Drawing.Size(45, 20); this.toolStripStatusLabelBodyColor.Text = "Цвет:"; // // pictureBoxHoistingCrane // this.pictureBoxHoistingCrane.Dock = System.Windows.Forms.DockStyle.Fill; this.pictureBoxHoistingCrane.Location = new System.Drawing.Point(0, 0); + this.pictureBoxHoistingCrane.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.pictureBoxHoistingCrane.Name = "pictureBoxHoistingCrane"; - this.pictureBoxHoistingCrane.Size = new System.Drawing.Size(800, 428); + this.pictureBoxHoistingCrane.Size = new System.Drawing.Size(914, 574); this.pictureBoxHoistingCrane.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; this.pictureBoxHoistingCrane.TabIndex = 6; this.pictureBoxHoistingCrane.TabStop = false; @@ -148,28 +156,31 @@ // buttonCreateModify // this.buttonCreateModify.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.buttonCreateModify.Location = new System.Drawing.Point(93, 393); + this.buttonCreateModify.Location = new System.Drawing.Point(106, 524); + this.buttonCreateModify.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.buttonCreateModify.Name = "buttonCreateModify"; - this.buttonCreateModify.Size = new System.Drawing.Size(100, 23); + this.buttonCreateModify.Size = new System.Drawing.Size(129, 31); this.buttonCreateModify.TabIndex = 7; this.buttonCreateModify.Text = "Модификация"; - - this.buttonSelect.Location = new System.Drawing.Point(551, 390); + this.buttonCreateModify.UseVisualStyleBackColor = true; + this.buttonCreateModify.Click += new System.EventHandler(this.ButtonCreateModify_Click); + // + // buttonSelect + // + this.buttonSelect.Location = new System.Drawing.Point(630, 520); + this.buttonSelect.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.buttonSelect.Name = "buttonSelect"; - this.buttonSelect.Size = new System.Drawing.Size(75, 23); + this.buttonSelect.Size = new System.Drawing.Size(86, 31); this.buttonSelect.TabIndex = 8; this.buttonSelect.Text = "Выбрать"; this.buttonSelect.UseVisualStyleBackColor = true; this.buttonSelect.Click += new System.EventHandler(this.ButtonSelect_Click); // - this.buttonCreateModify.UseVisualStyleBackColor = true; - this.buttonCreateModify.Click += new System.EventHandler(this.ButtonCreateModify_Click); - // // FormHoistingCrane // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); + this.ClientSize = new System.Drawing.Size(914, 600); this.Controls.Add(this.buttonSelect); this.Controls.Add(this.buttonCreateModify); this.Controls.Add(this.buttonCreate); @@ -179,6 +190,7 @@ this.Controls.Add(this.buttonUp); this.Controls.Add(this.pictureBoxHoistingCrane); this.Controls.Add(this.statusStrip); + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.Name = "FormHoistingCrane"; this.Text = "Подъёмный кран"; this.statusStrip.ResumeLayout(false); diff --git a/HoistingCrane/HoistingCrane/FormHoistingCrane.resx b/HoistingCrane/HoistingCrane/FormHoistingCrane.resx index f298a7b..2c0949d 100644 --- a/HoistingCrane/HoistingCrane/FormHoistingCrane.resx +++ b/HoistingCrane/HoistingCrane/FormHoistingCrane.resx @@ -57,4 +57,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + \ No newline at end of file diff --git a/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.Designer.cs b/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.Designer.cs index 554be16..61c4991 100644 --- a/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.Designer.cs +++ b/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.Designer.cs @@ -31,6 +31,12 @@ /// private void InitializeComponent() { + this.groupBoxMaps = new System.Windows.Forms.GroupBox(); + this.buttonDeleteMap = new System.Windows.Forms.Button(); + this.listBoxMaps = new System.Windows.Forms.ListBox(); + this.buttonAddMap = new System.Windows.Forms.Button(); + this.comboBoxSelectorMap = new System.Windows.Forms.ComboBox(); + this.textBoxNewMapName = new System.Windows.Forms.TextBox(); this.groupBoxTools = new System.Windows.Forms.GroupBox(); this.maskedTextBoxPosition = new System.Windows.Forms.MaskedTextBox(); this.buttonRemoveHoistingCrane = new System.Windows.Forms.Button(); @@ -41,14 +47,84 @@ this.buttonUp = new System.Windows.Forms.Button(); this.buttonShowOnMap = new System.Windows.Forms.Button(); this.buttonAddHoistingCrane = new System.Windows.Forms.Button(); - this.comboBoxSelectorMap = new System.Windows.Forms.ComboBox(); this.pictureBox = new System.Windows.Forms.PictureBox(); + this.groupBoxMaps.SuspendLayout(); this.groupBoxTools.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit(); this.SuspendLayout(); // + // groupBoxMaps + // + this.groupBoxMaps.Controls.Add(this.buttonDeleteMap); + this.groupBoxMaps.Controls.Add(this.listBoxMaps); + this.groupBoxMaps.Controls.Add(this.buttonAddMap); + this.groupBoxMaps.Controls.Add(this.comboBoxSelectorMap); + this.groupBoxMaps.Controls.Add(this.textBoxNewMapName); + this.groupBoxMaps.Location = new System.Drawing.Point(13, 28); + this.groupBoxMaps.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.groupBoxMaps.Name = "groupBoxMaps"; + this.groupBoxMaps.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.groupBoxMaps.Size = new System.Drawing.Size(229, 326); + this.groupBoxMaps.TabIndex = 11; + this.groupBoxMaps.TabStop = false; + this.groupBoxMaps.Text = "Карты"; + // + // buttonDeleteMap + // + this.buttonDeleteMap.Location = new System.Drawing.Point(7, 271); + this.buttonDeleteMap.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.buttonDeleteMap.Name = "buttonDeleteMap"; + this.buttonDeleteMap.Size = new System.Drawing.Size(200, 47); + this.buttonDeleteMap.TabIndex = 5; + this.buttonDeleteMap.Text = "Удалить карту"; + this.buttonDeleteMap.UseVisualStyleBackColor = true; + this.buttonDeleteMap.Click += new System.EventHandler(this.buttonDeleteMap_Click); + // + // listBoxMaps + // + this.listBoxMaps.FormattingEnabled = true; + this.listBoxMaps.ItemHeight = 20; + this.listBoxMaps.Location = new System.Drawing.Point(7, 157); + this.listBoxMaps.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.listBoxMaps.Name = "listBoxMaps"; + this.listBoxMaps.Size = new System.Drawing.Size(199, 104); + this.listBoxMaps.TabIndex = 4; + // + // buttonAddMap + // + this.buttonAddMap.Location = new System.Drawing.Point(7, 107); + this.buttonAddMap.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.buttonAddMap.Name = "buttonAddMap"; + this.buttonAddMap.Size = new System.Drawing.Size(200, 43); + this.buttonAddMap.TabIndex = 3; + this.buttonAddMap.Text = "Добавить карту"; + this.buttonAddMap.UseVisualStyleBackColor = true; + this.buttonAddMap.Click += new System.EventHandler(this.buttonAddMap_Click_1); + // + // comboBoxSelectorMap + // + this.comboBoxSelectorMap.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBoxSelectorMap.FormattingEnabled = true; + this.comboBoxSelectorMap.Items.AddRange(new object[] { + "Простая карта", + "Моя вторая карта"}); + this.comboBoxSelectorMap.Location = new System.Drawing.Point(7, 68); + this.comboBoxSelectorMap.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.comboBoxSelectorMap.Name = "comboBoxSelectorMap"; + this.comboBoxSelectorMap.Size = new System.Drawing.Size(200, 28); + this.comboBoxSelectorMap.TabIndex = 0; + // + // textBoxNewMapName + // + this.textBoxNewMapName.Location = new System.Drawing.Point(7, 29); + this.textBoxNewMapName.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.textBoxNewMapName.Name = "textBoxNewMapName"; + this.textBoxNewMapName.Size = new System.Drawing.Size(200, 27); + this.textBoxNewMapName.TabIndex = 0; + // // groupBoxTools // + this.groupBoxTools.Controls.Add(this.groupBoxMaps); this.groupBoxTools.Controls.Add(this.maskedTextBoxPosition); this.groupBoxTools.Controls.Add(this.buttonRemoveHoistingCrane); this.groupBoxTools.Controls.Add(this.buttonShowStorage); @@ -58,29 +134,32 @@ this.groupBoxTools.Controls.Add(this.buttonUp); this.groupBoxTools.Controls.Add(this.buttonShowOnMap); this.groupBoxTools.Controls.Add(this.buttonAddHoistingCrane); - this.groupBoxTools.Controls.Add(this.comboBoxSelectorMap); this.groupBoxTools.Dock = System.Windows.Forms.DockStyle.Right; - this.groupBoxTools.Location = new System.Drawing.Point(811, 0); + this.groupBoxTools.Location = new System.Drawing.Point(927, 0); + this.groupBoxTools.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.groupBoxTools.Name = "groupBoxTools"; - this.groupBoxTools.Size = new System.Drawing.Size(204, 554); + this.groupBoxTools.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.groupBoxTools.Size = new System.Drawing.Size(233, 782); this.groupBoxTools.TabIndex = 0; this.groupBoxTools.TabStop = false; this.groupBoxTools.Text = "Инструменты"; // // maskedTextBoxPosition // - this.maskedTextBoxPosition.Location = new System.Drawing.Point(17, 166); + this.maskedTextBoxPosition.Location = new System.Drawing.Point(21, 459); + this.maskedTextBoxPosition.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.maskedTextBoxPosition.Mask = "00"; this.maskedTextBoxPosition.Name = "maskedTextBoxPosition"; - this.maskedTextBoxPosition.Size = new System.Drawing.Size(175, 23); + this.maskedTextBoxPosition.Size = new System.Drawing.Size(199, 27); this.maskedTextBoxPosition.TabIndex = 2; this.maskedTextBoxPosition.ValidatingType = typeof(int); // // buttonRemoveHoistingCrane // - this.buttonRemoveHoistingCrane.Location = new System.Drawing.Point(17, 195); + this.buttonRemoveHoistingCrane.Location = new System.Drawing.Point(20, 494); + this.buttonRemoveHoistingCrane.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.buttonRemoveHoistingCrane.Name = "buttonRemoveHoistingCrane"; - this.buttonRemoveHoistingCrane.Size = new System.Drawing.Size(175, 35); + this.buttonRemoveHoistingCrane.Size = new System.Drawing.Size(199, 47); this.buttonRemoveHoistingCrane.TabIndex = 3; this.buttonRemoveHoistingCrane.Text = "Удалить подъёмный кран"; this.buttonRemoveHoistingCrane.UseVisualStyleBackColor = true; @@ -88,9 +167,10 @@ // // buttonShowStorage // - this.buttonShowStorage.Location = new System.Drawing.Point(17, 287); + this.buttonShowStorage.Location = new System.Drawing.Point(20, 549); + this.buttonShowStorage.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.buttonShowStorage.Name = "buttonShowStorage"; - this.buttonShowStorage.Size = new System.Drawing.Size(175, 35); + this.buttonShowStorage.Size = new System.Drawing.Size(199, 47); this.buttonShowStorage.TabIndex = 4; this.buttonShowStorage.Text = "Посмотреть хранилище"; this.buttonShowStorage.UseVisualStyleBackColor = true; @@ -101,9 +181,10 @@ this.buttonDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.buttonDown.BackgroundImage = global::HoistingCrane.Properties.Resources.down; this.buttonDown.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.buttonDown.Location = new System.Drawing.Point(91, 504); + this.buttonDown.Location = new System.Drawing.Point(104, 715); + this.buttonDown.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.buttonDown.Name = "buttonDown"; - this.buttonDown.Size = new System.Drawing.Size(30, 30); + this.buttonDown.Size = new System.Drawing.Size(34, 40); this.buttonDown.TabIndex = 10; this.buttonDown.UseVisualStyleBackColor = true; this.buttonDown.Click += new System.EventHandler(this.ButtonMove_Click); @@ -113,9 +194,10 @@ this.buttonRight.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.buttonRight.BackgroundImage = global::HoistingCrane.Properties.Resources.right; this.buttonRight.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.buttonRight.Location = new System.Drawing.Point(127, 504); + this.buttonRight.Location = new System.Drawing.Point(145, 715); + this.buttonRight.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.buttonRight.Name = "buttonRight"; - this.buttonRight.Size = new System.Drawing.Size(30, 30); + this.buttonRight.Size = new System.Drawing.Size(34, 40); this.buttonRight.TabIndex = 9; this.buttonRight.UseVisualStyleBackColor = true; this.buttonRight.Click += new System.EventHandler(this.ButtonMove_Click); @@ -125,9 +207,10 @@ this.buttonLeft.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.buttonLeft.BackgroundImage = global::HoistingCrane.Properties.Resources.left; this.buttonLeft.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.buttonLeft.Location = new System.Drawing.Point(55, 504); + this.buttonLeft.Location = new System.Drawing.Point(63, 715); + this.buttonLeft.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.buttonLeft.Name = "buttonLeft"; - this.buttonLeft.Size = new System.Drawing.Size(30, 30); + this.buttonLeft.Size = new System.Drawing.Size(34, 40); this.buttonLeft.TabIndex = 8; this.buttonLeft.UseVisualStyleBackColor = true; this.buttonLeft.Click += new System.EventHandler(this.ButtonMove_Click); @@ -137,18 +220,20 @@ this.buttonUp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.buttonUp.BackgroundImage = global::HoistingCrane.Properties.Resources.up; this.buttonUp.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.buttonUp.Location = new System.Drawing.Point(91, 468); + this.buttonUp.Location = new System.Drawing.Point(104, 667); + this.buttonUp.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.buttonUp.Name = "buttonUp"; - this.buttonUp.Size = new System.Drawing.Size(30, 30); + this.buttonUp.Size = new System.Drawing.Size(34, 40); this.buttonUp.TabIndex = 7; this.buttonUp.UseVisualStyleBackColor = true; this.buttonUp.Click += new System.EventHandler(this.ButtonMove_Click); // // buttonShowOnMap // - this.buttonShowOnMap.Location = new System.Drawing.Point(17, 391); + this.buttonShowOnMap.Location = new System.Drawing.Point(20, 604); + this.buttonShowOnMap.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.buttonShowOnMap.Name = "buttonShowOnMap"; - this.buttonShowOnMap.Size = new System.Drawing.Size(175, 35); + this.buttonShowOnMap.Size = new System.Drawing.Size(193, 47); this.buttonShowOnMap.TabIndex = 5; this.buttonShowOnMap.Text = "Посмотреть карту"; this.buttonShowOnMap.UseVisualStyleBackColor = true; @@ -156,46 +241,38 @@ // // buttonAddHoistingCrane // - this.buttonAddHoistingCrane.Location = new System.Drawing.Point(17, 106); - this.buttonAddHoistingCrane.Name = "buttonAddWarship"; - this.buttonAddHoistingCrane.Size = new System.Drawing.Size(175, 35); + this.buttonAddHoistingCrane.Location = new System.Drawing.Point(20, 404); + this.buttonAddHoistingCrane.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.buttonAddHoistingCrane.Name = "buttonAddHoistingCrane"; + this.buttonAddHoistingCrane.Size = new System.Drawing.Size(199, 47); this.buttonAddHoistingCrane.TabIndex = 1; this.buttonAddHoistingCrane.Text = "Добавить подъёмный кран"; this.buttonAddHoistingCrane.UseVisualStyleBackColor = true; this.buttonAddHoistingCrane.Click += new System.EventHandler(this.ButtonAddHoistingCrane_Click); // - // comboBoxSelectorMap - // - this.comboBoxSelectorMap.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.comboBoxSelectorMap.FormattingEnabled = true; - this.comboBoxSelectorMap.Items.AddRange(new object[] { - "Первая карта", - "Вторая карта"}); - this.comboBoxSelectorMap.Location = new System.Drawing.Point(17, 32); - this.comboBoxSelectorMap.Name = "comboBoxSelectorMap"; - this.comboBoxSelectorMap.Size = new System.Drawing.Size(175, 23); - this.comboBoxSelectorMap.TabIndex = 0; - this.comboBoxSelectorMap.SelectedIndexChanged += new System.EventHandler(this.ComboBoxSelectorMap_SelectedIndexChanged); - // // pictureBox // this.pictureBox.Dock = System.Windows.Forms.DockStyle.Fill; this.pictureBox.Location = new System.Drawing.Point(0, 0); + this.pictureBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.pictureBox.Name = "pictureBox"; - this.pictureBox.Size = new System.Drawing.Size(811, 554); + this.pictureBox.Size = new System.Drawing.Size(927, 782); this.pictureBox.TabIndex = 1; this.pictureBox.TabStop = false; this.pictureBox.Click += new System.EventHandler(this.pictureBox_Click); // // FormMapWithSetHoistingCrane // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1015, 554); + this.ClientSize = new System.Drawing.Size(1160, 782); this.Controls.Add(this.pictureBox); this.Controls.Add(this.groupBoxTools); + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.Name = "FormMapWithSetHoistingCrane"; this.Text = "Карта с набором объектов"; + this.groupBoxMaps.ResumeLayout(false); + this.groupBoxMaps.PerformLayout(); this.groupBoxTools.ResumeLayout(false); this.groupBoxTools.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit(); @@ -217,15 +294,10 @@ private Button buttonShowStorage; private Button buttonRemoveHoistingCrane; private MaskedTextBox maskedTextBoxPosition; - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - - - #endregion + private GroupBox groupBoxMaps; + private TextBox textBoxNewMapName; + private Button buttonDeleteMap; + private ListBox listBoxMaps; + private Button buttonAddMap; } } \ No newline at end of file diff --git a/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.cs b/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.cs index 8784862..9063695 100644 --- a/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.cs +++ b/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.cs @@ -12,51 +12,111 @@ namespace HoistingCrane { public partial class FormMapWithSetHoistingCrane : Form { + /// Словарь для выпадающего списка + /// + private readonly Dictionary _mapsDict = new() + { + { "Простая карта", new SimpleMap() }, + { "Вторая карта", new SecondMap() }, + }; + /// + /// Объект от коллекции карт + /// + private readonly MapsCollection _mapsCollection; + /// private MapWithSetHoistingCraneGeneric _mapHoistingCraneCollectionGeneric; public FormMapWithSetHoistingCrane() { InitializeComponent(); + _mapsCollection = new MapsCollection(pictureBox.Width, pictureBox.Height); + comboBoxSelectorMap.Items.Clear(); + foreach (var elem in _mapsDict) + { + comboBoxSelectorMap.Items.Add(elem.Key); + } + } + /// + /// Заполнение listBoxMaps + /// + private void ReloadMaps() + { + int index = listBoxMaps.SelectedIndex; + + listBoxMaps.Items.Clear(); + for (int i = 0; i < _mapsCollection.Keys.Count; i++) + { + listBoxMaps.Items.Add(_mapsCollection.Keys[i]); + } + + if (listBoxMaps.Items.Count > 0 && (index == -1 || index >= listBoxMaps.Items.Count)) + { + listBoxMaps.SelectedIndex = 0; + } + else if (listBoxMaps.Items.Count > 0 && index > -1 && index < listBoxMaps.Items.Count) + { + listBoxMaps.SelectedIndex = index; + } + } + /// + /// Добавление карты + /// + /// + /// + private void buttonAddMap_Click_1(object sender, EventArgs e) + { + if (comboBoxSelectorMap.SelectedIndex == -1 || string.IsNullOrEmpty(textBoxNewMapName.Text)) + { + MessageBox.Show("Не все данные заполнены", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + if (!_mapsDict.ContainsKey(comboBoxSelectorMap.Text)) + { + MessageBox.Show("Нет такой карты", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + _mapsCollection.AddMap(textBoxNewMapName.Text, _mapsDict[comboBoxSelectorMap.Text]); + ReloadMaps(); } - private void ComboBoxSelectorMap_SelectedIndexChanged(object sender, EventArgs e) + private void ListBoxMaps_SelectedIndexChanged(object sender, EventArgs e) { - AbstractMap map = null; - switch (comboBoxSelectorMap.Text) + pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); + } + /// + /// Удаление карты + /// + /// + /// + private void buttonDeleteMap_Click(object sender, EventArgs e) + { + if (listBoxMaps.SelectedIndex == -1) { - case "Первая карта": - map = new SimpleMap(); - break; - case "Вторая карта": - map = new SecondMap(); - break; + return; } - if (map != null) + + if (MessageBox.Show($"Удалить карту {listBoxMaps.SelectedItem}?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { - _mapHoistingCraneCollectionGeneric = new MapWithSetHoistingCraneGeneric( - pictureBox.Width, pictureBox.Height, map); - } - else - { - _mapHoistingCraneCollectionGeneric = null; + _mapsCollection.DelMap(listBoxMaps.SelectedItem?.ToString() ?? string.Empty); + ReloadMaps(); } } private void ButtonAddHoistingCrane_Click(object sender, EventArgs e) { - if (_mapHoistingCraneCollectionGeneric == null) + if (listBoxMaps.SelectedIndex == -1) { return; } FormHoistingCrane form = new(); if (form.ShowDialog() == DialogResult.OK) { - DrawingObjectHoistingCrane hoistingCrane = new(form.SelectedHoistingCrane); - if (_mapHoistingCraneCollectionGeneric + hoistingCrane == 1) + DrawingObjectHoistingCrane roadtrain = new(form.SelectedHoistingCrane); + if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] + roadtrain != -1) { MessageBox.Show("Объект добавлен"); - pictureBox.Image = _mapHoistingCraneCollectionGeneric.ShowSet(); + pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); } else { @@ -67,7 +127,7 @@ namespace HoistingCrane private void ButtonRemoveHoistingCrane_Click(object sender, EventArgs e) { - if (string.IsNullOrEmpty(maskedTextBoxPosition.Text)) + if (listBoxMaps.SelectedIndex == -1) { return; } @@ -76,10 +136,10 @@ namespace HoistingCrane return; } int pos = Convert.ToInt32(maskedTextBoxPosition.Text); - if (_mapHoistingCraneCollectionGeneric - pos == null) + if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] - pos != null) { MessageBox.Show("Объект удален"); - pictureBox.Image = _mapHoistingCraneCollectionGeneric.ShowSet(); + pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); } else { @@ -89,25 +149,25 @@ namespace HoistingCrane private void ButtonShowStorage_Click(object sender, EventArgs e) { - if (_mapHoistingCraneCollectionGeneric == null) + if (listBoxMaps.SelectedIndex == -1) { return; } - pictureBox.Image = _mapHoistingCraneCollectionGeneric.ShowSet(); + pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowOnMap(); } private void ButtonShowOnMap_Click(object sender, EventArgs e) { - if (_mapHoistingCraneCollectionGeneric == null) + if (listBoxMaps.SelectedIndex == -1) { return; } - pictureBox.Image = _mapHoistingCraneCollectionGeneric.ShowOnMap(); + pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowOnMap(); } private void ButtonMove_Click(object sender, EventArgs e) { - if (_mapHoistingCraneCollectionGeneric == null) + if (listBoxMaps.SelectedIndex == -1) { return; } diff --git a/HoistingCrane/HoistingCrane/MapWithSetHoistingCraneGeneric.cs b/HoistingCrane/HoistingCrane/MapWithSetHoistingCraneGeneric.cs index 5ab5352..4b1fb1d 100644 --- a/HoistingCrane/HoistingCrane/MapWithSetHoistingCraneGeneric.cs +++ b/HoistingCrane/HoistingCrane/MapWithSetHoistingCraneGeneric.cs @@ -49,13 +49,9 @@ namespace HoistingCrane public Bitmap ShowOnMap() { Shaking(); - for (int i = 0; i < _setHoistingCrane.Count; i++) + foreach (var hoistingCrane in _setHoistingCrane.GetHoistingCrane()) { - var bulldozer = _setHoistingCrane.Get(i); - if (bulldozer != null) - { - return _map.CreateMap(_pictureWidth, _pictureHeight, bulldozer); - } + return _map.CreateMap(_pictureWidth, _pictureHeight, hoistingCrane); } return new(_pictureWidth, _pictureHeight); } @@ -74,11 +70,11 @@ namespace HoistingCrane int j = _setHoistingCrane.Count - 1; for (int i = 0; i < _setHoistingCrane.Count; i++) { - if (_setHoistingCrane.Get(i) == null) + if (_setHoistingCrane[i] == null) { for (; j > i; j--) { - var warship = _setHoistingCrane.Get(j); + var warship = _setHoistingCrane[j]; if (warship != null) { _setHoistingCrane.Insert(warship, i); @@ -120,9 +116,9 @@ namespace HoistingCrane { return; } - _setHoistingCrane.Get(i)?.SetObject(curWidth * _placeSizeWidth + 10, + _setHoistingCrane[i]?.SetObject(curWidth * _placeSizeWidth + 10, curHeight * _placeSizeHeight + 10, _pictureWidth, _pictureHeight); - _setHoistingCrane.Get(i)?.DrawingObject(gr); + _setHoistingCrane[i]?.DrawingObject(gr); if (curWidth == 0) { diff --git a/HoistingCrane/HoistingCrane/MapsCollection.cs b/HoistingCrane/HoistingCrane/MapsCollection.cs new file mode 100644 index 0000000..3e42343 --- /dev/null +++ b/HoistingCrane/HoistingCrane/MapsCollection.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace HoistingCrane +{ + internal class MapsCollection + { + /// + /// Словарь (хранилище) с картами + /// + readonly Dictionary> _mapStorages; + /// + /// Возвращение списка названий карт + /// + public List Keys => _mapStorages.Keys.ToList(); + /// + /// Ширина окна отрисовки + /// + private readonly int _pictureWidth; + /// + /// Высота окна отрисовки + /// + private readonly int _pictureHeight; + /// + /// Конструктор + /// + /// + /// + public MapsCollection(int pictureWidth, int pictureHeight) + { + _mapStorages = new Dictionary>(); + _pictureWidth = pictureWidth; + _pictureHeight = pictureHeight; + } + /// + /// Добавление карты + /// + /// Название карты + /// Карта + public void AddMap(string name, AbstractMap map) + { + if (Keys.Contains(name)) return; + _mapStorages.Add(name, new(_pictureWidth, _pictureHeight, map)); + } + /// + /// Удаление карты + /// + /// Название карты + public void DelMap(string name) + { + if (_mapStorages.ContainsKey(name)) + { + _mapStorages.Remove(name); + } + } + /// + /// Доступ к парковке + /// + /// + /// + public MapWithSetHoistingCraneGeneric this[string ind] + { + get + { + if (ind != String.Empty) + { + MapWithSetHoistingCraneGeneric value; + if (_mapStorages.TryGetValue(ind, out value)) + { + return value; + } + } + return null; + } + } + } +} diff --git a/HoistingCrane/HoistingCrane/SetHoistingCraneGeneric.cs b/HoistingCrane/HoistingCrane/SetHoistingCraneGeneric.cs index 32f00d6..d44591d 100644 --- a/HoistingCrane/HoistingCrane/SetHoistingCraneGeneric.cs +++ b/HoistingCrane/HoistingCrane/SetHoistingCraneGeneric.cs @@ -9,13 +9,16 @@ namespace HoistingCrane internal class SetHoistingCraneGeneric where T : class { - public readonly T[] _places; + private readonly List _places; - public int Count => _places.Length; + public int Count => _places.Count; + + private readonly int _maxCount; public SetHoistingCraneGeneric(int count) { - _places = new T[count]; + _maxCount = count; + _places = new List(); } public int Insert(T hoistingCrane) @@ -25,38 +28,12 @@ namespace HoistingCrane public int Insert(T hoistingCrane, int position) { - int emptypos = -1; - if (position >= Count && position < 0) + if (position < 0 || position > Count || _maxCount == Count) { return -1; } - - if (_places[position] == null) - { - _places[position] = hoistingCrane; - return 1; - } - - for (int i = position; i < Count; i++) - { - if (_places[i] == null) - { - emptypos = i; - break; - } - } - - if (emptypos != -1) - { - for (int i = emptypos; i > position; i--) - { - _places[i] = _places[i - 1]; - } - _places[position] = hoistingCrane; - return 1; - } - - return -1; + _places.Insert(position, hoistingCrane); + return position; } public T Remove(int position) @@ -71,13 +48,34 @@ namespace HoistingCrane return null; } - public T Get(int position) + public T this[int position] { - if (position >= Count && position < 0) + get { + if (position >= 0 && position < Count) + { + return _places[position]; + } return null; } - return _places[position]; + set + { + Insert(value, position); + } + } + public IEnumerable GetHoistingCrane() + { + foreach (var hoistingcrane in _places) + { + if (hoistingcrane != null) + { + yield return hoistingcrane; + } + else + { + yield break; + } + } } } }