private Label CreateOrRemoveLabel(ref Label currentLabel, LabelViewHelper viewHelper, string name, string cardinality, Action selectedChanged, Action <DragDeltaEventArgs> positionChanged, ContextMenu contextMenu, ConnectorPoint snapPoint = null, Connector snapConnector = null, EPlacementCenter placementCenter = EPlacementCenter.TopLeftCorner) { if (string.IsNullOrEmpty(name) && (cardinality == "1" || string.IsNullOrEmpty(cardinality))) { if (currentLabel != null) { if (selectedChanged != null) { currentLabel.SelectedChanged -= selectedChanged; } if (positionChanged != null) { currentLabel.PositionChanged -= positionChanged; } if (snapPoint != null) { currentLabel.UnSnap(); } if (snapConnector != null) { currentLabel.UnSnap(); } CreatedControls.Remove(currentLabel); DiagramView.ExolutioCanvas.RemoveNode(currentLabel); } return(null); } if (currentLabel == null) { Point tmpPosition = viewHelper.Position; currentLabel = new Label(); CreatedControls.Add(currentLabel); DiagramView.ExolutioCanvas.AddNode(currentLabel); currentLabel.PlacementCenter = placementCenter; if (snapPoint != null) { currentLabel.SnapTo(snapPoint, true); } if (snapConnector != null) { snapConnector.SnapNodeToConnector(currentLabel); } currentLabel.X = viewHelper.X; currentLabel.Y = viewHelper.Y; if (selectedChanged != null) { currentLabel.SelectedChanged += selectedChanged; } if (positionChanged != null) { currentLabel.PositionChanged += positionChanged; } currentLabel.ContextMenu = contextMenu; //UpdateView(); //viewHelper.SetPositionSilent(tmpPosition.X, tmpPosition.Y); //currentLabel.X = } return(currentLabel); }
public override void PutInDiagram(DiagramView diagramView, ViewHelper viewHelper) { base.PutInDiagram(diagramView, viewHelper); Connector = new Connector(); ////NameLabel = new Label(); ////SourceCardinalityLabel = new Label(); ////SourceRoleLabel = new Label(); ////TargetCardinalityLabel = new Label(); ////TargetRoleLabel = new Label(); CreatedControls.Add(Connector); ////CreatedControls.Add(NameLabel); ////CreatedControls.Add(SourceCardinalityLabel); ////CreatedControls.Add(SourceRoleLabel); ////CreatedControls.Add(TargetCardinalityLabel); ////CreatedControls.Add(TargetRoleLabel); DiagramView.ExolutioCanvas.AddConnector(Connector); Connector.Connect(SourceClassView.MainNode, TargetClassView.MainNode); if (ViewHelper.Points.Count == 0) { ViewHelper.Points.AppendRange(Connector.Points.Select(p => (Point)p)); } else if (ViewHelper.Points.Count >= Connector.Points.Count) { Connector.SetPoints(ViewHelper.Points); } ////DiagramView.ExolutioCanvas.AddNode(NameLabel); ////DiagramView.ExolutioCanvas.AddNode(SourceCardinalityLabel); ////DiagramView.ExolutioCanvas.AddNode(SourceRoleLabel); ////DiagramView.ExolutioCanvas.AddNode(TargetCardinalityLabel); ////DiagramView.ExolutioCanvas.AddNode(TargetRoleLabel); ////NameLabel.PlacementCenter = EPlacementCenter.Center; ////Connector.SnapNodeToConnector(NameLabel); ////SourceCardinalityLabel.SnapTo(Connector.StartPoint, true); ////SourceRoleLabel.SnapTo(Connector.StartPoint, true); ////TargetCardinalityLabel.SnapTo(Connector.EndPoint, true); ////TargetRoleLabel.SnapTo(Connector.EndPoint, true); CreateMenus(); BindModelView(); ////NameLabel.SelectedChanged += NameLabel_SelectedChanged; ////NameLabel.PositionChanged += NameLabel_PositionChanged; ////SourceCardinalityLabel.PositionChanged += SourceCardinalityLabel_PositionChanged; ////SourceRoleLabel.PositionChanged += SourceRoleLabel_PositionChanged; ////TargetCardinalityLabel.PositionChanged += TargetCardinalityLabel_PositionChanged; ////SourceRoleLabel.PositionChanged += TargetRoleLabel_PositionChanged; Connector.SelectedChanged += Connector_SelectedChanged; Connector.ConnectorPointMoved += Connector_ConnectorPointMoved; Connector.PointsCountChanged += Connector_PointsCountChanged; //Connector.MouseDown += Connector_MouseDown; #if SILVERLIGHT #else //Connector.MouseUp += Connector_MouseUp; #endif }
public override void PutInDiagram(DiagramView diagramView, ViewHelper viewHelper) { base.PutInDiagram(diagramView, viewHelper); MainNode = new Node(); MainNode.PositionChanged += MainNode_PositionChanged; MainNode.SelectedChanged += MainNode_SelectedChanged; CreatedControls.Add(MainNode); CreateInnerControls(diagramView.ExolutioCanvas); diagramView.ExolutioCanvas.AddNode(MainNode); BindModelView(); }
public override void PutInDiagram(DiagramView diagramView, ViewHelper viewHelper) { base.PutInDiagram(diagramView, viewHelper); Connector = new Connector(); Connector.EndCapStyle = EConnectorCapStyle.Triangle; CreatedControls.Add(Connector); DiagramView.ExolutioCanvas.AddConnector(Connector); Connector.Connect(SpecificClassView.MainNode, GemeralClassView.MainNode); if (ViewHelper.Points.Count == 0) { ViewHelper.Points.AppendRange(Connector.Points.Select(p => (Point)p)); } else if (ViewHelper.Points.Count >= Connector.Points.Count) { Connector.SetPoints(ViewHelper.Points); } CreateMenus(); #if SILVERLIGHT //ContextMenuService.SetContextMenu(Connector, associationMenu); //ContextMenuService.SetContextMenu(NameLabel, associationMenu); //ContextMenuService.SetContextMenu(Connector.StartPoint, startPointMenu); //ContextMenuService.SetContextMenu(Connector.EndPoint, endPointMenu); #endif BindModelView(); Connector.SelectedChanged += Connector_SelectedChanged; Connector.ConnectorPointMoved += Connector_ConnectorPointMoved; Connector.PointsCountChanged += Connector_PointsCountChanged; //Connector.MouseDown += Connector_MouseDown; #if SILVERLIGHT #else //Connector.MouseUp += Connector_MouseUp; #endif }
public override void PutInDiagram(DiagramView diagramView, ViewHelper viewHelper) { base.PutInDiagram(diagramView, viewHelper); if (parentChildUpdateBound) { PSMAssociation.PropertyChanged -= PSMAssociation_PropertyChanged_ForParentChildUpdate; parentChildUpdateBound = false; } #if SILVERLIGHT Connector = new Connector(); #else Connector = new Connector() { EndCapStyle = EConnectorCapStyle.Arrow }; #endif NameLabel = new Label(); CardinalityLabel = new Label(); CreatedControls.Add(Connector); CreatedControls.Add(NameLabel); CreatedControls.Add(CardinalityLabel); DiagramView.ExolutioCanvas.AddConnector(Connector); Connector.Connect(SourceClassView.MainNode, TargetClassView.MainNode); DiagramView.ExolutioCanvas.AddNode(NameLabel); DiagramView.ExolutioCanvas.AddNode(CardinalityLabel); NameLabel.PlacementCenter = EPlacementCenter.Center; Connector.SnapNodeToConnector(NameLabel); CardinalityLabel.SnapTo(Connector.EndPoint, true); BindModelView(); NameLabel.SelectedChanged += NameLabel_SelectedChanged; NameLabel.PositionChanged += NameLabel_PositionChanged; CardinalityLabel.PositionChanged += CardinalityLabel_PositionChanged; Connector.SelectedChanged += Connector_SelectedChanged; Connector.MouseEnter += Connector_MouseEnter; Connector.MouseLeave += Connector_MouseLeave; }