Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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
        }
Esempio n. 5
0
        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;
        }