Nikolaeva Y.A. Lab work 06 #6
@ -36,5 +36,13 @@ namespace Airbus
|
||||
{
|
||||
_airbus?.SetPosition(x, y, width, height);
|
||||
}
|
||||
public void DrawningObject()
|
||||
{
|
||||
//TODO
|
||||
}
|
||||
|
||||
public string GetInfo() => _airbus?.GetDataForSave();
|
||||
|
||||
public static IDrawningObject Create(string data) => new DrawningObjectPlane(data.CreateDrawningPlane());
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ namespace Airbus
|
||||
{
|
||||
public int Speed { get; private set; } //скорость
|
||||
public float Weight { get; private set; } //вес
|
||||
public Color CorpusColor { get; private set; } //цвет корпуса
|
||||
public Color CorpusColor { get; set; } //цвет корпуса
|
||||
public float Step => Speed * 100 / Weight; //шаг перемещения самолёта
|
||||
public EntityAirbus(int speed, float weight, Color corpusColor)
|
||||
{
|
||||
|
@ -10,13 +10,13 @@ namespace Airbus
|
||||
internal class EntitySuperAirbus: EntityAirbus
|
||||
{
|
||||
//Дополнительный цвет
|
||||
public Color AddColor { get; private set; }
|
||||
public Color AddColor { get; set; }
|
||||
|
||||
//Признак наличия дополнительно пассажирского отсека
|
||||
public bool AddСompartment { get; private set; }
|
||||
|
||||
//Признак наличия доплнительных двигателей
|
||||
public bool AddEngine { get; private set; }
|
||||
public bool AddEngine { get; set; }
|
||||
|
||||
//Инициализация свойств
|
||||
public EntitySuperAirbus(int speed, float weight, Color corpusColor, Color addColor, bool addCompartment, bool addEngine) :
|
||||
|
53
Airbus/Airbus/ExtentionPlane.cs
Normal file
53
Airbus/Airbus/ExtentionPlane.cs
Normal file
@ -0,0 +1,53 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Airbus
|
||||
{
|
||||
//расширение для класса DrawingPlane (класс для сохранения в файл колекций объектов)
|
||||
internal static class ExtentionPlane
|
||||
{
|
||||
//разделитель для записи информации по объекту в файл
|
||||
private static readonly char _separatorForObject = ':';
|
||||
|
||||
//создание объекта из строки
|
||||
public static DrawningAirbus CreateDrawningPlane(this string info)
|
||||
{
|
||||
string[] strs = info.Split(_separatorForObject);
|
||||
|
||||
//если простой самолёт
|
||||
if (strs.Length == 3)
|
||||
{
|
||||
return new DrawningAirbus(Convert.ToInt32(strs[0]), Convert.ToInt32(strs[1]), Color.FromName(strs[2]));
|
||||
}
|
||||
|
||||
//если аэробус
|
||||
if (strs.Length == 6)
|
||||
{
|
||||
return new DrawningSuperAirbus(Convert.ToInt32(strs[0]), Convert.ToInt32(strs[1]), Color.FromName(strs[2]),
|
||||
Color.FromName(strs[3]), Convert.ToBoolean(strs[4]), Convert.ToBoolean(strs[5]));
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
//сохраниние объекта в строку
|
||||
public static string GetDataForSave(this DrawningAirbus drawingPlane)
|
||||
{
|
||||
var plane = drawingPlane.Airbus;
|
||||
var str = $"{plane.Speed}{_separatorForObject}{plane.Weight}{_separatorForObject}{plane.CorpusColor.Name}";
|
||||
|
||||
//если объект не расширеный
|
||||
if (plane is not EntitySuperAirbus airbus)
|
||||
{
|
||||
return str;
|
||||
}
|
||||
|
||||
return $"{str}{_separatorForObject}{airbus.AddColor.Name}{_separatorForObject}" +
|
||||
$"{airbus.AddEngine}{_separatorForObject}{airbus.AddСompartment}";
|
||||
|
||||
}
|
||||
}
|
||||
}
|
70
Airbus/Airbus/FormMapWithSetPlanes.Designer.cs
generated
70
Airbus/Airbus/FormMapWithSetPlanes.Designer.cs
generated
@ -45,9 +45,16 @@
|
||||
this.comboBoxSelectorMap = new System.Windows.Forms.ComboBox();
|
||||
this.textBoxNewMapName = new System.Windows.Forms.TextBox();
|
||||
this.pictureBox = new System.Windows.Forms.PictureBox();
|
||||
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
||||
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.SaveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.LoadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.openFileDialog = new System.Windows.Forms.OpenFileDialog();
|
||||
this.saveFileDialog = new System.Windows.Forms.SaveFileDialog();
|
||||
this.groupBoxTools.SuspendLayout();
|
||||
this.groupBox1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit();
|
||||
this.menuStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// groupBoxTools
|
||||
@ -63,9 +70,9 @@
|
||||
this.groupBoxTools.Controls.Add(this.buttonUp);
|
||||
this.groupBoxTools.Controls.Add(this.groupBox1);
|
||||
this.groupBoxTools.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.groupBoxTools.Location = new System.Drawing.Point(627, 0);
|
||||
this.groupBoxTools.Location = new System.Drawing.Point(627, 24);
|
||||
this.groupBoxTools.Name = "groupBoxTools";
|
||||
this.groupBoxTools.Size = new System.Drawing.Size(200, 534);
|
||||
this.groupBoxTools.Size = new System.Drawing.Size(200, 547);
|
||||
this.groupBoxTools.TabIndex = 0;
|
||||
this.groupBoxTools.TabStop = false;
|
||||
this.groupBoxTools.Text = "Инструменты";
|
||||
@ -229,19 +236,63 @@
|
||||
// pictureBox
|
||||
//
|
||||
this.pictureBox.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.pictureBox.Location = new System.Drawing.Point(0, 0);
|
||||
this.pictureBox.Location = new System.Drawing.Point(0, 24);
|
||||
this.pictureBox.Name = "pictureBox";
|
||||
this.pictureBox.Size = new System.Drawing.Size(627, 534);
|
||||
this.pictureBox.Size = new System.Drawing.Size(627, 547);
|
||||
this.pictureBox.TabIndex = 1;
|
||||
this.pictureBox.TabStop = false;
|
||||
//
|
||||
// menuStrip1
|
||||
//
|
||||
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.ToolStripMenuItem});
|
||||
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
this.menuStrip1.Name = "menuStrip1";
|
||||
this.menuStrip1.Size = new System.Drawing.Size(827, 24);
|
||||
this.menuStrip1.TabIndex = 2;
|
||||
this.menuStrip1.Text = "menuStrip1";
|
||||
//
|
||||
// ToolStripMenuItem
|
||||
//
|
||||
this.ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.SaveToolStripMenuItem,
|
||||
this.LoadToolStripMenuItem});
|
||||
this.ToolStripMenuItem.Name = "ToolStripMenuItem";
|
||||
this.ToolStripMenuItem.Size = new System.Drawing.Size(48, 20);
|
||||
this.ToolStripMenuItem.Text = "Файл";
|
||||
//
|
||||
// SaveToolStripMenuItem
|
||||
//
|
||||
this.SaveToolStripMenuItem.Name = "SaveToolStripMenuItem";
|
||||
this.SaveToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.SaveToolStripMenuItem.Text = "Сохранение";
|
||||
this.SaveToolStripMenuItem.Click += new System.EventHandler(this.SaveToolStripMenuItem_Click);
|
||||
//
|
||||
// LoadToolStripMenuItem
|
||||
//
|
||||
this.LoadToolStripMenuItem.Name = "LoadToolStripMenuItem";
|
||||
this.LoadToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.LoadToolStripMenuItem.Text = "Загрузка";
|
||||
this.LoadToolStripMenuItem.Click += new System.EventHandler(this.LoadToolStripMenuItem_Click);
|
||||
//
|
||||
// openFileDialog
|
||||
//
|
||||
this.openFileDialog.FileName = "openFileDialog1";
|
||||
this.openFileDialog.Filter = "txt file | *.txt";
|
||||
//
|
||||
// saveFileDialog
|
||||
//
|
||||
this.saveFileDialog.Filter = "txt file | *.txt";
|
||||
//
|
||||
// FormMapWithSetPlanes
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(827, 534);
|
||||
this.ClientSize = new System.Drawing.Size(827, 571);
|
||||
this.Controls.Add(this.pictureBox);
|
||||
this.Controls.Add(this.groupBoxTools);
|
||||
this.Controls.Add(this.menuStrip1);
|
||||
this.MainMenuStrip = this.menuStrip1;
|
||||
this.Name = "FormMapWithSetPlanes";
|
||||
this.Text = "FormMapWithSetPlanes";
|
||||
this.groupBoxTools.ResumeLayout(false);
|
||||
@ -249,7 +300,10 @@
|
||||
this.groupBox1.ResumeLayout(false);
|
||||
this.groupBox1.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit();
|
||||
this.menuStrip1.ResumeLayout(false);
|
||||
this.menuStrip1.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
@ -272,5 +326,11 @@
|
||||
private Button buttonAddMap;
|
||||
private Button buttonDeleteMap;
|
||||
private TextBox textBoxNewMapName;
|
||||
private MenuStrip menuStrip1;
|
||||
private ToolStripMenuItem ToolStripMenuItem;
|
||||
private ToolStripMenuItem SaveToolStripMenuItem;
|
||||
private ToolStripMenuItem LoadToolStripMenuItem;
|
||||
private OpenFileDialog openFileDialog;
|
||||
private SaveFileDialog saveFileDialog;
|
||||
}
|
||||
}
|
@ -24,6 +24,7 @@ namespace Airbus
|
||||
//объект от коллекции карт
|
||||
private readonly MapsCollection _mapsCollection;
|
||||
|
||||
//конструктор
|
||||
public FormMapWithSetPlanes()
|
||||
{
|
||||
InitializeComponent();
|
||||
@ -98,6 +99,8 @@ namespace Airbus
|
||||
ReloadMaps();
|
||||
}
|
||||
}
|
||||
|
||||
//отрисовка добавленного объекта в хранилище
|
||||
private void AddPlane(DrawningAirbus plane)
|
||||
{
|
||||
if (listBoxMaps.SelectedIndex == -1)
|
||||
@ -203,6 +206,41 @@ namespace Airbus
|
||||
|
||||
pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? String.Empty].MoveObject(dir);
|
||||
}
|
||||
//обработка нажатия сохранения
|
||||
private void SaveToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (saveFileDialog.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
if (_mapsCollection.SaveData(saveFileDialog.FileName))
|
||||
{
|
||||
MessageBox.Show("Сохранение прошло успешно", "Результат",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("Не сохранилось", "Результат",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//обработка нажатия загрузки
|
||||
private void LoadToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
if (_mapsCollection.LoadData(openFileDialog.FileName))
|
||||
{
|
||||
ReloadMaps();
|
||||
MessageBox.Show("Загрузка данных прошла успешно", "Результат",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("Ошибка загрузки данных", "Результат",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -57,4 +57,13 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="openFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>132, 17</value>
|
||||
</metadata>
|
||||
<metadata name="saveFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>272, 17</value>
|
||||
</metadata>
|
||||
</root>
|
351
Airbus/Airbus/FormPlaneConfig.Designer.cs
generated
351
Airbus/Airbus/FormPlaneConfig.Designer.cs
generated
@ -29,35 +29,35 @@
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.groupBoxConfig = new System.Windows.Forms.GroupBox();
|
||||
this.labelSpeed = new System.Windows.Forms.Label();
|
||||
this.labelWeight = new System.Windows.Forms.Label();
|
||||
this.numericUpDownSpeed = new System.Windows.Forms.NumericUpDown();
|
||||
this.numericUpDownWeight = new System.Windows.Forms.NumericUpDown();
|
||||
this.checkBoxAddEngine = new System.Windows.Forms.CheckBox();
|
||||
this.checkBoxAddСompartment = new System.Windows.Forms.CheckBox();
|
||||
this.groupBoxColors = new System.Windows.Forms.GroupBox();
|
||||
this.panelWhite = new System.Windows.Forms.Panel();
|
||||
this.panelGray = new System.Windows.Forms.Panel();
|
||||
this.panelBlack = new System.Windows.Forms.Panel();
|
||||
this.panelPurple = new System.Windows.Forms.Panel();
|
||||
this.panelYellow = new System.Windows.Forms.Panel();
|
||||
this.panelBlue = new System.Windows.Forms.Panel();
|
||||
this.panelGreen = new System.Windows.Forms.Panel();
|
||||
this.panelRed = new System.Windows.Forms.Panel();
|
||||
this.labelSimpleObject = new System.Windows.Forms.Label();
|
||||
this.labelModifiedObject = new System.Windows.Forms.Label();
|
||||
this.labelSimpleObject = new System.Windows.Forms.Label();
|
||||
this.groupBoxColors = new System.Windows.Forms.GroupBox();
|
||||
this.panelRed = new System.Windows.Forms.Panel();
|
||||
this.panelGreen = new System.Windows.Forms.Panel();
|
||||
this.panelBlue = new System.Windows.Forms.Panel();
|
||||
this.panelYellow = new System.Windows.Forms.Panel();
|
||||
this.panelPurple = new System.Windows.Forms.Panel();
|
||||
this.panelBlack = new System.Windows.Forms.Panel();
|
||||
this.panelGray = new System.Windows.Forms.Panel();
|
||||
this.panelWhite = new System.Windows.Forms.Panel();
|
||||
this.checkBoxAddСompartment = new System.Windows.Forms.CheckBox();
|
||||
this.checkBoxAddEngine = new System.Windows.Forms.CheckBox();
|
||||
this.numericUpDownWeight = new System.Windows.Forms.NumericUpDown();
|
||||
this.numericUpDownSpeed = new System.Windows.Forms.NumericUpDown();
|
||||
this.labelWeight = new System.Windows.Forms.Label();
|
||||
this.labelSpeed = new System.Windows.Forms.Label();
|
||||
this.pictureBoxObject = new System.Windows.Forms.PictureBox();
|
||||
this.anelObject = new System.Windows.Forms.Panel();
|
||||
this.labelBaseColor = new System.Windows.Forms.Label();
|
||||
this.panelObject = new System.Windows.Forms.Panel();
|
||||
this.labelAddColor = new System.Windows.Forms.Label();
|
||||
this.labelBaseColor = new System.Windows.Forms.Label();
|
||||
this.buttonAddObject = new System.Windows.Forms.Button();
|
||||
this.buttonCancel = new System.Windows.Forms.Button();
|
||||
this.groupBoxConfig.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownSpeed)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownWeight)).BeginInit();
|
||||
this.groupBoxColors.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownWeight)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownSpeed)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBoxObject)).BeginInit();
|
||||
this.anelObject.SuspendLayout();
|
||||
this.panelObject.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// groupBoxConfig
|
||||
@ -78,57 +78,27 @@
|
||||
this.groupBoxConfig.TabStop = false;
|
||||
this.groupBoxConfig.Text = "Параметры";
|
||||
//
|
||||
// labelSpeed
|
||||
// labelModifiedObject
|
||||
//
|
||||
this.labelSpeed.AutoSize = true;
|
||||
this.labelSpeed.Location = new System.Drawing.Point(17, 31);
|
||||
this.labelSpeed.Name = "labelSpeed";
|
||||
this.labelSpeed.Size = new System.Drawing.Size(62, 15);
|
||||
this.labelSpeed.TabIndex = 0;
|
||||
this.labelSpeed.Text = "Скорость:";
|
||||
this.labelModifiedObject.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.labelModifiedObject.Location = new System.Drawing.Point(500, 142);
|
||||
this.labelModifiedObject.Name = "labelModifiedObject";
|
||||
this.labelModifiedObject.Size = new System.Drawing.Size(103, 23);
|
||||
this.labelModifiedObject.TabIndex = 8;
|
||||
this.labelModifiedObject.Text = "Продвитнутый";
|
||||
this.labelModifiedObject.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
this.labelModifiedObject.MouseDown += new System.Windows.Forms.MouseEventHandler(this.LabelObject_MouseDown);
|
||||
//
|
||||
// labelWeight
|
||||
// labelSimpleObject
|
||||
//
|
||||
this.labelWeight.AutoSize = true;
|
||||
this.labelWeight.Location = new System.Drawing.Point(17, 66);
|
||||
this.labelWeight.Name = "labelWeight";
|
||||
this.labelWeight.Size = new System.Drawing.Size(29, 15);
|
||||
this.labelWeight.TabIndex = 1;
|
||||
this.labelWeight.Text = "Вес:";
|
||||
//
|
||||
// numericUpDownSpeed
|
||||
//
|
||||
this.numericUpDownSpeed.Location = new System.Drawing.Point(89, 29);
|
||||
this.numericUpDownSpeed.Name = "numericUpDownSpeed";
|
||||
this.numericUpDownSpeed.Size = new System.Drawing.Size(69, 23);
|
||||
this.numericUpDownSpeed.TabIndex = 2;
|
||||
//
|
||||
// numericUpDownWeight
|
||||
//
|
||||
this.numericUpDownWeight.Location = new System.Drawing.Point(89, 58);
|
||||
this.numericUpDownWeight.Name = "numericUpDownWeight";
|
||||
this.numericUpDownWeight.Size = new System.Drawing.Size(69, 23);
|
||||
this.numericUpDownWeight.TabIndex = 3;
|
||||
//
|
||||
// checkBoxAddEngine
|
||||
//
|
||||
this.checkBoxAddEngine.AutoSize = true;
|
||||
this.checkBoxAddEngine.Location = new System.Drawing.Point(17, 106);
|
||||
this.checkBoxAddEngine.Name = "checkBoxAddEngine";
|
||||
this.checkBoxAddEngine.Size = new System.Drawing.Size(281, 19);
|
||||
this.checkBoxAddEngine.TabIndex = 4;
|
||||
this.checkBoxAddEngine.Text = "Признак наличия дополнительного двигателя";
|
||||
this.checkBoxAddEngine.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// checkBoxAddСompartment
|
||||
//
|
||||
this.checkBoxAddСompartment.AutoSize = true;
|
||||
this.checkBoxAddСompartment.Location = new System.Drawing.Point(17, 142);
|
||||
this.checkBoxAddСompartment.Name = "checkBoxAddСompartment";
|
||||
this.checkBoxAddСompartment.Size = new System.Drawing.Size(351, 19);
|
||||
this.checkBoxAddСompartment.TabIndex = 5;
|
||||
this.checkBoxAddСompartment.Text = "Признак наличия дополнительного пассажирского отсека";
|
||||
this.checkBoxAddСompartment.UseVisualStyleBackColor = true;
|
||||
this.labelSimpleObject.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.labelSimpleObject.Location = new System.Drawing.Point(386, 142);
|
||||
this.labelSimpleObject.Name = "labelSimpleObject";
|
||||
this.labelSimpleObject.Size = new System.Drawing.Size(100, 23);
|
||||
this.labelSimpleObject.TabIndex = 7;
|
||||
this.labelSimpleObject.Text = "Простой";
|
||||
this.labelSimpleObject.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
this.labelSimpleObject.MouseDown += new System.Windows.Forms.MouseEventHandler(this.LabelObject_MouseDown);
|
||||
//
|
||||
// groupBoxColors
|
||||
//
|
||||
@ -147,54 +117,14 @@
|
||||
this.groupBoxColors.TabStop = false;
|
||||
this.groupBoxColors.Text = "Цвета";
|
||||
//
|
||||
// panelWhite
|
||||
// panelRed
|
||||
//
|
||||
this.panelWhite.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.panelWhite.Location = new System.Drawing.Point(6, 22);
|
||||
this.panelWhite.Name = "panelWhite";
|
||||
this.panelWhite.Size = new System.Drawing.Size(39, 32);
|
||||
this.panelWhite.TabIndex = 0;
|
||||
//
|
||||
// panelGray
|
||||
//
|
||||
this.panelGray.BackColor = System.Drawing.SystemColors.ControlDark;
|
||||
this.panelGray.Location = new System.Drawing.Point(51, 22);
|
||||
this.panelGray.Name = "panelGray";
|
||||
this.panelGray.Size = new System.Drawing.Size(39, 32);
|
||||
this.panelGray.TabIndex = 1;
|
||||
//
|
||||
// panelBlack
|
||||
//
|
||||
this.panelBlack.BackColor = System.Drawing.SystemColors.ActiveCaptionText;
|
||||
this.panelBlack.Location = new System.Drawing.Point(96, 22);
|
||||
this.panelBlack.Name = "panelBlack";
|
||||
this.panelBlack.Size = new System.Drawing.Size(39, 32);
|
||||
this.panelBlack.TabIndex = 2;
|
||||
//
|
||||
// panelPurple
|
||||
//
|
||||
this.panelPurple.BackColor = System.Drawing.Color.Purple;
|
||||
this.panelPurple.Location = new System.Drawing.Point(141, 22);
|
||||
this.panelPurple.Name = "panelPurple";
|
||||
this.panelPurple.Size = new System.Drawing.Size(39, 32);
|
||||
this.panelPurple.TabIndex = 3;
|
||||
//
|
||||
// panelYellow
|
||||
//
|
||||
this.panelYellow.BackColor = System.Drawing.Color.Yellow;
|
||||
this.panelYellow.Location = new System.Drawing.Point(6, 60);
|
||||
this.panelYellow.Name = "panelYellow";
|
||||
this.panelYellow.Size = new System.Drawing.Size(39, 32);
|
||||
this.panelYellow.TabIndex = 4;
|
||||
//
|
||||
// panelBlue
|
||||
//
|
||||
this.panelBlue.BackColor = System.Drawing.Color.Blue;
|
||||
this.panelBlue.Location = new System.Drawing.Point(51, 60);
|
||||
this.panelBlue.Name = "panelBlue";
|
||||
this.panelBlue.Size = new System.Drawing.Size(39, 32);
|
||||
this.panelBlue.TabIndex = 1;
|
||||
this.panelBlue.Paint += new System.Windows.Forms.PaintEventHandler(this.panel6_Paint);
|
||||
this.panelRed.BackColor = System.Drawing.Color.Red;
|
||||
this.panelRed.Location = new System.Drawing.Point(141, 60);
|
||||
this.panelRed.Name = "panelRed";
|
||||
this.panelRed.Size = new System.Drawing.Size(39, 32);
|
||||
this.panelRed.TabIndex = 6;
|
||||
this.panelRed.MouseDown += new System.Windows.Forms.MouseEventHandler(this.PanelColor_MouseDown);
|
||||
//
|
||||
// panelGreen
|
||||
//
|
||||
@ -203,68 +133,135 @@
|
||||
this.panelGreen.Name = "panelGreen";
|
||||
this.panelGreen.Size = new System.Drawing.Size(39, 32);
|
||||
this.panelGreen.TabIndex = 5;
|
||||
this.panelGreen.MouseDown += new System.Windows.Forms.MouseEventHandler(this.PanelColor_MouseDown);
|
||||
//
|
||||
// panelRed
|
||||
// panelBlue
|
||||
//
|
||||
this.panelRed.BackColor = System.Drawing.Color.Red;
|
||||
this.panelRed.Location = new System.Drawing.Point(141, 60);
|
||||
this.panelRed.Name = "panelRed";
|
||||
this.panelRed.Size = new System.Drawing.Size(39, 32);
|
||||
this.panelRed.TabIndex = 6;
|
||||
this.panelBlue.BackColor = System.Drawing.Color.Blue;
|
||||
this.panelBlue.Location = new System.Drawing.Point(51, 60);
|
||||
this.panelBlue.Name = "panelBlue";
|
||||
this.panelBlue.Size = new System.Drawing.Size(39, 32);
|
||||
this.panelBlue.TabIndex = 1;
|
||||
this.panelBlue.MouseDown += new System.Windows.Forms.MouseEventHandler(this.PanelColor_MouseDown);
|
||||
//
|
||||
// labelSimpleObject
|
||||
// panelYellow
|
||||
//
|
||||
this.labelSimpleObject.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.labelSimpleObject.Location = new System.Drawing.Point(386, 142);
|
||||
this.labelSimpleObject.Name = "labelSimpleObject";
|
||||
this.labelSimpleObject.Size = new System.Drawing.Size(100, 23);
|
||||
this.labelSimpleObject.TabIndex = 7;
|
||||
this.labelSimpleObject.Text = "Простой";
|
||||
this.labelSimpleObject.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
this.labelSimpleObject.MouseDown += new System.Windows.Forms.MouseEventHandler(this.LabelObject_MouseDown);
|
||||
this.panelYellow.BackColor = System.Drawing.Color.Yellow;
|
||||
this.panelYellow.Location = new System.Drawing.Point(6, 60);
|
||||
this.panelYellow.Name = "panelYellow";
|
||||
this.panelYellow.Size = new System.Drawing.Size(39, 32);
|
||||
this.panelYellow.TabIndex = 4;
|
||||
this.panelYellow.MouseDown += new System.Windows.Forms.MouseEventHandler(this.PanelColor_MouseDown);
|
||||
//
|
||||
// labelModifiedObject
|
||||
// panelPurple
|
||||
//
|
||||
this.labelModifiedObject.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.labelModifiedObject.Location = new System.Drawing.Point(500, 142);
|
||||
this.labelModifiedObject.Name = "labelModifiedObject";
|
||||
this.labelModifiedObject.Size = new System.Drawing.Size(103, 23);
|
||||
this.labelModifiedObject.TabIndex = 8;
|
||||
this.labelModifiedObject.Text = "Продвитнутый";
|
||||
this.labelModifiedObject.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
this.labelModifiedObject.MouseDown += new System.Windows.Forms.MouseEventHandler(this.LabelObject_MouseDown);
|
||||
this.panelPurple.BackColor = System.Drawing.Color.Purple;
|
||||
this.panelPurple.Location = new System.Drawing.Point(141, 22);
|
||||
this.panelPurple.Name = "panelPurple";
|
||||
this.panelPurple.Size = new System.Drawing.Size(39, 32);
|
||||
this.panelPurple.TabIndex = 3;
|
||||
this.panelPurple.MouseDown += new System.Windows.Forms.MouseEventHandler(this.PanelColor_MouseDown);
|
||||
//
|
||||
// panelBlack
|
||||
//
|
||||
this.panelBlack.BackColor = System.Drawing.SystemColors.ActiveCaptionText;
|
||||
this.panelBlack.Location = new System.Drawing.Point(96, 22);
|
||||
this.panelBlack.Name = "panelBlack";
|
||||
this.panelBlack.Size = new System.Drawing.Size(39, 32);
|
||||
this.panelBlack.TabIndex = 2;
|
||||
this.panelBlack.MouseDown += new System.Windows.Forms.MouseEventHandler(this.PanelColor_MouseDown);
|
||||
//
|
||||
// panelGray
|
||||
//
|
||||
this.panelGray.BackColor = System.Drawing.SystemColors.ControlDark;
|
||||
this.panelGray.Location = new System.Drawing.Point(51, 22);
|
||||
this.panelGray.Name = "panelGray";
|
||||
this.panelGray.Size = new System.Drawing.Size(39, 32);
|
||||
this.panelGray.TabIndex = 1;
|
||||
this.panelGray.MouseDown += new System.Windows.Forms.MouseEventHandler(this.PanelColor_MouseDown);
|
||||
//
|
||||
// panelWhite
|
||||
//
|
||||
this.panelWhite.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.panelWhite.Location = new System.Drawing.Point(6, 22);
|
||||
this.panelWhite.Name = "panelWhite";
|
||||
this.panelWhite.Size = new System.Drawing.Size(39, 32);
|
||||
this.panelWhite.TabIndex = 0;
|
||||
this.panelWhite.MouseDown += new System.Windows.Forms.MouseEventHandler(this.PanelColor_MouseDown);
|
||||
//
|
||||
// checkBoxAddСompartment
|
||||
//
|
||||
this.checkBoxAddСompartment.AutoSize = true;
|
||||
this.checkBoxAddСompartment.Location = new System.Drawing.Point(17, 142);
|
||||
this.checkBoxAddСompartment.Name = "checkBoxAddСompartment";
|
||||
this.checkBoxAddСompartment.Size = new System.Drawing.Size(351, 19);
|
||||
this.checkBoxAddСompartment.TabIndex = 5;
|
||||
this.checkBoxAddСompartment.Text = "Признак наличия дополнительного пассажирского отсека";
|
||||
this.checkBoxAddСompartment.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// checkBoxAddEngine
|
||||
//
|
||||
this.checkBoxAddEngine.AutoSize = true;
|
||||
this.checkBoxAddEngine.Location = new System.Drawing.Point(17, 106);
|
||||
this.checkBoxAddEngine.Name = "checkBoxAddEngine";
|
||||
this.checkBoxAddEngine.Size = new System.Drawing.Size(281, 19);
|
||||
this.checkBoxAddEngine.TabIndex = 4;
|
||||
this.checkBoxAddEngine.Text = "Признак наличия дополнительного двигателя";
|
||||
this.checkBoxAddEngine.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// numericUpDownWeight
|
||||
//
|
||||
this.numericUpDownWeight.Location = new System.Drawing.Point(89, 58);
|
||||
this.numericUpDownWeight.Name = "numericUpDownWeight";
|
||||
this.numericUpDownWeight.Size = new System.Drawing.Size(69, 23);
|
||||
this.numericUpDownWeight.TabIndex = 3;
|
||||
//
|
||||
// numericUpDownSpeed
|
||||
//
|
||||
this.numericUpDownSpeed.Location = new System.Drawing.Point(89, 29);
|
||||
this.numericUpDownSpeed.Name = "numericUpDownSpeed";
|
||||
this.numericUpDownSpeed.Size = new System.Drawing.Size(69, 23);
|
||||
this.numericUpDownSpeed.TabIndex = 2;
|
||||
//
|
||||
// labelWeight
|
||||
//
|
||||
this.labelWeight.AutoSize = true;
|
||||
this.labelWeight.Location = new System.Drawing.Point(17, 66);
|
||||
this.labelWeight.Name = "labelWeight";
|
||||
this.labelWeight.Size = new System.Drawing.Size(29, 15);
|
||||
this.labelWeight.TabIndex = 1;
|
||||
this.labelWeight.Text = "Вес:";
|
||||
//
|
||||
// labelSpeed
|
||||
//
|
||||
this.labelSpeed.AutoSize = true;
|
||||
this.labelSpeed.Location = new System.Drawing.Point(17, 31);
|
||||
this.labelSpeed.Name = "labelSpeed";
|
||||
this.labelSpeed.Size = new System.Drawing.Size(62, 15);
|
||||
this.labelSpeed.TabIndex = 0;
|
||||
this.labelSpeed.Text = "Скорость:";
|
||||
//
|
||||
// pictureBoxObject
|
||||
//
|
||||
this.pictureBoxObject.Location = new System.Drawing.Point(17, 41);
|
||||
this.pictureBoxObject.Location = new System.Drawing.Point(17, 38);
|
||||
this.pictureBoxObject.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||
this.pictureBoxObject.Name = "pictureBoxObject";
|
||||
this.pictureBoxObject.Size = new System.Drawing.Size(206, 71);
|
||||
this.pictureBoxObject.Size = new System.Drawing.Size(206, 83);
|
||||
this.pictureBoxObject.TabIndex = 1;
|
||||
this.pictureBoxObject.TabStop = false;
|
||||
//
|
||||
// anelObject
|
||||
// panelObject
|
||||
//
|
||||
this.anelObject.AllowDrop = true;
|
||||
this.anelObject.Controls.Add(this.labelAddColor);
|
||||
this.anelObject.Controls.Add(this.labelBaseColor);
|
||||
this.anelObject.Controls.Add(this.pictureBoxObject);
|
||||
this.anelObject.Location = new System.Drawing.Point(673, 2);
|
||||
this.anelObject.Name = "anelObject";
|
||||
this.anelObject.Size = new System.Drawing.Size(237, 124);
|
||||
this.anelObject.TabIndex = 2;
|
||||
this.anelObject.MouseDown += new System.Windows.Forms.MouseEventHandler(this.PanelColor_MouseDown);
|
||||
//
|
||||
// labelBaseColor
|
||||
//
|
||||
this.labelBaseColor.AllowDrop = true;
|
||||
this.labelBaseColor.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.labelBaseColor.Location = new System.Drawing.Point(17, 10);
|
||||
this.labelBaseColor.Name = "labelBaseColor";
|
||||
this.labelBaseColor.Size = new System.Drawing.Size(100, 23);
|
||||
this.labelBaseColor.TabIndex = 8;
|
||||
this.labelBaseColor.Text = "Цвет";
|
||||
this.labelBaseColor.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
this.labelBaseColor.MouseEnter += new System.EventHandler(this.PanelObject_DragEnter);
|
||||
this.panelObject.AllowDrop = true;
|
||||
this.panelObject.Controls.Add(this.pictureBoxObject);
|
||||
this.panelObject.Controls.Add(this.labelAddColor);
|
||||
this.panelObject.Controls.Add(this.labelBaseColor);
|
||||
this.panelObject.Location = new System.Drawing.Point(673, 2);
|
||||
this.panelObject.Name = "panelObject";
|
||||
this.panelObject.Size = new System.Drawing.Size(237, 124);
|
||||
this.panelObject.TabIndex = 2;
|
||||
this.panelObject.DragDrop += new System.Windows.Forms.DragEventHandler(this.PanelObject_DragDrop);
|
||||
this.panelObject.DragEnter += new System.Windows.Forms.DragEventHandler(this.PanelObject_DragEnter);
|
||||
//
|
||||
// labelAddColor
|
||||
//
|
||||
@ -276,6 +273,21 @@
|
||||
this.labelAddColor.TabIndex = 9;
|
||||
this.labelAddColor.Text = "Доп. цвет";
|
||||
this.labelAddColor.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
this.labelAddColor.DragDrop += new System.Windows.Forms.DragEventHandler(this.LabelAddColor_DragDrop);
|
||||
this.labelAddColor.DragEnter += new System.Windows.Forms.DragEventHandler(this.LabelColor_DragEnter);
|
||||
//
|
||||
// labelBaseColor
|
||||
//
|
||||
this.labelBaseColor.AllowDrop = true;
|
||||
this.labelBaseColor.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.labelBaseColor.Location = new System.Drawing.Point(17, 10);
|
||||
this.labelBaseColor.Name = "labelBaseColor";
|
||||
this.labelBaseColor.Size = new System.Drawing.Size(100, 23);
|
||||
this.labelBaseColor.TabIndex = 8;
|
||||
this.labelBaseColor.Text = "Цвет";
|
||||
this.labelBaseColor.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
this.labelBaseColor.DragDrop += new System.Windows.Forms.DragEventHandler(this.LabelBaseColor_DragDrop);
|
||||
this.labelBaseColor.DragEnter += new System.Windows.Forms.DragEventHandler(this.LabelColor_DragEnter);
|
||||
//
|
||||
// buttonAddObject
|
||||
//
|
||||
@ -285,6 +297,7 @@
|
||||
this.buttonAddObject.TabIndex = 3;
|
||||
this.buttonAddObject.Text = "Добавить";
|
||||
this.buttonAddObject.UseVisualStyleBackColor = true;
|
||||
this.buttonAddObject.Click += new System.EventHandler(this.ButtonAddObject_Click);
|
||||
//
|
||||
// buttonCancel
|
||||
//
|
||||
@ -302,17 +315,17 @@
|
||||
this.ClientSize = new System.Drawing.Size(933, 184);
|
||||
this.Controls.Add(this.buttonCancel);
|
||||
this.Controls.Add(this.buttonAddObject);
|
||||
this.Controls.Add(this.anelObject);
|
||||
this.Controls.Add(this.groupBoxConfig);
|
||||
this.Controls.Add(this.panelObject);
|
||||
this.Name = "FormPlaneConfig";
|
||||
this.Text = "Создание объекта";
|
||||
this.groupBoxConfig.ResumeLayout(false);
|
||||
this.groupBoxConfig.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownSpeed)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownWeight)).EndInit();
|
||||
this.groupBoxColors.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownWeight)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownSpeed)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBoxObject)).EndInit();
|
||||
this.anelObject.ResumeLayout(false);
|
||||
this.panelObject.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
@ -338,7 +351,7 @@
|
||||
private Label labelWeight;
|
||||
private Label labelSpeed;
|
||||
private PictureBox pictureBoxObject;
|
||||
private Panel anelObject;
|
||||
private Panel panelObject;
|
||||
private Label labelAddColor;
|
||||
private Label labelBaseColor;
|
||||
private Button buttonAddObject;
|
||||
|
@ -11,11 +11,11 @@ using System.Windows.Forms;
|
||||
namespace Airbus
|
||||
{
|
||||
public partial class FormPlaneConfig : Form
|
||||
{//переменная-выбранная машина
|
||||
{//переменная-выбранный самолёт
|
||||
DrawningAirbus _plane = null;
|
||||
|
||||
//событие
|
||||
private event PlaneDelegate EventAddPlane;
|
||||
private event Action<DrawningAirbus> EventAddPlane;
|
||||
|
||||
//конструктор
|
||||
public FormPlaneConfig()
|
||||
@ -29,6 +29,8 @@ namespace Airbus
|
||||
panelWhite.MouseDown += PanelColor_MouseDown;
|
||||
panelYellow.MouseDown += PanelColor_MouseDown;
|
||||
panelBlue.MouseDown += PanelColor_MouseDown;
|
||||
|
||||
buttonCancel.Click += (object sender, EventArgs e) => Close();
|
||||
}
|
||||
|
||||
//отрисовка самолёт
|
||||
@ -41,11 +43,11 @@ namespace Airbus
|
||||
pictureBoxObject.Image = bmp;
|
||||
}
|
||||
//добавление события
|
||||
public void AddEvent(PlaneDelegate ev)
|
||||
public void AddEvent(Action<DrawningAirbus> ev)
|
||||
{
|
||||
if (EventAddPlane == null)
|
||||
if(EventAddPlane == null)
|
||||
{
|
||||
EventAddPlane = new PlaneDelegate(ev);
|
||||
EventAddPlane = new Action<DrawningAirbus>(ev);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -56,7 +58,6 @@ namespace Airbus
|
||||
{
|
||||
(sender as Label).DoDragDrop((sender as Label).Name, DragDropEffects.Move | DragDropEffects.Copy);
|
||||
}
|
||||
|
||||
//проверка получаемой информации (ее типа на соответствие требуемому)
|
||||
private void PanelObject_DragEnter(object sender, DragEventArgs e)
|
||||
{
|
||||
@ -90,13 +91,13 @@ namespace Airbus
|
||||
//отправляем цвет с панели
|
||||
private void PanelColor_MouseDown(object sender, MouseEventArgs e)
|
||||
{
|
||||
(sender as Control).DoDragDrop((sender as Control).Name, DragDropEffects.Move | DragDropEffects.Copy);
|
||||
(sender as Control).DoDragDrop((sender as Control).BackColor, DragDropEffects.Move | DragDropEffects.Copy);
|
||||
}
|
||||
|
||||
//проверка получаемой информации (её типа на соответсвие требуемому)
|
||||
private void LabelBaseColor_DragEnter(object sender, DragEventArgs e)
|
||||
private void LabelColor_DragEnter(object sender, DragEventArgs e)
|
||||
{
|
||||
if (e.Data.GetDataPresent(DataFormats.Text))
|
||||
if (e.Data.GetDataPresent(typeof(Color)))
|
||||
{
|
||||
e.Effect = DragDropEffects.Copy;
|
||||
}
|
||||
@ -109,77 +110,23 @@ namespace Airbus
|
||||
//принимаем основной цвет
|
||||
private void LabelBaseColor_DragDrop(object sender, DragEventArgs e)
|
||||
{
|
||||
switch (e.Data.GetData(DataFormats.Text).ToString())
|
||||
//проверка на пустоту объекта
|
||||
if (_plane != null)
|
||||
{
|
||||
case "panelRed":
|
||||
labelBaseColor.BackColor = Color.Red;
|
||||
break;
|
||||
case "panelBlack":
|
||||
labelBaseColor.BackColor = Color.Black;
|
||||
break;
|
||||
case "panelGreen":
|
||||
labelBaseColor.BackColor = Color.Green;
|
||||
break;
|
||||
case "panelYellow":
|
||||
labelBaseColor.BackColor = Color.Yellow;
|
||||
break;
|
||||
case "panelBlue":
|
||||
labelBaseColor.BackColor = Color.Blue;
|
||||
break;
|
||||
case "panelPurple":
|
||||
labelBaseColor.BackColor = Color.Purple;
|
||||
break;
|
||||
case "panelGray":
|
||||
labelBaseColor.BackColor = Color.DarkGray;
|
||||
break;
|
||||
case "panelWhite":
|
||||
labelBaseColor.BackColor = Color.White;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//проверка получаемой информации (её типа на соответсвие требуемому)
|
||||
private void LabelAddColor_DragEnter(object sender, DragEventArgs e)
|
||||
{
|
||||
if (e.Data.GetDataPresent(DataFormats.Text))
|
||||
{
|
||||
e.Effect = DragDropEffects.Copy;
|
||||
}
|
||||
else
|
||||
{
|
||||
e.Effect = DragDropEffects.None;
|
||||
_plane.Airbus.CorpusColor = (Color)e.Data.GetData(typeof(Color));
|
||||
DrawPlane();
|
||||
}
|
||||
}
|
||||
|
||||
//принимаем дополнительный цвет
|
||||
private void labelAddColor_DragDrop(object sender, DragEventArgs e)
|
||||
private void LabelAddColor_DragDrop(object sender, DragEventArgs e)
|
||||
{
|
||||
switch (e.Data.GetData(DataFormats.Text).ToString())
|
||||
//проверка на пустоту объекта и правильную сущноть
|
||||
if (_plane != null && _plane.Airbus is EntitySuperAirbus entityAirbus)
|
||||
{
|
||||
case "panelRed":
|
||||
labelAddColor.BackColor = Color.Red;
|
||||
break;
|
||||
case "panelBlack":
|
||||
labelAddColor.BackColor = Color.Black;
|
||||
break;
|
||||
case "panelGreen":
|
||||
labelAddColor.BackColor = Color.Green;
|
||||
break;
|
||||
case "panelYellow":
|
||||
labelAddColor.BackColor = Color.Yellow;
|
||||
break;
|
||||
case "panelBlue":
|
||||
labelAddColor.BackColor = Color.Blue;
|
||||
break;
|
||||
case "panelPurple":
|
||||
labelAddColor.BackColor = Color.Purple;
|
||||
break;
|
||||
case "panelGray":
|
||||
labelAddColor.BackColor = Color.DarkGray;
|
||||
break;
|
||||
case "panelWhite":
|
||||
labelAddColor.BackColor = Color.White;
|
||||
break;
|
||||
entityAirbus.AddColor = (Color)e.Data.GetData(typeof(Color));
|
||||
|
||||
DrawPlane();
|
||||
}
|
||||
}
|
||||
|
||||
@ -189,12 +136,5 @@ namespace Airbus
|
||||
EventAddPlane?.Invoke(_plane);
|
||||
Close();
|
||||
}
|
||||
|
||||
//закрытие формы конфигурации
|
||||
private void ButtonCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -22,5 +22,8 @@ namespace Airbus
|
||||
|
||||
//получение текущей позиции объекта
|
||||
(float Left, float Right, float Top, float Bottom) GetCurrentPosition();
|
||||
|
||||
//получение информации по объекту
|
||||
string GetInfo();
|
||||
}
|
||||
}
|
||||
|
@ -82,6 +82,27 @@ namespace Airbus
|
||||
|
||||
return new(_pictureWidth, _pictureHeight);
|
||||
}
|
||||
//получение данных в виде строки
|
||||
public string GetData(char separatorType, char separatorData)
|
||||
{
|
||||
string data = $"{_map.GetType().Name}{separatorType}";
|
||||
|
||||
foreach (var plane in _setPlanes.GetAirbus())
|
||||
{
|
||||
data += $"{plane.GetInfo()}{separatorData}";
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
//Загрузка списка из массива строк
|
||||
public void LoadData(string[] records)
|
||||
{
|
||||
foreach (var rec in records)
|
||||
{
|
||||
_setPlanes.Insert(DrawningObjectPlane.Create(rec) as T);
|
||||
}
|
||||
}
|
||||
|
||||
//"взламываем" набор, чтобы все элементы оказались в начале
|
||||
private void Shaking()
|
||||
|
@ -10,11 +10,17 @@ namespace Airbus
|
||||
internal class MapsCollection
|
||||
{
|
||||
//словарь (хранилище) с картами
|
||||
readonly Dictionary<string, MapWithSetPlanesGeneric<DrawningObjectPlane, AbstractMap>> _mapStorage;
|
||||
readonly Dictionary<string, MapWithSetPlanesGeneric<IDrawningObject, AbstractMap>> _mapStorage;
|
||||
|
||||
//возвращение списка названий карт
|
||||
public List<string> Keys => _mapStorage.Keys.ToList();
|
||||
|
||||
//разделитель для записи информации по элементу словаря в файл
|
||||
private readonly char separatorDict = '|';
|
||||
|
||||
//разделитель для записи коллекции данных в файл
|
||||
private readonly char separatorData = ';';
|
||||
|
||||
//ширина окна отрисовки
|
||||
private readonly int _pictureWidth;
|
||||
|
||||
@ -24,7 +30,7 @@ namespace Airbus
|
||||
//конструктор
|
||||
public MapsCollection(int pictureWidth, int pictureHeight)
|
||||
{
|
||||
_mapStorage = new Dictionary<string, MapWithSetPlanesGeneric<DrawningObjectPlane, AbstractMap>>();
|
||||
_mapStorage = new Dictionary<string, MapWithSetPlanesGeneric<IDrawningObject, AbstractMap>>();
|
||||
_pictureWidth = pictureWidth;
|
||||
_pictureHeight = pictureHeight;
|
||||
}
|
||||
@ -32,23 +38,105 @@ namespace Airbus
|
||||
//добавление карты
|
||||
public void AddMap(string name, AbstractMap map)
|
||||
{
|
||||
var NewElem = new MapWithSetPlanesGeneric<DrawningObjectPlane, AbstractMap>(
|
||||
_pictureWidth, _pictureHeight, map);
|
||||
_mapStorage.Add(name, NewElem);
|
||||
if (!_mapStorage.ContainsKey(name))
|
||||
{
|
||||
_mapStorage.Add(name, new MapWithSetPlanesGeneric<IDrawningObject, AbstractMap>(_pictureWidth, _pictureHeight, map));
|
||||
}
|
||||
}
|
||||
|
||||
//удаление карты
|
||||
public void DelMap(string name)
|
||||
{
|
||||
_mapStorage.Remove(name);
|
||||
if (_mapStorage.ContainsKey(name))
|
||||
{
|
||||
_mapStorage.Remove(name);
|
||||
}
|
||||
}
|
||||
|
||||
//Доступ к аэродрому
|
||||
public MapWithSetPlanesGeneric<DrawningObjectPlane, AbstractMap> this[string ind]
|
||||
// сохранение информации по автомобилям в хранилище в файл
|
||||
public bool SaveData(string filename)
|
||||
{
|
||||
if (File.Exists(filename))
|
||||
{
|
||||
File.Delete(filename);
|
||||
}
|
||||
|
||||
using (StreamWriter sw = new(filename))
|
||||
{
|
||||
sw.Write($"MapsCollection{Environment.NewLine}");
|
||||
foreach (var storage in _mapStorage)
|
||||
{
|
||||
|
||||
sw.Write($"{storage.Key}{separatorDict}{storage.Value.GetData(separatorDict, separatorData)}" +
|
||||
$"{Environment.NewLine}");
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// загрузка информации по автомобилям на парковках из файла
|
||||
public bool LoadData(string filename)
|
||||
{
|
||||
if (!File.Exists(filename))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
using (StreamReader sr = new(filename))
|
||||
{
|
||||
string str = "";
|
||||
|
||||
//если не содержит такую запись или пустой файл
|
||||
if ((str = sr.ReadLine()) == null || !str.Contains("MapsCollection"))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
_mapStorage.Clear();
|
||||
|
||||
while ((str = sr.ReadLine()) != null)
|
||||
{
|
||||
var element = str.Split(separatorDict);
|
||||
AbstractMap map = null;
|
||||
|
||||
switch (element[1])
|
||||
{
|
||||
case "SimpleMap":
|
||||
map = new SimpleMap();
|
||||
break;
|
||||
case "DesertMap":
|
||||
map = new DesertMap();
|
||||
break;
|
||||
case "SpaceMap":
|
||||
map = new SpaceMap();
|
||||
break;
|
||||
}
|
||||
|
||||
_mapStorage.Add(element[0], new MapWithSetPlanesGeneric<IDrawningObject, AbstractMap>(_pictureWidth, _pictureHeight, map));
|
||||
_mapStorage[element[0]].LoadData(element[2].Split(separatorData, StringSplitOptions.RemoveEmptyEntries));
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//доступ к аэродрому
|
||||
public MapWithSetPlanesGeneric<IDrawningObject, AbstractMap> this[string ind]
|
||||
{
|
||||
get
|
||||
{
|
||||
return _mapStorage[ind];
|
||||
if (ind != string.Empty)
|
||||
{
|
||||
MapWithSetPlanesGeneric<IDrawningObject, AbstractMap> value;
|
||||
|
||||
if (_mapStorage.TryGetValue(ind, out value))
|
||||
{
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +0,0 @@
|
||||
namespace Airbus
|
||||
{
|
||||
//делегат для передачи объекта-самолёта
|
||||
public delegate void PlaneDelegate(DrawningAirbus plane);
|
||||
}
|
Loading…
Reference in New Issue
Block a user