/// <summary> /// Removes the control from canvas completely. /// </summary> public void DeleteFromCanvas() { if (GeneralizationJunction != null) { GeneralizationJunction.DeleteFromCanvas(); } this.CloseBindings(); }
/// <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; }
/// <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 }); }