Example #1
0
 private void ProcessRemovedPorts(IList <Port> currentPorts, VisualElement portContainer, IList <PortPresenter> currentPresenters)
 {
     foreach (Port current in currentPorts)
     {
         bool          flag      = false;
         PortPresenter presenter = current.GetPresenter <PortPresenter>();
         foreach (PortPresenter current2 in currentPresenters)
         {
             if (current2 == presenter)
             {
                 flag = true;
                 break;
             }
         }
         if (!flag)
         {
             Port expr_75 = current;
             expr_75.OnConnect = (Action <Port>)Delegate.Remove(expr_75.OnConnect, new Action <Port>(this.OnPortConnectAction));
             Port expr_97 = current;
             expr_97.OnDisconnect = (Action <Port>)Delegate.Remove(expr_97.OnDisconnect, new Action <Port>(this.OnPortConnectAction));
             this.OnPortRemoved(current);
             portContainer.Remove(current);
         }
     }
 }
Example #2
0
        public override void OnDataChanged()
        {
            this.UpdateConnector();
            PortPresenter presenter      = base.GetPresenter <PortPresenter>();
            Type          portType       = presenter.portType;
            Type          typeFromHandle = typeof(PortSource <>);

            try
            {
                Type type = typeFromHandle.MakeGenericType(new Type[]
                {
                    portType
                });
                presenter.source = Activator.CreateInstance(type);
            }
            catch (Exception ex)
            {
                Debug.Log("Couldn't build PortSouce<" + ((portType != null) ? portType.Name : "null") + "> " + ex.Message);
            }
            string text = (!string.IsNullOrEmpty(presenter.name)) ? presenter.name : portType.Name;

            this.m_ConnectorText.text = text;
            presenter.capabilities   &= ~Capabilities.Selectable;
            this.direction            = presenter.direction;
            this.orientation          = presenter.orientation;
            this.portType             = presenter.portType;
            this.source = presenter.source;
        }
 public virtual List <PortPresenter> GetCompatiblePorts(PortPresenter startPort, NodeAdapter nodeAdapter)
 {
     return(allChildren.OfType <PortPresenter>()
            .Where(nap => nap.IsConnectable() &&
                   nap.orientation == startPort.orientation &&
                   nap.direction != startPort.direction &&
                   nodeAdapter.GetAdapter(nap.source, startPort.source) != null)
            .ToList());
 }
Example #4
0
        public static Port Create <TEdgePresenter, TEdge>(PortPresenter presenter) where TEdgePresenter : EdgePresenter where TEdge : Edge, new()
        {
            Port.DefaultEdgePresenterConnectorListener <TEdgePresenter> listener = new Port.DefaultEdgePresenterConnectorListener <TEdgePresenter>();
            Port port = new Port(Orientation.Horizontal, Direction.Input, typeof(object))
            {
                m_EdgeConnector = new EdgeConnector <TEdge>(listener),
                presenter       = presenter
            };

            port.AddManipulator(port.m_EdgeConnector);
            return(port);
        }
Example #5
0
        public bool IsConnectable()
        {
            // TODO: Remove when removing presenters.
            PortPresenter portPresenter = presenter as PortPresenter;

            if (portPresenter != null)
            {
                return(portPresenter.IsConnectable());
            }

            return(true);
        }
Example #6
0
 private void UpdateConnector()
 {
     if (this.m_EdgeConnector != null)
     {
         PortPresenter presenter = base.GetPresenter <PortPresenter>();
         if (this.m_EdgeConnector.target == null || !this.m_EdgeConnector.target.HasMouseCapture())
         {
             if (!presenter.connected || presenter.direction != Direction.Input)
             {
                 this.AddManipulator(this.m_EdgeConnector);
             }
             else
             {
                 this.RemoveManipulator(this.m_EdgeConnector);
             }
         }
     }
 }
Example #7
0
        public virtual void DisconnectAll()
        {
            PortPresenter presenter = base.GetPresenter <PortPresenter>();

            if (presenter != null)
            {
                foreach (Edge current in this.m_Connections)
                {
                    EdgePresenter presenter2 = current.GetPresenter <EdgePresenter>();
                    presenter.Disconnect(presenter2);
                }
            }
            this.m_Connections.Clear();
            if (this.OnDisconnect != null)
            {
                this.OnDisconnect(this);
            }
        }
Example #8
0
        public virtual void Disconnect(Edge edge)
        {
            if (edge == null)
            {
                throw new ArgumentException("The value passed to PortPresenter.Disconnect is null");
            }
            PortPresenter presenter = base.GetPresenter <PortPresenter>();

            if (presenter != null)
            {
                EdgePresenter presenter2 = edge.GetPresenter <EdgePresenter>();
                presenter.Disconnect(presenter2);
            }
            else
            {
                this.m_Connections.Remove(edge);
            }
            if (this.OnDisconnect != null)
            {
                this.OnDisconnect(this);
            }
        }
Example #9
0
        public virtual void Connect(Edge edge)
        {
            if (edge == null)
            {
                throw new ArgumentException("The value passed to Port.Connect is null");
            }
            PortPresenter presenter = base.GetPresenter <PortPresenter>();

            if (presenter != null)
            {
                EdgePresenter presenter2 = edge.GetPresenter <EdgePresenter>();
                presenter.Connect(presenter2);
            }
            else if (!this.m_Connections.Contains(edge))
            {
                this.m_Connections.Add(edge);
            }
            if (this.OnConnect != null)
            {
                this.OnConnect(this);
            }
        }
Example #10
0
 public virtual Port InstantiatePort(PortPresenter newPres)
 {
     return(Port.Create <EdgePresenter, Edge>(newPres));
 }
Example #11
0
        public bool IsConnectable()
        {
            PortPresenter portPresenter = base.presenter as PortPresenter;

            return(!(portPresenter != null) || portPresenter.IsConnectable());
        }