Exemplo n.º 1
0
        public void Button_Click_AddVector(object sender, RoutedEventArgs e)
        {
            if (!double.TryParse(this._mainControl.InputVectorX.Text, out double x))
            {
                throw new Exception("Invalid X Value");
            }

            if (!double.TryParse(this._mainControl.InputVectorY.Text, out double y))
            {
                throw new Exception("Invalid Y Value");
            }

            if (double.IsNaN(x) || x == 0)
            {
                throw new Exception("Invalid X Value");
            }

            if (double.IsNaN(y) || y == 0)
            {
                throw new Exception("Invalid Y Value");
            }

            Brush b = this._mainControl.InputVectorColour.Background;

            CanvasVector canvasVector = ((CoordinateSystem)this._coordinateSystemControl).AddVector(x, y, b);

            this.Vectors.Add(new VectorListItem(this, canvasVector));

            this._mainControl.InputVectorX.Text = "";
            this._mainControl.InputVectorY.Text = "";
        }
        public static void LoadSelector(CanvasVector Canvas)
        {
            try
            {
                OpenFileDialog openFD = new OpenFileDialog();
                openFD.Filter = "CSV (*.csv)|*.csv|JSON (*.json)|*.json|XML (*.xml)|*.xml|YML (*.yml)|*.yml";
                DialogResult res = openFD.ShowDialog();

                if (res == DialogResult.OK)
                {
                    // TODO: Load file
                    IFigureIO f = FigureIO_Selector.GetInstance(openFD.FileName.Remove(0, openFD.FileName.LastIndexOf('.') + 1));
                    f.PathToFile = openFD.FileName;
                    Canvas.Controls.AddRange(f.Read().ToArray());
                }
                openFD.Dispose();

                figures = new Dictionary <int, Control>();
                for (int i = 1; i < Canvas.Controls.Count; ++i)
                {
                    figures.Add(i, Canvas.Controls[i]);
                    Canvas.Controls[i].BringToFront();
                }
            }
            catch { }
        }
Exemplo n.º 3
0
        public void CreateTabPage(StatusBarVector statusBar)
        {
            if (tabControl != null && cmd.aLoad.fileName != null)
            {
                tabControl.SelectedTab = tabControl.TabPages["NewPage"];
                tabControl.TabPages.Add(cmd.aLoad.fileName, cmd.aLoad.fileName);
                tabControl.TabPages[cmd.aLoad.fileName].Padding = new Padding(3, 3, 3, 3);
                tabControl.TabPages[cmd.aLoad.fileName].Margin  = new Padding(3, 3, 3, 3);

                CanvasVector canvasVector = new CanvasVector();
                canvasVector.Name        = "canvasVector";
                canvasVector.Dock        = DockStyle.Fill;
                canvasVector.BorderStyle = BorderStyle.FixedSingle;
                canvasVector.BackColor   = Color.White;
                cmd.canvas       = canvasVector;
                canvasVector.cmd = cmd;
                canvasVector.SetCanvasMouseMoveEventHandler(statusBar);

                CanvasVector control = tabControl.SelectedTab.Controls["canvasVector"] as CanvasVector;
                tabControl.TabPages[cmd.aLoad.fileName].Controls.Remove(tabControl.TabPages[cmd.aLoad.fileName].Controls["canvasVector"]);
                tabControl.TabPages[cmd.aLoad.fileName].Controls.Add(control);
                tabControl.SelectedTab.Controls.Add(canvasVector);

                tabControl.SelectedTab = tabControl.TabPages["NewPage"];
            }
        }
        public void CreateTabPage(StatusBarVector statusBar)
        {
            if (tabControlVector != null && cmd.aLoad.fileName != null)
            {
                tabControlVector.tabControl.SelectedItem = tabControlVector.GetTabItem("NewPage");

                string tabName = cmd.aLoad.fileName.Remove(0, cmd.aLoad.fileName.LastIndexOf('\\') + 1);
                tabName = tabName.Remove(tabName.LastIndexOf('.'));

                TabItem newItem = new TabItem()
                {
                    Name        = tabName,
                    Header      = cmd.aLoad.fileName,
                    ContextMenu = tabControlVector.GetTabItem("NewPage").ContextMenu,
                };
                CanvasVector canvasVector = new CanvasVector()
                {
                    Name            = newItem.Name + "_Canvas",
                    Focusable       = true,
                    Margin          = new Thickness(3),
                    BorderThickness = new Thickness(1),
                    BorderBrush     = Brushes.DarkGray
                };
                canvasVector.SetCanvasMouseMoveEventHandler(statusBar);
                newItem.Content = canvasVector.canvas;

                tabControlVector.tabControl.Items.Add(newItem);
                TabControlVector.tabCanvases.Add(newItem.Header.ToString(), canvasVector);
                TabControlVector.index++;
                TabControlVector.nameLast = newItem.Header.ToString();
            }
        }
 public static void PenWidthSelector(CanvasVector Canvas, float value)
 {
     if (Canvas.StackControl != null)
     {
         Canvas.StackControl.PenWidth = value;
         Canvas.StackControl.DrawFigure(Canvas.StackControl.Type);
     }
 }
Exemplo n.º 6
0
 public XCommand(CanvasVector canvas)
 {
     this.canvas = canvas;
     aColor      = new ActionColor(canvas);
     aWidth      = new ActionWidth(canvas);
     aType       = new ActionType(canvas);
     aSave       = new ActionSave(canvas);
     aLoad       = new ActionLoad(canvas);
 }
        public CanvasVector AddVector(double x, double y, Brush b)
        {
            CanvasVector canvasVector = new CanvasVector(new Size(this._canvas.ActualWidth, this._canvas.ActualHeight),
                                                         b, this._data, new Vector(x, y), new Vector(0, 0));

            this.Vectors.Add(canvasVector);
            this.Update();
            return(canvasVector);
        }
Exemplo n.º 8
0
        public static UIElement Render(CanvasVector ownerControl, Thickness rect, XData data, XCommand cmd)
        {
            SimpleFigures result = new SimpleFigures(rect, data);

            result.ContextMenuSetUp(cmd);
            ownerControl.canvas.Children.Add(result);
            figures.Add(result);

            return(result);
        }
        public static void ColorSelector(CanvasVector Canvas)
        {
            ColorDialog dlg = new ColorDialog();

            dlg.ShowDialog();
            if (Canvas.StackControl != null)
            {
                Canvas.StackControl.Color = dlg.Color;
                Canvas.StackControl.DrawFigure(Canvas.StackControl.Type);
            }
            dlg.Dispose();
        }
        public void Canvas_MouseMove(object sender, MouseEventArgs e)
        {
            CanvasVector Canvas = sender as CanvasVector;

            StatusBarItem_X.Content = "X:" + e.GetPosition((IInputElement)e.Source).X.ToString();
            StatusBarItem_Y.Content = "Y:" + e.GetPosition((IInputElement)e.Source).Y.ToString();
            if (Canvas.StackControl != null)
            {
                StatusBarItem_Color.Content     = Canvas.StackControl.data.LineColor.ToString();
                StatusBarItem_PenWidth.Content  = Canvas.StackControl.data.LineWidth.ToString();
                StatusBarItem_ShapeType.Content = Canvas.StackControl.data.Type.ToString();
            }
        }
        public void Canvas_MouseMove(object sender, MouseEventArgs e)
        {
            CanvasVector Canvas = sender as CanvasVector;

            StatusBar_X.Text = "X:" + e.X.ToString();
            StatusBar_Y.Text = "Y:" + e.Y.ToString();
            if (Canvas.StackControl != null)
            {
                StatusBar_Color.Text     = Canvas.StackControl.data.LineColor.ToString();
                StatusBar_PenWidth.Text  = Canvas.StackControl.data.LineWidth.ToString();
                StatusBar_ShapeType.Text = Canvas.StackControl.data.Type.ToString();
            }
        }
        public static void SaveSelector(CanvasVector Canvas)
        {
            try
            {
                List <Control> controls = Canvas.GetImage().Values.ToList();

                SaveFileDialog saveFD = new SaveFileDialog();
                saveFD.Filter = "CSV (*.csv)|*.csv|JSON (*.json)|*.json|XML (*.xml)|*.xml|YML (*.yml)|*.yml";
                DialogResult res = saveFD.ShowDialog();

                if (res == DialogResult.OK)
                {
                    // TODO: save file
                    IFigureIO f = FigureIO_Selector.GetInstance(saveFD.FileName.Remove(0, saveFD.FileName.LastIndexOf('.') + 1));
                    f.PathToFile = saveFD.FileName;
                    f.Write(controls);
                }
                saveFD.Dispose();
            }
            catch { }
        }
        public static void ShapeTypeSelector(CanvasVector Canvas, int selectedIndex)
        {
            ShapeType type = 0;

            switch (selectedIndex)
            {
            case 0:
                type = ShapeType.LINE;
                break;

            case 1:
                type = ShapeType.MULTILINE;
                break;

            case 2:
                type = ShapeType.ELLIPSE;
                break;

            case 3:
                type = ShapeType.RECTANGLE;
                break;

            case 4:
                type = ShapeType.CRECTANGLE;
                break;
            }

            xData.Type = type;

            if (Canvas != null)
            {
                if (Canvas.StackControl != null)
                {
                    Canvas.StackControl.Type = type;
                    Canvas.StackControl.DrawFigure(type);
                }
            }
        }
Exemplo n.º 14
0
 public ActionType(CanvasVector canvas)
 {
     this.canvas = canvas;
 }
Exemplo n.º 15
0
 public ActionColor(CanvasVector canvas)
 {
     this.canvas = canvas;
 }
Exemplo n.º 16
0
 public ActionWidth(CanvasVector canvas)
 {
     this.canvas = canvas;
 }
Exemplo n.º 17
0
 public ActionLoad(CanvasVector canvas)
 {
     this.canvas = canvas;
 }
Exemplo n.º 18
0
 public ActionSave(CanvasVector canvas)
 {
     this.canvas = canvas;
 }
 public void DeleteVector(CanvasVector canvasVector)
 {
     this._canvas.Children.Remove(canvasVector);
     this.Vectors.Remove(canvasVector);
 }
 public void DeleteVector(CanvasVector canvasVector)
 {
     this._coordinateSystemVM.DeleteVector(canvasVector);
 }
Exemplo n.º 21
0
 public void DeleteVector(CanvasVector canvasVector)
 {
     ((CoordinateSystem)this.CoordinateSystemControl).DeleteVector(canvasVector);
 }
Exemplo n.º 22
0
 public void DeleteVector(CanvasVector canvasVector)
 {
     this._vm.DeleteVector(canvasVector);
 }