protected PortView(Direction direction, FieldInfo fieldInfo, PortData portData, BaseEdgeConnectorListener edgeConnectorListener)
            : base(portData.vertical ? Orientation.Vertical : Orientation.Horizontal, direction, Capacity.Multi, portData.displayType ?? fieldInfo.FieldType)
        {
            this.fieldInfo = fieldInfo;
            this.listener  = edgeConnectorListener;
            this.portType  = portData.displayType ?? fieldInfo.FieldType;
            this.portData  = portData;
            this.portName  = fieldName;

            styleSheets.Add(Resources.Load <StyleSheet>(portStyle));

            UpdatePortSize();

            var userPortStyle = Resources.Load <StyleSheet>(userPortStyleFile);

            if (userPortStyle != null)
            {
                styleSheets.Add(userPortStyle);
            }

            if (portData.vertical)
            {
                AddToClassList("Vertical");
            }

            this.tooltip = portData.tooltip;
        }
Esempio n. 2
0
        public void Initialize(BaseGraph graph, bool reInit = false)
        {
            if (this.graph != null)
            {
                SaveGraphToDisk();
                // Close pinned windows from old graph:
                ClearGraphElements();
            }

            this.graph = graph;

            connectorListener = CreateEdgeConnectorListener();

            // When pressing ctrl-s, we save the graph
            EditorSceneManager.sceneSaved += _ => SaveGraphToDisk();

            ClearGraphElements();

            InitializeGraphView();
            InitializeNodeViews();
            InitializeEdgeViews();
            InitializeViews();
            InitializeGroups();
            InitializeStackNodes();

            initialized?.Invoke();
            UpdateComputeOrder();

            InitializeView();
        }
Esempio n. 3
0
        public PortView AddPort(FieldInfo fieldInfo, Direction direction, BaseEdgeConnectorListener listener, PortData portData)
        {
            // TODO: hardcoded value
            PortView p = PortView.CreatePV(Orientation.Horizontal, direction, fieldInfo, portData, listener);

            if (p.direction == Direction.Input)
            {
                inputPortViews.Add(p);
                inputContainer.Add(p);
            }
            else
            {
                outputPortViews.Add(p);
                outputContainer.Add(p);
            }

            p.Initialize(this, portData?.displayName);

            List <PortView> ports;

            portsPerFieldName.TryGetValue(p.fieldName, out ports);
            if (ports == null)
            {
                ports = new List <PortView>();
                portsPerFieldName[p.fieldName] = ports;
            }
            ports.Add(p);

            return(p);
        }
        public void Initialize(BaseGraph graph)
        {
            if (this.graph != null)
            {
                SaveGraphToDisk();
            }

            this.graph = graph;

            connectorListener = CreateEdgeConnectorListener();

            // When pressing ctrl-s, we save the graph
            EditorSceneManager.sceneSaved += _ => SaveGraphToDisk();

            InitializeGraphView();
            InitializeNodeViews();
            InitializeEdgeViews();
            InitializeViews();
            InitializeGroups();
            InitializeStackNodes();

            UpdateComputeOrder();

            initialized?.Invoke();

            InitializeView();
        }
Esempio n. 5
0
        protected PortView(Direction direction, FieldInfo fieldInfo, PortData portData, BaseEdgeConnectorListener edgeConnectorListener)
            : base(portData.vertical ? Orientation.Vertical : Orientation.Horizontal, direction, Capacity.Multi, portData.displayType ?? fieldInfo.FieldType)
        {
            this.fieldInfo = fieldInfo;
            this.listener  = edgeConnectorListener;
            this.portType  = portData.displayType ?? fieldInfo.FieldType;
            this.portData  = portData;
            this.portName  = fieldName;

            styleSheets.Add(Resources.Load <StyleSheet>(portStyle));

            //绘制端口Icon
            if (portData.showPortIcon)
            {
                VisualElement portIcon;
                if (string.IsNullOrEmpty(portData.portIconName))
                {
                    portIcon = new VisualElement()
                    {
                        name = $"PortViewIcon_{this.portType.Name}"
                    };
                }
                else
                {
                    portIcon = new VisualElement()
                    {
                        name = $"PortViewIcon_{portData.portIconName}"
                    };
                }
                this.Insert(1, portIcon);
            }

            UpdatePortSize();

            var userPortStyle = Resources.Load <StyleSheet>(userPortStyleFile);

            if (userPortStyle != null)
            {
                styleSheets.Add(userPortStyle);
            }

            if (portData.vertical)
            {
                AddToClassList("Vertical");
            }

            this.tooltip = portData.tooltip;
        }
Esempio n. 6
0
        public PortView AddPort(FieldInfo fieldInfo, Direction direction, BaseEdgeConnectorListener listener, PortData portData)
        {
            PortView p = CreatePortView(direction, fieldInfo, portData, listener);

            if (p.direction == Direction.Input)
            {
                inputPortViews.Add(p);

                if (portData.vertical)
                {
                    topPortContainer.Add(p);
                }
                else
                {
                    inputContainer.Add(p);
                }
            }
            else
            {
                outputPortViews.Add(p);

                if (portData.vertical)
                {
                    bottomPortContainer.Add(p);
                }
                else
                {
                    outputContainer.Add(p);
                }
            }

            p.Initialize(this, portData?.displayName);

            List <PortView> ports;

            portsPerFieldName.TryGetValue(p.fieldName, out ports);
            if (ports == null)
            {
                ports = new List <PortView>();
                portsPerFieldName[p.fieldName] = ports;
            }
            ports.Add(p);

            return(p);
        }
Esempio n. 7
0
        PortView(Orientation orientation, Direction direction, FieldInfo fieldInfo, PortData portData, BaseEdgeConnectorListener edgeConnectorListener)
            : base(orientation, direction, Capacity.Multi, portData.displayType ?? fieldInfo.FieldType)
        {
            this.fieldInfo = fieldInfo;
            this.listener  = edgeConnectorListener;
            this.portType  = portData.displayType ?? fieldInfo.FieldType;
            this.portData  = portData;
            this.portName  = fieldName;

            styleSheets.Add(Resources.Load <StyleSheet>(portStyle));

            UpdatePortSize();

            var userPortStyle = Resources.Load <StyleSheet>(userPortStyleFile);

            if (userPortStyle != null)
            {
                styleSheets.Add(userPortStyle);
            }
        }
        public static PortView CreatePortView(Direction direction, FieldInfo fieldInfo, PortData portData, BaseEdgeConnectorListener edgeConnectorListener)
        {
            var pv = new PortView(direction, fieldInfo, portData, edgeConnectorListener);

            pv.m_EdgeConnector = new BaseEdgeConnector(edgeConnectorListener);
            pv.AddManipulator(pv.m_EdgeConnector);

            // Force picking in the port label to enlarge the edge creation zone
            var portLabel = pv.Q("type");

            if (portLabel != null)
            {
                portLabel.pickingMode    = PickingMode.Position;
                portLabel.style.flexGrow = 1;
            }

            // hide label when the port is vertical
            if (portData.vertical && portLabel != null)
            {
                portLabel.style.display = DisplayStyle.None;
            }

            // Fixup picking mode for vertical top ports
            if (portData.vertical)
            {
                pv.Q("connector").pickingMode = PickingMode.Position;
            }

            return(pv);
        }
Esempio n. 9
0
 protected virtual PortView CreatePortView(Direction direction, FieldInfo fieldInfo, PortData portData, BaseEdgeConnectorListener listener)
 => PortView.CreatePortView(direction, fieldInfo, portData, listener);
Esempio n. 10
0
        public static PortView CreatePV(Orientation orientation, Direction direction, FieldInfo fieldInfo, PortData portData, BaseEdgeConnectorListener edgeConnectorListener)
        {
            var pv = new PortView(orientation, direction, fieldInfo, portData, edgeConnectorListener);

            pv.m_EdgeConnector = new BaseEdgeConnector(edgeConnectorListener);
            pv.AddManipulator(pv.m_EdgeConnector);

            // Force picking in the port label to enlarge the edge creation zone
            var portLabel = pv.Q("type");

            if (portLabel != null)
            {
                portLabel.pickingMode    = PickingMode.Position;
                portLabel.style.flexGrow = 1;
            }

            return(pv);
        }
Esempio n. 11
0
        public static PortView CreatePV(Orientation orientation, Direction direction, FieldInfo fieldInfo, PortData portData, BaseEdgeConnectorListener edgeConnectorListener)
        {
            var pv = new PortView(orientation, direction, fieldInfo, portData, edgeConnectorListener);

            pv.m_EdgeConnector = new BaseEdgeConnector(edgeConnectorListener);
            pv.AddManipulator(pv.m_EdgeConnector);

            return(pv);
        }