예제 #1
0
 void BoxMoved(BaseLineComponent lineCmp)
 {
     if (lineCmp.ConnectionStart == box || lineCmp.ConnectionEnd == box)
     {
         lineCmp.OnParentMoved(box, recompute);
     }
 }
예제 #2
0
        void LinePointMovedTo(BaseLineComponent lineCmp, FlowChartPoint point)
        {
            if (lineCmp.StartPoint == point)
            {
                lineCmp.ConnectionStart = null;
            }
            else if (lineCmp.EndPoint == point)
            {
                lineCmp.ConnectionEnd = null;
            }

            foreach (BaseComponent drawableCmp in model.Items)
            {
                drawableCmp.Accept(new LinePointMovedVisitor(lineCmp, point));
            }
        }
예제 #3
0
        private void HookToParentBox(BaseLineComponent c)
        {
            FlowChartReference fRef1 = component.ConnectionIds.Find(y => y.Name == "Start");

            if (fRef1 != null)
            {
                c.ConnectionStart = (BaseBoxComponent)this.model.Items.Find(y => y.ID == fRef1.ID);
            }
            FlowChartReference fRef2 = component.ConnectionIds.Find(y => y.Name == "End");

            if (fRef2 != null)
            {
                c.ConnectionEnd = (BaseBoxComponent)this.model.Items.Find(y => y.ID == fRef2.ID);
            }

            c.ConnectionStartPointIndex = fRef1.Key1;
            c.ConnectionEndPointIndex   = fRef2.Key1;
        }
예제 #4
0
 public LinePointMovedVisitor(BaseLineComponent lineCmp, FlowChartPoint linePoint)
 {
     this.lineCmp   = lineCmp;
     this.linePoint = linePoint;
 }
예제 #5
0
 public void VisitComponent(BaseLineComponent cmp)
 {
     cmp.LinePointMovedTo += new Action <BaseLineComponent, FlowChartPoint>(LinePointMovedTo);
 }