public void LoadDirectories() { Directories = new ObservableCollection <DirectoryViewModel>(); var dict = SerializationHelper.Current.Data.GetValueOrDefault(SerializationKey) as Dictionary <string, object>; if (dict != null) { var paths = (string[])dict["Paths"]; var views = (DirectoryViewType[])dict["Views"]; System.Diagnostics.Debug.Assert(paths.Length == views.Length); for (int i = 0; i < paths.Length; i++) { var view = Instances.Get <DirectoryViewModel>(); view.ViewType = views[i]; if (Directory.Exists(paths[i])) { view.LoadDirectory(paths[i]); } else { view.LoadDirectory(IOHelper.GetDefaultPath()); } Directories.Add(view); } } else { var view = Instances.Get <DirectoryViewModel>(); view.LoadDirectory(IOHelper.GetDefaultPath()); Directories.Add(view); } Directories.Add(DirectoryViewModel.CreateAddTabViewModel()); }
private void ExecuteCloseTab(DirectoryViewModel parameter) { if (parameter == ActiveView) { var closingIndex = Directories.IndexOf(parameter); var newActiveView = closingIndex == 0 ? Directories[1] : Directories[closingIndex - 1]; ActiveView = newActiveView; } Directories.Remove(parameter); }
private void RenameSingleItem(DirectoryViewModel active) { var renameDialog = Instances.Get<RenameDialog>(); renameDialog.ToRename = active.SelectedItem.FullName; if (renameDialog.ShowModalDialog()) { //active.UnselectAll();//need because rename operation works strange when selecting new item after finishing operation var renameOp = new RenameOperation(active.SelectedItem, renameDialog.NewName, active.FileSystem); OperationManager.ExecuteOperation(renameOp); } }
private void RenameMultiItems(DirectoryViewModel active) { bool dirChange = ((IDirectoryViewItem)active.SelectedItems[0]).IsDirectory; if (!active.SelectedItems.Cast<IDirectoryViewItem>().All(x => x.IsDirectory == dirChange)) MessageService.ShowError("Naraz można zmienić nazwy tylko jednego typu obiektów - plików lub katalogów"); var dialog = new MultiRenameDialog(active.SelectedItems); if (dialog.ShowModalDialog()) { var operation = new MultiRenameOperation(dialog.Items, MainViewModel.GetSelectedItems(), active.FileSystem); OperationManager.ExecuteOperation(operation); } }
private bool CanExecuteCloseTab(DirectoryViewModel parameter) { return(Directories.Count > 2); }
private bool CanExecuteCloseTab(DirectoryViewModel parameter) { return Directories.Count > 2; }