コード例 #1
0
        /// <summary>
        /// Creates new instance of <see cref="PSM_ComponentConnector" />.
        /// </summary>
        public PSM_ComponentConnector(XCaseCanvas canvas, IConnectable parentControl, IConnectable childControl, ComponentConnectorViewHelper viewHelper)
        {
            ParentControl = parentControl;
            ChildControl  = childControl;
            XCaseCanvas   = canvas;
            ViewHelper    = viewHelper;
            if (viewHelper.Points.Count < 2)
            {
                viewHelper.Points.Clear();
                viewHelper.Points.AppendRange(JunctionGeometryHelper.ComputeOptimalConnection(parentControl, childControl));
                viewHelper.Points.PointsInvalid = true;
            }

            Junction = new XCaseJunction(canvas, viewHelper.Points);
            Junction.AutoPosModeOnly = true;
            XCaseCanvas.Children.Add(Junction);
            Junction.NewConnection(parentControl, null, childControl, null, viewHelper.Points);
            if (childControl is System.Windows.Controls.Control)
            {
                if (childControl is PSM_ContentContainer)
                {
                    Junction.ContextMenu = ((PSM_ContentContainer)childControl).ContextMenu;
                }
                Junction.ContextMenu = ((System.Windows.Controls.Control)childControl).ContextMenu;
            }
        }
コード例 #2
0
ファイル: PSM_ComponentsManager.cs プロジェクト: mff-uk/xcase
        private void AddComponentRepresentation(PSMSubordinateComponent component)
        {
            IModelElementRepresentant componentRepresentant = null;
            IConnectable           connectedChild           = null;
            PSM_ComponentConnector connector = null;

            if (component is PSMAssociation)
            {
                connectedChild = (IConnectable)((PSMAssociation)component).Child;
                ComponentConnectorViewHelper viewHelper = ((PSMElementViewHelper)((PSMElementViewBase)connectedChild).ViewHelper).ConnectorViewHelper;
                connector = new PSM_ComponentConnector(XCaseCanavs, SuperordinateRepresentation, connectedChild, viewHelper);
            }
            else
            {
                componentRepresentant = XCaseCanavs.ElementRepresentations[component];
                connectedChild        = (IConnectable)componentRepresentant;
                ComponentConnectorViewHelper viewHelper = ((PSMElementViewHelper)((PSMElementViewBase)connectedChild).ViewHelper).ConnectorViewHelper;
                connector = new PSM_ComponentConnector(XCaseCanavs, SuperordinateRepresentation, connectedChild, viewHelper);
            }

            ComponentData data = new ComponentData()
            {
                ComponentRepresentant = componentRepresentant,
                ConnectedChild        = connectedChild,
                Connector             = connector
            };

            ComponentsData[component] = data;
        }