public ScheduledWampConnection(IControlledWampConnection <TMessage> connection, IScheduler scheduler)
        {
            mConnection = connection;
            mScheduler  = scheduler;

            mMessageArrived =
                GetEventHandler <WampMessageArrivedEventArgs <TMessage> >
                    (x => mConnection.MessageArrived += x,
                    x => mConnection.MessageArrived  -= x);

            mConnectionOpen =
                GetEventHandler
                    (x => mConnection.ConnectionOpen += x,
                    x => mConnection.ConnectionOpen  -= x);

            mConnectionClosed =
                GetEventHandler
                    (x => mConnection.ConnectionClosed += x,
                    x => mConnection.ConnectionClosed  -= x);

            mConnectionError =
                GetEventHandler <WampConnectionErrorEventArgs>
                    (x => mConnection.ConnectionError += x,
                    x => mConnection.ConnectionError  -= x);
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad ();

            // Set the Image inside the ImageView
            var imgView = new UIImageView (UIImage.FromBundle ("leaf.jpg")) {
                ContentMode = UIViewContentMode.Center
            };

            // Set the scrollpad content size so it has plenty of room to scroll (Image Size)
            scrollPad.ContentSize = imgView.Bounds.Size;
            scrollPad.AddSubview (imgView);

            // Subscribe to normal event handler so when ScrollView is Decelerating
            // this will be called
            scrollPad.DraggingEnded += (object sender, DraggingEventArgs e) => {
                if (e.Decelerate == true) {
                    Console.WriteLine ("Dragging ended, Decelerate:{0}", e.Decelerate);
                    InvokeOnMainThread (() => lblStatus.Text = "Try Again.");
                }
            };

            // The Rx fun starts here, we will look at DraggingEnded event and look inside its DraggingEventArgs
            // to see if Decelerate == false, so only then we will "React" to the event.
            ScrollReactSource = Observable.FromEventPattern<DraggingEventArgs> (scrollPad, "DraggingEnded")
                .Where (ev => ev.EventArgs.Decelerate == false)
                .ToEventPattern ();

            ReactOnDecelerate += (sender, ev) =>
                InvokeOnMainThread (() => {
                    lblStatus.Text = "Cool you did it!! Rx Working!";
                    Console.WriteLine ("Dragging ended from Rx, Decelerate:false");
                });
        }
Beispiel #3
0
        private static void ToEventPattern()
        {
            IObservable <EventPattern <MyEventArgs> > source = Observable.Interval(TimeSpan.FromSeconds(1))
                                                               .Select(it => new EventPattern <MyEventArgs>(null, new MyEventArgs(it)));

            IEventPatternSource <MyEventArgs> resultPatterns = source.ToEventPattern();

            resultPatterns.OnNext += (sender, args) => Console.WriteLine(args.Value);
        }
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate (bundle);

            SetContentView (Resource.Layout.Main);

            var text = FindViewById<TextView> (Resource.Id.theText);

            var surface = FindViewById<View> (Resource.Id.theToucheable);

            triple_touch_source = Observable.FromEventPattern<View.TouchEventArgs> (surface, "Touch")
                .Where (ev => ev.EventArgs.Event.Action == MotionEventActions.Move)
                .Where (ev => ev.EventArgs.Event.PointerCount == 3)
                //.SubscribeOn (Application.SynchronizationContext)
                .ToEventPattern ();

            TripleTouch += (sender, ev) =>
                this.RunOnUiThread (() =>
                                    text.Text = GetEventDescription (ev.Event));
        }
 public ApiCall(IEventPatternSource <SuccessEventArgs> onSuccess, IEventPatternSource <TimeoutEventArgs> onTimeout)
 {
     OnSuccess = onSuccess;
     OnTimeout = onTimeout;
 }