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); } } }
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()); }
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); }
public bool IsConnectable() { // TODO: Remove when removing presenters. PortPresenter portPresenter = presenter as PortPresenter; if (portPresenter != null) { return(portPresenter.IsConnectable()); } return(true); }
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); } } } }
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); } }
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); } }
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); } }
public virtual Port InstantiatePort(PortPresenter newPres) { return(Port.Create <EdgePresenter, Edge>(newPres)); }
public bool IsConnectable() { PortPresenter portPresenter = base.presenter as PortPresenter; return(!(portPresenter != null) || portPresenter.IsConnectable()); }