/// <summary> /// Конструктор, который загружает данные фигуры в форму. /// </summary> /// <param name="figureToEdit">Figure to get data from.</param> public FigureForm(IGeometricFigure figureToEdit) { InitializeComponent(); Text = "Edit figure"; figureEditControl1.Figure = figureToEdit; DialogResult = DialogResult.Cancel; }
/// <summary> /// Вызывается при щелчке ОК, устанавливает _figure на построенную фигуру и DialogResult на OK. /// </summary> /// <param name="sender">Event sender, OKButton.</param> /// <param name="e">Event arguments.</param> private void OKButtonClick(object sender, EventArgs e) { try { _figure = figureEditControl1.Figure; DialogResult = DialogResult.OK; return; } catch (ArgumentException ex) { MessageBox.Show(String.Format("Извините, но не удалось создать фигуру, пожалуйста, проверьте ваши данные.\n{0}", ex.Message), "DATA ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Фактический метод, который загружает данные фигуры в элементы управления формы. /// </summary> /// <param name="figure">Для получения данных Figure.</param> private void LoadFigure(IGeometricFigure figure) { if (figure is Circle) { figureComboBox.SelectedIndex = 0; RadiusTextBox.Text = ((Circle)figure).Radius.ToString(); } else if (figure is Rectangle) { figureComboBox.SelectedIndex = 1; WidthTextBox.Text = ((Rectangle)figure).Width.ToString(); HeightTextBox.Text = ((Rectangle)figure).Height.ToString(); } else if (figure is Ellipse) { figureComboBox.SelectedIndex = 2; SmallerRadiusTextBox.Text = ((Ellipse)figure).SmallerRadius.ToString(); LargerRadiusTextBox.Text = ((Ellipse)figure).LargerRadius.ToString(); } }
/// <summary> /// Метод для сериализации предка IGeometricFigure в строку JSON. /// </summary> /// <param name="figure">Figure для сериализации.</param> /// <returns>представление string JSON.</returns> private static string Serialize(IGeometricFigure figure) { return(JsonConvert.SerializeObject(figure, _settings)); }