Example #1
0
        public PortView AddPort(FieldInfo fieldInfo, Direction direction, EdgeConnectorListener listener, PortData portData)
        {
            // TODO: hardcoded value
            PortView p = new PortView(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);
        }
Example #2
0
        public void Initialize(BaseGraph graph)
        {
            if (this.graph != null)
            {
                SaveGraphToDisk();
            }

            this.graph = graph;

            connectorListener = new EdgeConnectorListener(this);

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

            InitializeGraphView();
            InitializeNodeViews();
            InitializeEdgeViews();
            InitializeViews();
            InitializeCommentBlocks();

            UpdateComputeOrder();

            initialized?.Invoke();

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

            this.graph = graph;

            connectorListener = new EdgeConnectorListener(this);

            InitializeNodeViews();
            InitializeEdgeViews();
            InitializeViews();
            InitializeCommentBlocks();

            UpdateComputeOrder();
        }
Example #4
0
        public PortView(Orientation portOrientation, Direction direction, FieldInfo fieldInfo, EdgeConnectorListener edgeConnectorListener)
            : base(portOrientation, direction, Capacity.Multi, fieldInfo.FieldType)
        {
            AddStyleSheetPath("GraphProcessorStyles/PortView");

            if (Resources.Load <UnityEngine.Object>(userPortStyleFile) != null)
            {
                AddStyleSheetPath(userPortStyleFile);
            }

            this.m_EdgeConnector = new EdgeConnector <EdgeView>(edgeConnectorListener);
            this.AddManipulator(m_EdgeConnector);

            fieldName = fieldInfo.Name;
            portType  = fieldInfo.FieldType;

            this.fieldInfo = fieldInfo;
            this.listener  = edgeConnectorListener;
        }
Example #5
0
        public PortView(Orientation orientation, Direction direction, FieldInfo fieldInfo, PortData portData, EdgeConnectorListener edgeConnectorListener)
            : base(orientation, direction, Capacity.Multi, portData.displayType ?? fieldInfo.FieldType)
        {
            styleSheets.Add(Resources.Load <StyleSheet>(portStyle));

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

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

            this.m_EdgeConnector = new EdgeConnector <EdgeView>(edgeConnectorListener);
            this.AddManipulator(m_EdgeConnector);

            this.fieldInfo = fieldInfo;
            this.listener  = edgeConnectorListener;
            this.portType  = portData.displayType ?? fieldInfo.FieldType;
            this.portData  = portData;
            this.portName  = fieldName;
        }
Example #6
0
        public PortView AddPort(FieldInfo fieldInfo, Direction direction, EdgeConnectorListener listener, bool isMultiple = false, string name = null)
        {
            // TODO: hardcoded value
            PortView p = new PortView(Orientation.Horizontal, direction, fieldInfo, listener);

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

            p.Initialize(this, isMultiple, name);

            portsPerFieldName[p.fieldName] = p;

            return(p);
        }
Example #7
0
        public MultiPortBehavior(BaseNodeView nodeView, FieldInfo fieldInfo, Direction direction, EdgeConnectorListener listener, bool isMultiple, string name)
        {
            this.multiPorts = fieldInfo.GetValue(nodeView.nodeTarget) as MultiPorts;
            this.node       = nodeView;
            this.fieldInfo  = fieldInfo;
            this.direction  = direction;
            this.listener   = listener;
            this.isMultiple = isMultiple;
            this.name       = name;

            // Initialize the MultiPort field if null
            if (multiPorts == null)
            {
                multiPorts = new MultiPorts();
                fieldInfo.SetValue(nodeView.nodeTarget, multiPorts);
            }

            // Instantiate all ports needed to create the serialized connections
            // Minus one because we count our current instance
            for (int i = 0; i < multiPorts.portCount; i++)
            {
                AddPort();
            }
        }
Example #8
0
 public DefaultPortBehavior(BaseNodeView nodeView, FieldInfo fieldInfo, Direction direction, EdgeConnectorListener listener, bool isMultiple, string name)
 {
     nodeView.AddPort(fieldInfo, direction, listener, isMultiple, name);
 }
Example #9
0
        public static void CreatePortBehavior(BaseNodeView nodeView, FieldInfo field, Direction direction, EdgeConnectorListener listener, bool isMultiple, string name)
        {
            Type behaviorType;

            portBehaviors.TryGetValue(field.FieldType, out behaviorType);

            if (behaviorType == null)
            {
                behaviorType = typeof(DefaultPortBehavior);
            }

            Activator.CreateInstance(behaviorType, nodeView, field, direction, listener, isMultiple, name);
        }