コード例 #1
0
        public ApplicationModel(
            IFactory <AuthenticationModel> authenticationModelFactory,
            IFactory <WorkspaceModel> workspaceModelFactory,
            IApplicationPopupController popupController,
            IAuthenticator authenticator)
        {
            _authenticationModelFactory = authenticationModelFactory;
            _workspaceModelFactory      = workspaceModelFactory;

            SubscribeToState(authenticator);
            SubscribeToPopup(popupController);
        }
コード例 #2
0
        public ApplicationController(
            IAuthenticator authenticator,
            IApplicationPopupController applicationPopupController,
            IActivator <AuthenticationModel> authenticationActivator,
            IActivator <WorkspaceModel> workspaceActivator)
        {
            _authenticationActivator = authenticationActivator;
            _workspaceActivator      = workspaceActivator;

            BindAuthenticator(authenticator)
            .DisposeWith(this);

            BindPopup(applicationPopupController)
            .DisposeWith(this);
        }
コード例 #3
0
 private IDisposable BindPopup(IApplicationPopupController controller)
 {
     return(Observable.FromEventPattern <PopupModel>(
                h => controller.ContextChanged += h,
                h => controller.ContextChanged -= h)
            .Select(e => e.EventArgs)
            .SubscribeOn(TaskPoolScheduler.Default)
            .ObserveOn(RxApp.MainThreadScheduler)
            .Subscribe(popupModel =>
     {
         Model.PopupModel = popupModel ?? new PopupModel
         {
             IsPopupVisible = false
         };
     }));
 }
コード例 #4
0
        private void SubscribeToPopup(IApplicationPopupController controller)
        {
            PopupModel = new HiddenPopupModel(controller);

            Observable.FromEventPattern <PopupModel>(
                h => controller.ContextChanged += h,
                h => controller.ContextChanged -= h)
            .Select(e => e.EventArgs)
            .SubscribeOn(TaskPoolScheduler.Default)
            .ObserveOn(RxApp.MainThreadScheduler)
            .Subscribe(popupModel =>
            {
                PopupModel.Dispose();
                PopupModel = popupModel ?? new HiddenPopupModel(controller);
            })
            .DisposeWith(_modelDisposable);
        }