コード例 #1
0
        public PaletteEditorWindowController(PaletteStoreRepository storeRepository, UPaletteEditorGUIState guiState,
                                             PaletteEditorWindow view)
        {
            _guiState = guiState;

            view.UndoShortcutExecutedAsObservable
            .Subscribe(_ => OnUndoCommandExecuted())
            .DisposeWith(_disposables);

            view.RedoShortcutExecutedAsObservable
            .Subscribe(_ => OnRedoCommandExecuted())
            .DisposeWith(_disposables);

            view.RemoveShortcutExecutedAsObservable
            .Subscribe(_ => _activeContentsViewController.OnRemoveShortcutExecuted())
            .DisposeWith(_disposables);

            view.SelectedPaletteTypeChangedAsObservable
            .Subscribe(OnActivePaletteTypeChanged)
            .DisposeWith(_disposables);

            view.CreateButtonClickedAsObservable
            .Subscribe(_ => OnCreateButtonClicked())
            .DisposeWith(_disposables);

            view.LostFocusAsObservable
            .Subscribe(_ => OnLostFocus())
            .DisposeWith(_disposables);

            guiState.ActivePaletteType
            .Subscribe(x => _activeContentsViewController = GetPerTypeController(x))
            .DisposeWith(_disposables);

            storeRepository.Store.Subscribe(x =>
            {
                if (x == null)
                {
                    SetupEmptyView(view);
                }
                else
                {
                    SetupContentsView(x, view);
                }
            }).DisposeWith(_disposables);
        }
コード例 #2
0
        public PaletteEditorWindowPresenter(PaletteStoreRepository storeRepository, UPaletteEditorGUIState guiState,
                                            PaletteEditorWindow view)
        {
            _guiState = guiState;

            _guiState.ActivePaletteType
            .Subscribe(view.SetActiveContentView)
            .DisposeWith(_disposables);

            view.SetActiveContentView(_guiState.ActivePaletteType.Value);

            storeRepository.Store.Subscribe(x =>
            {
                if (x == null)
                {
                    SetupEmptyView(view);
                }
                else
                {
                    SetupContentsView(x, view);
                }
            }).DisposeWith(_disposables);
        }