void BoxComponentMoved(BaseBoxComponent obj) { foreach (BaseComponent drawableCmp in model.Items) { drawableCmp.Accept(new BoxMoveVisitor(obj, true)); } }
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; } } }
public void VisitComponent(BaseBoxComponent cmp) { cmp.BoxComponentMoving += new Action <BaseBoxComponent>(BoxComponentMoving); cmp.BoxComponentMoved += new Action <BaseBoxComponent>(BoxComponentMoved); }
public BoxMoveVisitor(BaseBoxComponent box, bool recompute) { this.box = box; this.recompute = recompute; }