private void SetupContentsView(PaletteStore store, PaletteEditorWindow view) { _colorContentsViewController?.Dispose(); _gradientContentsViewController?.Dispose(); _characterStyleContentsViewController?.Dispose(); _characterStyleTMPContentsViewController?.Dispose(); _emptyViewController?.Dispose(); _editService = new EditPaletteStoreService(store, new GenerateNameEnumsFileService(store)); _colorContentsViewController = new PaletteEditorWindowContentsViewController <Color>(store.ColorPalette, _editService, view.ColorContentsView); _gradientContentsViewController = new PaletteEditorWindowContentsViewController <Gradient>(store.GradientPalette, _editService, view.GradientContentsView); _characterStyleContentsViewController = new PaletteEditorWindowContentsViewController <CharacterStyle>(store.CharacterStylePalette, _editService, view.CharacterStyleContentsView); _characterStyleTMPContentsViewController = new PaletteEditorWindowContentsViewController <CharacterStyleTMP>(store.CharacterStyleTMPPalette, _editService, view.CharacterStyleTMPContentsView); _activeContentsViewController = GetPerTypeController(_guiState.ActivePaletteType.Value); }
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); }