Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
                }
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
            }
        }
Exemplo n.º 6
0
        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);
                }
            }
        }
Exemplo n.º 7
0
        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);
                    }
                }
            }
        }
Exemplo n.º 8
0
 public App(AppDependencies dependencies, ILinkPaths linkPaths) : base(dependencies, "App.SxcApp")
 {
     _linkPaths = linkPaths;
 }