Esempio n. 1
0
        private void CreateLine(DataConnection data) //Два соединение элемент-линия-линия-элемент и элемент-элемент
        {
            var point0          = data.PointPin0;
            var point1          = data.PointPin1;
            var CheckCreateLine = (point0.IdParent != point1.IdParent) & (point0.Type != point1.Type);

            if (CheckCreateLine)
            {
                var pin0 = FindElementId(point0.IdParent).GetPinIndex(point0.Id);
                var pin1 = FindElementId(point1.IdParent).GetPinIndex(point1.Id);
                //BaseElement.Connect(pin0, pin1);
                //BaseElement.Connect(pin1, pin0);
                var line = new ViewModelComponentLine(point0, point1, _surface, data.ID);
                _elements.Add(line);
                line.OnElementDelete += Delete;
                if (pin0.Type == ETypePin.TypeOut)
                {
                    pin1 = line.GetElementModel().GetPinId(0);
                    BaseElement.Connect(pin0, pin1);
                    pin0 = FindElementId(point1.IdParent).GetPinIndex(point1.Id);
                    pin1 = line.GetElementModel().GetPinId(1);
                }
                else
                {
                    pin1 = line.GetElementModel().GetPinId(1);
                    BaseElement.Connect(pin0, pin1);
                    pin0 = FindElementId(point1.IdParent).GetPinIndex(point1.Id);
                    pin1 = line.GetElementModel().GetPinId(0);
                }

                BaseElement.Connect(pin0, pin1);
                //BaseElement.Connect(pin1, pin0);
            }
        }
Esempio n. 2
0
        CreateLine(PointPin point0, PointPin point1)     //Два соединение элемент-линия-линия-элемент и элемент-элемент
        {
            var CheckCreateLine = (point0.IdParent != point1.IdParent) & (point0.Type != point1.Type);

            if (CheckCreateLine)
            {
                var pin0 = FindElementId(point0.IdParent).GetPinIndex(point0.Id);
                var pin1 = FindElementId(point1.IdParent).GetPinIndex(point1.Id);
                //BaseElement.Connect(pin0, pin1);
                //BaseElement.Connect(pin1, pin0);
                var line = new ViewModelComponentLine(point0, point1, _surface);
                _elements.Add(line);
                line.OnElementDelete += Delete;
                if (pin0.Type == ETypePin.TypeOut)
                {
                    //FindElementId(point1.IdParent).GroupID = FindElementId(point0.IdParent).GroupID;
                    pin1 = line.GetElementModel().GetPinId(0);
                    BaseElement.Connect(pin0, pin1);
                    pin0 = FindElementId(point1.IdParent).GetPinIndex(point1.Id);
                    pin1 = line.GetElementModel().GetPinId(1);
                }
                else
                {
                    //FindElementId(point0.IdParent).GroupID = FindElementId(point1.IdParent).GroupID;
                    pin1 = line.GetElementModel().GetPinId(1);
                    BaseElement.Connect(pin0, pin1);
                    pin0 = FindElementId(point1.IdParent).GetPinIndex(point1.Id);
                    pin1 = line.GetElementModel().GetPinId(0);
                }

                BaseElement.Connect(pin0, pin1);
                //BaseElement.Connect(pin1, pin0);
            }
        }
Esempio n. 3
0
 private void ClearAllCommand()
 {
     _elements.Clear();
     _surface.Children.Clear();
     DrawBufLine = new ViewModelComponentLine(new PointPin(0, 0, EDirection.East, ETypePin.TypeIn, 10, 10),
                                              new PointPin(0, 0, EDirection.East, ETypePin.TypeIn, 10, 10), _surface, -1000);
     DrawBufLine.IsCheck = true;
 }
Esempio n. 4
0
 public MainViewModel(ref Canvas surface)
 {
     _surface          = surface;
     surface.Drop     += Surface_Drop;
     surface.DragOver += Surface_DragOver;
     DrawBufLine       = new ViewModelComponentLine(new PointPin(-100, -100, EDirection.East, ETypePin.TypeIn, 10, 10),
                                                    new PointPin(-100, -100, EDirection.East, ETypePin.TypeIn, 10, 10), _surface, -1000);
     DrawBufLine.IsCheck = true;
 }
Esempio n. 5
0
        private void MoveLine(ViewModelComponentLine bufLine, Point truePosition, BaseComponentUI element)
        {
            var bufPointPin0 = bufLine.FirstPin;
            var bufPointPin1 = bufLine.LastPin;

            if (element.ID == bufLine.FirstPin.IdParent)
            {
                bufPointPin0.X = bufLine.FirstPin.X - truePosition.X;
                bufPointPin0.Y = bufLine.FirstPin.Y - truePosition.Y;
                bufPointPin1.X = bufLine.LastPin.X;
                bufPointPin1.Y = bufLine.LastPin.Y;
            }
            else
            {
                bufPointPin0.X = bufLine.FirstPin.X;
                bufPointPin0.Y = bufLine.FirstPin.Y;
                bufPointPin1.X = bufLine.LastPin.X - truePosition.X;
                bufPointPin1.Y = bufLine.LastPin.Y - truePosition.Y;
            }

            bufLine.ReBuild(bufPointPin0, bufPointPin1);
        }