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;
        }
Example #4
0
        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());
        }
Example #7
0
        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 void Add(IInputPlug plug)
 {
     inputPlugs.Add(plug);
 }
Example #12
0
 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;
        }
Example #16
0
 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;
 }
Example #20
0
        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)
 {
 }
Example #22
0
 public virtual IConnection Connect(IInputPlug inputPlug)
 {
     return(null);
 }
Example #23
0
 public virtual bool IsCompatible(IInputPlug inputPlug)
 {
     return(false);
 }
 public void Remove(IInputPlug plug)
 {
     inputPlugs.Remove(plug);
 }