예제 #1
0
        protected virtual void BuildUI()
        {
            AddToClassList(k_UssClassName);
            this.AddStylesheet("Port.uss");

            if (PortModel is IHasTitle)
            {
                List <string> additionalStylesheets = new List <string>();
                additionalStylesheets.Add("PortContent/Connector");
                GraphElementsHelper.LoadTemplateAndStylesheet(this, "PortContent/LabeledConnector", "ge-port-content", additionalStylesheets);
                ConnectorLabel  = this.Q <Label>("label");
                ConnectorBox    = this.Q(name: "connector");
                ConnectorBoxCap = this.Q(name: "cap");
            }
            else
            {
                GraphElementsHelper.LoadTemplateAndStylesheet(this, "PortContent/Connector", "ge-port-content");
                ConnectorBox    = this.Q(name: "connector");
                ConnectorBoxCap = this.Q(name: "cap");
            }

            if (ConnectorBox != null)
            {
                m_EdgeConnector = new EdgeConnector(Store, GraphView, new EdgeConnectorListener());
                ConnectorBox.AddManipulator(m_EdgeConnector);

                ConnectorBox.RegisterCallback <MouseEnterEvent>(OnMouseEnter);
                ConnectorBox.RegisterCallback <MouseLeaveEvent>(OnMouseLeave);
            }
        }
예제 #2
0
        public Vector3 GetGlobalCenter()
        {
            Vector2 overriddenPosition;

            if (GraphView != null && GraphView.GetPortCenterOverride(this, out overriddenPosition))
            {
                return(overriddenPosition);
            }

            return(ConnectorBox.LocalToWorld(ConnectorBox.GetRect().center));
        }