Beispiel #1
0
        public void ReturnParameterSkipableTest()
        {
            var view = new ViewWithButton {
                BindingContext = new ViewModelSimleHandling()
            };
            var behavior = new EventToMultipleHandlersBehavior()
            {
                EventName = "Clicked"
            };
            var handlerWithReturn = new EventToMethodHandler <int> {
                MethodName = "MethodWithReturnInt"
            };
            var delayHandler = new DelayEventHandler();
            var handlerWithReturnParameter = new EventToMethodHandler {
                MethodName = "MethodWithParameterInt"
            };
            var returnParameter = new ReturnParameter <int>();

            handlerWithReturnParameter.Parameters.Add(returnParameter);
            behavior.Handlers.Add(handlerWithReturn);
            behavior.Handlers.Add(delayHandler);
            behavior.Handlers.Add(handlerWithReturnParameter);
            view.Button.Behaviors.Add(behavior);

            view.Button.SendClicked();

            returnParameter.GetValue().Should().Be(9);
            view.BindingContext.GetFieldValue("_parameterValue").Should().Be(9);
        }
Beispiel #2
0
 public DelayEvent(int _id, string _name, DelayEventHandler _handler)
 {
     id        = _id;
     name      = _name;
     handler   = _handler;
     routine   = null;
     destroyed = false;
 }
Beispiel #3
0
    public void _Remove(DelayEventHandler handler)
    {
        if (handler == null)
        {
            return;
        }

        var ee = m_events.Find(e => e.handler.Target == handler.Target && e.handler.Method == handler.Method);

        if (ee != null)
        {
            ee.Destroy();
        }
    }
        public void DelayEventHandlerTest()
        {
            var handler = new DelayEventHandler();

            Assert.True(handler is IAsyncRisible);
            Assert.True(handler is ISkipReturnable);

            Assert.False(handler is IRisible);
            Assert.False(handler is ICompositeHandler);
            Assert.False(handler is IAsyncGenericRisible);
            Assert.False(handler is IMethodExecutable);
            Assert.False(handler is IParameterContainer);
            Assert.False(handler is ICommandExecutable);
            Assert.False(handler is IGenericRisible);
            Assert.False(handler is ICompositeParallelHandler);
        }
Beispiel #5
0
        public static DelayEvent Create(double delay, int id, string name, DelayEventHandler handler, bool useLogic)
        {
            var e = m_pool.Pop();

            e.destroyed      = false;
            e.delay          = delay;
            e.id             = id;
            e.name           = name;
            e.handler        = handler;
            e.handler1       = null;
            e.param1         = null;
            e.useLogicUpdate = useLogic;
            if (!e.useLogicUpdate)
            {
                e.routine = instance.StartCoroutine(instance.Wait((float)delay, e));
            }
            instance.m_events.Add(e);

            return(e);
        }
Beispiel #6
0
    public int _Add(DelayEventHandler handler, double delay, bool useLogicUpdate = false, string name = "")
    {
        if (handler == null)
        {
            return(0);
        }

        if (!string.IsNullOrEmpty(name))
        {
            var ee = m_events.Find(d => d.name == name);
            if (ee != null)
            {
                ee.Destroy();
            }
        }

        var e = DelayEvent.Create(delay, ++m_eventID, name, handler, useLogicUpdate);

        return(e.id);
    }
Beispiel #7
0
 public static void Remove(DelayEventHandler handler)
 {
     instance._Remove(handler);
 }
Beispiel #8
0
 public static int AddLogicDelay(DelayEventHandler handler, double delay, string name = "")
 {
     return(instance._Add(handler, delay, true, name));
 }
Beispiel #9
0
 public static int Add(DelayEventHandler handler, float delay, string name = "")
 {
     return(instance._Add(handler, delay, false, name));
 }