private void View_OnCreateFigureButton_Click(object sender, EventArgs e) { if (_pointsBuffer.Count == 0) { _view.ShowError(new Exception("Список точек пуст!")); return; } var factory = AppDependencies.CreataFactory(); var points = new Point[_pointsBuffer.Count]; for (int i = 0; i < points.Length; i++) { points[i] = (Point)_pointsBuffer[i]; } try { var figure = factory.Create(points); var color = _view.GetSelectedColor(); var figureDrawer = new FigureDrawer( new FiguresDataAdapter(figure), color, System.Drawing.Color.Black, System.Drawing.Color.Black ); _figuresBuffer.Add(figureDrawer); _outFigures.Add(figureDrawer); } catch (Exception err) { _view.ShowError(err); } }
private void View_WriteToFileButton_Click(object sender, EventArgs e) { if (_figuresBuffer.Count == 0) { _view.ShowError(new Exception("Список фигур пуст.")); return; } using (OpenFileDialog dialog = new OpenFileDialog()) { dialog.Filter = "Text files(*.txt)|*.txt"; if (dialog.ShowDialog() == DialogResult.OK) { var serializer = AppDependencies.CreateSerializer(); var list = new List <FigureDrawer>(); foreach (var figure in _figuresBuffer) { list.Add(figure as FigureDrawer); } serializer.Serialize(list, dialog.FileName); } } }
public IEnumerable <FigureDrawer> Deserialize(string fileName) { var stream = new StreamReader(fileName); var xml = new XmlSerializer(typeof(List <XmlFigureData>)); var factory = AppDependencies.CreataFactory(); var figures = new List <FigureDrawer>(); var data = xml.Deserialize(stream); foreach (var item in data as List <XmlFigureData> ) { var figure = factory.Create(item.Points); var adapter = new FiguresDataAdapter(figure); var vertexColor = Color.FromName(ValidateColorName(item.VertexColorName)); var centerColor = Color.FromName(ValidateColorName(item.CenterColorName)); var penColor = Color.FromName(ValidateColorName(item.PenColorName)); var drawer = new FigureDrawer(adapter, penColor, vertexColor, centerColor); figures.Add(drawer); } return(figures); }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var types = new List <Type> { typeof(Rectangle), typeof(Triangle), typeof(Segment), typeof(Polygon) }; var app = new AppDependencyContainer(); app.RegisterStartForm <IFiguresDrawerView, Index, FiguresDrawerPresenter>(); app.RegisterFiguresTypes(types); app.RegisterFigureSerialuzer <XmlFigureSerializer>(); app.RegisterFigureFactory(new FigurePointsFactory()); app.RegisterForm <IFiguresCreatorView, FiguresCreatorForm, FiguresCreatorPresenter>(); app.RegisterForm <IFiguresSettingsView, FiguresSettingsForm, FiguresSettingsPresenter>(); app.RegisterForm <IFigureInfoPresenterView, FigureInfoPresenterForm, FigureInfoPresenter>(); AppDependencies.Initialize(app); var form = AppDependencies.CreateStartForm(); Application.Run(form.View); }
private void View_SettingsButton_Click(object sender, EventArgs e) { try { var form = AppDependencies.CreateForm <IFiguresSettingsView>(this); SendData?.Invoke(this, new FigureDrawnEventArgs(_model, _planeSettings, null)); SendData = null; form.View.ShowDialog(); _view.InvokePaintEvent(); } catch (Exception err) { _view.ShowError(err); } }
private void View_ShowAboutFigure_Invoked(object sender, int index) { if (index >= 0) { try { var form = AppDependencies.CreateForm <IFigureInfoPresenterView>(this); SendData?.Invoke(this, new FigureDrawnEventArgs(null, null, _model[index] as FigureDrawer)); SendData = null; form.View.Show(); _view.InvokePaintEvent(); } catch (Exception err) { _view.ShowError(err); } } }
private void View_OnReadFromFileButton_Click(object sender, EventArgs e) { using (OpenFileDialog dialog = new OpenFileDialog()) { dialog.Filter = "Text files(*.txt)|*.txt"; if (dialog.ShowDialog() == DialogResult.OK) { var serializer = AppDependencies.CreateSerializer(); try { var figures = serializer.Deserialize(dialog.FileName); _figuresBuffer.AddRange(figures.ToArray()); _outFigures.AddRange(figures.ToArray()); } catch (Exception err) { _view.ShowError(err); } } } }
public App(AppDependencies dependencies, ILinkPaths linkPaths) : base(dependencies, "App.SxcApp") { _linkPaths = linkPaths; }