示例#1
0
 void BoxComponentMoved(BaseBoxComponent obj)
 {
     foreach (BaseComponent drawableCmp in model.Items)
     {
         drawableCmp.Accept(new BoxMoveVisitor(obj, true));
     }
 }
示例#2
0
 void LinePointMoved(BaseBoxComponent cmp)
 {
     foreach (FlowChartPoint edgePoint in cmp.EdgePoints)
     {
         float d = GraphicsUtil.Distance(edgePoint, linePoint);
         cmp.IsSelected = (d < cmp.View.ViewFactory.EdgeBoxWidth * 5);
         if (d < cmp.View.ViewFactory.EdgeBoxWidth * 2)
         {
             linePoint.X = edgePoint.X;
             linePoint.Y = edgePoint.Y;
             if (lineCmp.StartPoint == linePoint)
             {
                 lineCmp.ConnectionStart           = cmp;
                 lineCmp.ConnectionStartPointIndex = cmp.EdgePoints.IndexOf(edgePoint);
             }
             else if (lineCmp.EndPoint == linePoint)
             {
                 lineCmp.ConnectionEnd           = cmp;
                 lineCmp.ConnectionEndPointIndex = cmp.EdgePoints.IndexOf(edgePoint);
             }
             return;
         }
     }
 }
示例#3
0
 public void VisitComponent(BaseBoxComponent cmp)
 {
     cmp.BoxComponentMoving += new Action <BaseBoxComponent>(BoxComponentMoving);
     cmp.BoxComponentMoved  += new Action <BaseBoxComponent>(BoxComponentMoved);
 }
示例#4
0
 public BoxMoveVisitor(BaseBoxComponent box, bool recompute)
 {
     this.box       = box;
     this.recompute = recompute;
 }