public override IConnection Connect(IInputPlug inputPlug) { if (inputPlug is MethodPlug) { MethodPlug methodPlug = (MethodPlug)inputPlug; MethodInfo methodInfo = methodPlug.MethodInfo; Delegate connectionDelegate = null; try { connectionDelegate = Delegate.CreateDelegate(eventInfo.EventHandlerType, inputPlug.Owner, methodInfo); eventInfo.AddEventHandler(this.Owner, connectionDelegate); } catch (System.Exception) { return(null); } // Create connection. EventMethodConnection connection = new EventMethodConnection(this, inputPlug, connectionDelegate); if (!inputPlug.OnConnection(connection)) { // Disconnect. connection.Dispose(); return(null); } this.connections.Add(connection); return(connection); } return(null); }
public override IConnection Connect(IInputPlug inputPlug) { if (inputPlug is MethodPlug) { MethodPlug methodPlug = (MethodPlug)inputPlug; MethodInfo methodInfo = methodPlug.MethodInfo; Delegate connectionDelegate = null; try { connectionDelegate = Delegate.CreateDelegate(eventInfo.EventHandlerType, inputPlug.Owner, methodInfo); eventInfo.AddEventHandler(this.Owner, connectionDelegate); } catch (System.Exception) { return null; } // Create connection. EventMethodConnection connection = new EventMethodConnection(this,inputPlug,connectionDelegate); if (!inputPlug.OnConnection(connection)) { // Disconnect. connection.Dispose(); return null; } this.connections.Add(connection); return connection; } return null; }
public override IConnection Connect(IInputPlug inputPlug) { if (IsCompatible(inputPlug)) { if (property.CurrentValue == null) { InterfacePlug plug = (InterfacePlug)inputPlug; property.CurrentValue = plug.Owner.QueryInterface(plug.InterfaceType); PropertyInterfaceConnection connection = new PropertyInterfaceConnection(this, inputPlug); if (!inputPlug.OnConnection(connection)) { connection.Dispose(); return null; } this.connections.Add(connection); return connection; } } return null; }
public override IConnection Connect(IInputPlug inputPlug) { if (IsCompatible(inputPlug)) { if (property.CurrentValue == null) { InterfacePlug plug = (InterfacePlug)inputPlug; property.CurrentValue = plug.Owner.QueryInterface(plug.InterfaceType); PropertyInterfaceConnection connection = new PropertyInterfaceConnection(this, inputPlug); if (!inputPlug.OnConnection(connection)) { connection.Dispose(); return(null); } this.connections.Add(connection); return(connection); } } return(null); }
public IOutputPlug[] GetOutputPlugs(IActor actor, IInputPlug plug) { List<IOutputPlug> tempList = new List<IOutputPlug>(); foreach (IOutputPlug p in outputPlugs) { // Cases to add. if (plug != null) { if (p.IsCompatible(plug)) tempList.Add(p); } else if (actor != null) { foreach (IInputPlug ip in actor.GetInputPlugs(null, null)) { if (p.IsCompatible(ip)) { tempList.Add(p); break; } } } else { tempList.Add(p); } } return tempList.ToArray(); }
public IOutputPlug[] GetOutputPlugs(IActor actor, IInputPlug plug) { List <IOutputPlug> tempList = new List <IOutputPlug>(); foreach (IOutputPlug p in outputPlugs) { // Cases to add. if (plug != null) { if (p.IsCompatible(plug)) { tempList.Add(p); } } else if (actor != null) { foreach (IInputPlug ip in actor.GetInputPlugs(null, null)) { if (p.IsCompatible(ip)) { tempList.Add(p); break; } } } else { tempList.Add(p); } } return(tempList.ToArray()); }
public override bool IsCompatible(IInputPlug inputPlug) { InterfacePlug plug = inputPlug as InterfacePlug; if (plug != null) { if (plug.InterfaceType.Equals(Property.Type)) { return(true); } } return(false); }
public override bool IsCompatible(IInputPlug inputPlug) { MethodPlug methodPlug = inputPlug as MethodPlug; if (methodPlug != null) { if (Equals(eventInfo.GetRaiseMethod(), methodPlug.MethodInfo)) { return(true); } } return(false); }
public void Add(IInputPlug plug) { inputPlugs.Add(plug); }
protected Connection(IOutputPlug _outputPlug, IInputPlug _inputPlug) { outputPlug = _outputPlug; inputPlug = _inputPlug; }
public virtual IOutputPlug[] GetOutputPlugs(IActor inputActor, IInputPlug inputPlug) { return(actorPlugs.GetOutputPlugs(inputActor, inputPlug)); }
public virtual IConnection Connect(IInputPlug inputPlug) { return null; }
public EventMethodConnection(IOutputPlug _outputPlug, IInputPlug _inputPlug,System.Delegate _delegate) : base(_outputPlug,_inputPlug) { connectionDelegate = _delegate; }
public override bool IsCompatible(IInputPlug inputPlug) { InterfacePlug plug = inputPlug as InterfacePlug; if (plug != null) { if (plug.InterfaceType.Equals(Property.Type)) return true; } return false; }
public EventMethodConnection(IOutputPlug _outputPlug, IInputPlug _inputPlug, System.Delegate _delegate) : base(_outputPlug, _inputPlug) { connectionDelegate = _delegate; }
public PropertyInterfaceConnection(IOutputPlug _outputPlug, IInputPlug _inputPlug) : base(_outputPlug,_inputPlug) { }
public void Remove(IInputPlug plug) { inputPlugs.Remove(plug); }
public virtual bool IsCompatible(IInputPlug inputPlug) { return false; }
public override bool IsCompatible(IInputPlug inputPlug) { MethodPlug methodPlug = inputPlug as MethodPlug; if (methodPlug != null) { if (Equals(eventInfo.GetRaiseMethod(), methodPlug.MethodInfo)) return true; } return false; }
public PropertyInterfaceConnection(IOutputPlug _outputPlug, IInputPlug _inputPlug) : base(_outputPlug, _inputPlug) { }
public virtual IConnection Connect(IInputPlug inputPlug) { return(null); }
public virtual bool IsCompatible(IInputPlug inputPlug) { return(false); }