Esempio n. 1
0
 /// <summary>
 /// Removes the control from canvas completely.
 /// </summary>
 public void DeleteFromCanvas()
 {
     if (GeneralizationJunction != null)
     {
         GeneralizationJunction.DeleteFromCanvas();
     }
     this.CloseBindings();
 }
Esempio n. 2
0
        /// <summary>
        /// Initializes the control properties from view helper (especially points are restored).
        /// </summary>
        private void InitializeFromViewHelper()
        {
            IConnectable sourceElement = (IConnectable)XCaseCanvas.ElementRepresentations[Controller.Generalization.Specific];
            IConnectable targetElement = (IConnectable)XCaseCanvas.ElementRepresentations[Controller.Generalization.General];

            if (ViewHelper.Points.Count == 0)
            {
                ViewHelper.Points.AppendRange(JunctionGeometryHelper.ComputeOptimalConnection(sourceElement, targetElement));
            }

            if (GeneralizationJunction != null)
            {
                GeneralizationJunction.DeleteFromCanvas();
            }
            GeneralizationJunction = new XCaseJunction(XCaseCanvas, this, ViewHelper.Points);
            if (sourceElement is PSM_Class || targetElement is PSM_Class)
            {
                GeneralizationJunction.AutoPosModeOnly = true;
            }
            GeneralizationJunction.NewConnection(sourceElement, null, targetElement, null, ViewHelper.Points);
            XCaseCanvas.Children.Add(GeneralizationJunction);
            GeneralizationJunction.StartCapStyle = EJunctionCapStyle.Straight;
            GeneralizationJunction.EndCapStyle   = EJunctionCapStyle.Triangle;
        }
Esempio n. 3
0
        /// <summary>
        /// Returns context menu items.
        /// </summary>
        /// <returns></returns>
        internal IEnumerable <ContextMenuItem> GeneralizationMenuItems()
        {
            ContextMenuItem addCommentary = new ContextMenuItem("Add commentary");

            addCommentary.Click += delegate
            {
                NewModelCommentToDiagramCommand command = (NewModelCommentToDiagramCommand)CommandFactoryBase <NewModelCommentaryToDiagramCommandFactory> .Factory().Create(Controller.DiagramController);

                command.AnnotatedElement = Generalization;

                Point p = JunctionGeometryHelper.FindClosestPoint(GeneralizationJunction, GeneralizationJunction.GetBounds().GetCenter());
                command.X = p.X + 20;
                command.Y = p.Y + 20;

                command.Set(Controller.DiagramController.ModelController, null);
                command.Execute();
            };
            return(new ContextMenuItem[] { addCommentary });
        }