Пример #1
0
        protected BasePortView(Orientation orientation, Direction direction, Capacity capacity, Type type, IEdgeConnectorListener connectorListener) : base(orientation, direction, capacity, type)
        {
            styleSheets.Add(GraphProcessorStyles.PortViewStyle);

            Icon = new Image();
            Icon.AddToClassList("port-icon");
            Insert(1, Icon);

            visualClass = "Port_" + portType.Name;

            var portLabel = this.Q("type");

            portLabel.pickingMode    = PickingMode.Position;
            portLabel.style.flexGrow = 1;
            bool vertical = orientation == Orientation.Vertical;

            if (vertical)
            {
                portLabel.style.display         = DisplayStyle.None;
                this.Q("connector").pickingMode = PickingMode.Position;
                AddToClassList("vertical");
            }

            m_EdgeConnector = new EdgeConnector <BaseConnectionView>(connectorListener);
            ConnectionViews = new Dictionary <BaseConnection, BaseConnectionView>();
            this.AddManipulator(m_EdgeConnector);
        }
Пример #2
0
 public GraphViewPort(GraphViewNode node, GraphViewConnector edgeListener, bool isInput) : base(Orientation.Horizontal, isInput ? Direction.Input : Direction.Output, isInput ? Capacity.Multi : Capacity.Single, null)
 {
     AddToClassList(UssClassName);
     Node            = node;
     m_EdgeConnector = new EdgeConnector <Edge>(edgeListener);
     this.AddManipulator(m_EdgeConnector);
 }
Пример #3
0
        public UIViewSourcePort(Orientation portOrientation, Direction portDirection, Capacity portCapacity, Type type)
            : base(portOrientation, portDirection, portCapacity, type)
        {
            var connectorListener = new DefaultEdgeConnectorListener();

            m_EdgeConnector = new EdgeConnector <Edge>(connectorListener);
            this.AddManipulator(m_EdgeConnector);
        }
Пример #4
0
        public LogicPort(BasePort basePort) : base(Orientation.Horizontal, GetDirection(basePort.Direction),
                                                   GetCapacity(basePort.CapacityMode), basePort.PortType)
        {
            portName      = basePort.Name;
            this.basePort = basePort;

            myEdgeConnector = new EdgeConnector <Edge>(new EC());
            this.AddManipulator(myEdgeConnector);
        }
        public void SetUp(NodePort _port, CommandDispatcher _commandDispatcher, BaseGraphView _graphView)
        {
            Model     = _port;
            GraphView = _graphView;

            m_EdgeConnector = new EdgeConnector <BaseEdgeView>(new EdgeConnectorListener(GraphView));
            this.AddManipulator(m_EdgeConnector);

            AddToClassList(Model.FieldName);
            visualClass = "Port_" + portType.Name;

            // 绑定
            BindingProperties();
        }
Пример #6
0
        public static Port Create(IPortModel model, Store store, Orientation orientation, VisualElement existingIcon = null)
        {
            var stencil = model.GraphModel.Stencil;

            var ele = new Port(orientation, model.Direction, model.Capacity, model.DataType.Resolve(stencil))
            {
                userData = model,
                m_Store  = store,
                portName = model.Name,
            };

            var connector = new EdgeConnector <Edge>(new VseEdgeConnectorListener(
                                                         (edge, pos) => OnDropOutsideCallback(store, pos, (Edge)edge),
                                                         edge => OnDropCallback(store, edge)));

            ele.m_EdgeConnector = connector;

            ele.UpdateTooltip(model);

            ele.EnableInClassList("data", model.PortType == PortType.Data);
            ele.EnableInClassList("instance", model.PortType == PortType.Instance);
            ele.EnableInClassList("execution", model.PortType == PortType.Execution);
            ele.EnableInClassList("loop", model.PortType == PortType.Loop);
            ele.EnableInClassList("event", model.PortType == PortType.Event);

            ele.AddManipulator(ele.m_EdgeConnector);

            if (model.PortType == PortType.Data || model.PortType == PortType.Instance)
            {
                if (existingIcon == null)
                {
                    existingIcon = new Image {
                        name = "portIcon"
                    };
                    ele.Insert(1, existingIcon); // on output, flex-direction is reversed, so the icon will effectively be BEFORE the connector
                }
                existingIcon.AddToClassList(((PortModel)model).IconTypeString);
            }

            ele.PortIcon = existingIcon;

            ele.MarkDirtyRepaint();

            return(ele);
        }
Пример #7
0
 public NodePort(Direction portDirection, Capacity portCapacity) : base(Orientation.Vertical, portDirection, portCapacity, typeof(bool))
 {
     m_EdgeConnector = new EdgeConnector <Edge>(new NodeEdgeConnectorListener());
     this.AddManipulator(m_EdgeConnector);
     style.width = 60.0f;
 }
        public OutputNodeInputPort(Orientation portOrientation, Direction portDirection, Capacity portCapacity, Type type) : base(portOrientation, portDirection, portCapacity, type)
        {
            m_EdgeConnector = new EdgeConnector <Edge>(new EdgeConnectorListener());

            this.AddManipulator(m_EdgeConnector);
        }
Пример #9
0
 public SleipnirPortView(Orientation orientation, PortDirection direction, PortCapacity capacity, Type type, IEdgeConnectorListener listener) : base(orientation, ConvertDirection(direction), ConvertCapacity(capacity), type)
 {
     m_EdgeConnector = new EdgeConnector <Edge>(listener);
     this.AddManipulator(m_EdgeConnector);
 }