protected virtual void ChangeCurrentBrowserViewModel(ViewerBaseVM newCurrentBrowserViewModel) { //if (_CurrentBrowserViewModel != null) // _CurrentBrowserViewModel.Dispose(); //Unload previous handler if (CurrentBrowserViewModel != null) { CurrentBrowserViewModel.PropertyChanged -= propertyChangeHandler; CurrentBrowserViewModel.DirectoryChanged -= dirChangedHandler; CurrentBrowserViewModel.OnUnload(); } bool showPreview = CurrentBrowserViewModel != null ? CurrentBrowserViewModel.IsPreviewerVisible : false; newCurrentBrowserViewModel.IsPreviewerVisible = showPreview; _currentBrowserViewModel = newCurrentBrowserViewModel; if (CurrentBrowserViewModel != null) { CurrentBrowserViewModel.PropertyChanged += propertyChangeHandler; CurrentBrowserViewModel.DirectoryChanged += dirChangedHandler; } IsDirectoryTreeVisible = CurrentBrowserViewModel.IsDirectoryTreeEnabled; UpdateOtherViewModels(newCurrentBrowserViewModel); NotifyPropertyChanged("CurrentBrowserViewModel"); NotifyPropertyChanged("CurrentEntryViewModel"); NotifyPropertyChanged("CurrentEntryModel"); NotifyPropertyChanged("CurrentEntry"); }
private void AddNavigationHistory(ViewerBaseVM item) { if (NavigationPosition != -1) { for (int i = 0; i < NavigationPosition; i++) { NavigationHistory.RemoveAt(0); } } while (NavigationHistory.Count > 10) { NavigationHistory.RemoveAt(NavigationHistory.Count - 1); } if (NavigationHistory.IndexOf(item) != -1) { NavigationHistory.Remove(item); } NavigationHistory.Insert(0, item); NavigationPosition = 0; //if (jpList != null) //{ // jpList.AddToRecent(item.EmbeddedDirectoryModel.EmbeddedDirectoryEntry.ParseName); // jpList.Refresh(); //} }
internal void ChangeNavigationPosition(ViewerBaseVM item) { int pos = NavigationHistory.IndexOf(item); if (pos != -1) { ChangeNavigationPosition(pos); } }
protected void ChangeCurrentBrowserViewModel(ViewerBaseVM viewModel, bool updateHistory) { ViewerBaseVM currentBrowserViewModel = CurrentBrowserViewModel; base.ChangeCurrentBrowserViewModel(viewModel); if (updateHistory && !viewModel.Equals(currentBrowserViewModel)) { AddNavigationHistory(viewModel); } }
/// <summary> /// Called when CurrentBrowserViewModel updated, used to update other UI VMs. /// </summary> /// <param name="newViewModel"></param> protected virtual void UpdateOtherViewModels(ViewerBaseVM newViewModel) { _breadcrumbViewModel.IsBreadcrumbEnabled = newViewModel.IsBreadcrumbVisible; if (newViewModel is BaseW3ViewerViewModel) { BaseW3ViewerViewModel w3VM = newViewModel as BaseW3ViewerViewModel; _searchViewModel.ConfirmedParseName = w3VM.WebAddress.AbsoluteUri; return; } if (newViewModel is BaseDirectoryViewerViewModel <FI, DI, FSI> ) { BaseDirectoryViewerViewModel <FI, DI, FSI> directoryViewerVM = newViewModel as BaseDirectoryViewerViewModel <FI, DI, FSI>; DirectoryModel <FI, DI, FSI> directoryModel = directoryViewerVM.EmbeddedDirectoryViewModel.EmbeddedDirectoryModel; _navigationViewModel.SelectedModel = directoryModel; _breadcrumbViewModel.SelectedModel = directoryModel; _searchViewModel.SelectedModel = directoryModel; return; } if (newViewModel is MediaViewerViewModel <FI, DI, FSI> ) { MediaViewerViewModel <FI, DI, FSI> fileViewerVM = newViewModel as MediaViewerViewModel <FI, DI, FSI>; EntryModel <FI, DI, FSI> fileModel = fileViewerVM.EmbeddedEntryViewModel.EmbeddedModel; DirectoryModel <FI, DI, FSI> parentModel = _profile.ConstructDirectoryModel(fileModel.Parent); _navigationViewModel.SelectedModel = parentModel; _breadcrumbViewModel.SelectedModel = fileModel; _searchViewModel.SelectedModel = fileModel; return; } #if DEBUG throw new NotImplementedException(); #endif }
protected virtual void setupCommands() { ContextMenuCommand = new SimpleCommand() { CanExecuteDelegate = (x) => { ViewerBaseVM vm = (x as ViewerBaseVM); return(vm.IsContextMenuEnabled); }, ExecuteDelegate = (x) => { ViewerBaseVM vm = (x as ViewerBaseVM); if (vm.IsContextMenuEnabled) { Point pt = UITools.GetScreenMousePosition(); switch (vm.ContextMenu(pt)) { case "open": if (ExpandCommand != null) { ExpandCommand.Execute(vm); } break; case "rename": if (RenameCommand != null) { RenameCommand.Execute(vm); } break; case "refresh": if (RefreshCommand != null) { RefreshCommand.Execute(vm); } break; } } } }; RefreshCommand = new SimpleCommand() { ExecuteDelegate = (x) => { Refresh(); } }; //ExpandCommand = new SimpleCommand() //{ // CanExecuteDelegate = // (x) => // { // ViewerBaseViewModel<FI, DI, FSI> vm = (x as ViewerBaseViewModel<FI, DI, FSI>); // return vm == null ? false : vm.CanExpand; // }, // ExecuteDelegate = // (x) => // { // ViewerBaseViewModel<FI, DI, FSI> vm = (x as ViewerBaseViewModel<FI, DI, FSI>); // vm.Expand(); // } //}; }
protected override void ChangeCurrentBrowserViewModel(ViewerBaseVM viewModel) { ChangeCurrentBrowserViewModel(viewModel, true); }