예제 #1
0
 public override string ContextMenu(Point pos)
 {
     return(_profile.ShowContextmenu(pos, SelectedModels.ToArray()));
 }
예제 #2
0
        protected override void setupCommands()
        {
            base.setupCommands();


            CopyCommand = new SimpleCommand()
            {
                CanExecuteDelegate = (x) =>
                {
                    return(SelectedViewModels != null && SelectedViewModels.Count > 0);
                },
                ExecuteDelegate = (x) =>
                {
                    try
                    {
                        _profile.CopyToClipboard(SelectedModels.ToArray());
                    }
                    catch (Exception ex)
                    {
                        new WPFMessageBoxService().ShowError(ex.Message);
                    }
                }
            };

            NewFolderCommand = new SimpleCommand()
            {
                CanExecuteDelegate = (x) =>
                {
                    return(!EmbeddedDirectoryViewModel.EmbeddedDirectoryModel.IsReadonly);
                },
                ExecuteDelegate = (x) =>
                {
                    try
                    {
                        NewFolder("New Folder", x as string);
                    }
                    catch (Exception ex)
                    {
                        new WPFMessageBoxService().ShowError(ex.Message);
                    }
                }
            };



            PasteCommand = new SimpleCommand()
            {
                CanExecuteDelegate = (x) =>
                {
                    return(System.Windows.Clipboard.ContainsFileDropList() &&
                           EmbeddedDirectoryViewModel.EmbeddedDirectoryModel.IsSupportAdd);
                },
                ExecuteDelegate = (x) =>
                {
                    try
                    {
                        _profile.PasteFromClipboard(EmbeddedDirectoryViewModel.EmbeddedDirectoryModel);
                    }
                    catch (Exception ex)
                    {
                        new WPFMessageBoxService().ShowError(ex.Message);
                    }
                }
            };

            DeleteCommand = new SimpleCommand()
            {
                CanExecuteDelegate = (x) =>
                {
                    if (SelectedViewModels != null && SelectedViewModels.Count > 0)
                    {
                        foreach (var vm in SelectedViewModels)
                        {
                            if (vm.EmbeddedModel.IsReadonly)
                            {
                                return(false);
                            }
                        }
                        return(true);
                    }
                    return(false);
                },
                ExecuteDelegate = (x) =>
                {
                    try
                    {
                        string caption = String.Format(Texts.strConfirmDelete,
                                                       SelectedViewModels.Count, SelectedViewModels.Count > 1 ? "s" : "");

                        if (new WPFMessageBoxService().ShowYesNo(caption, CustomDialogIcons.Question)
                            == CustomDialogResults.Yes)
                        {
                            _profile.Delete(SelectedModels.ToArray(), EmbeddedDirectoryViewModel.EmbeddedDirectoryModel);
                        }
                    }
                    catch (Exception ex)
                    {
                        new WPFMessageBoxService().ShowError(ex.Message);
                    }
                }
            };

            PropertiesCommand = new SimpleCommand()
            {
                CanExecuteDelegate = x =>
                {
                    return(SelectedModels != null && SelectedModels.Count > 0);
                },
                ExecuteDelegate = x =>
                {
                    System.Windows.Point position = Mouse.GetPosition(null);
                    _profile.ShowProperties(position, SelectedModels.ToArray());
                }
            };

            SelectAllCommand = new SimpleCommand()
            {
                ExecuteDelegate = (x) =>
                {
                    if (SelectedViewModels == null ||
                        SelectedViewModels.Count < EmbeddedDirectoryViewModel.SubDirectories.Count)
                    {
                        foreach (var item in EmbeddedDirectoryViewModel.SubEntries)
                        {
                            item.IsSelected = true;
                        }
                        SelectedViewModels =
                            new List <EntryViewModel <FI, DI, FSI> >(from vm in
                                                                     EmbeddedDirectoryViewModel.SubEntries
                                                                     select vm);
                    }
                    else
                    {
                        foreach (var item in EmbeddedDirectoryViewModel.SubEntries)
                        {
                            item.IsSelected = false;
                        }
                        SelectedViewModels = new List <EntryViewModel <FI, DI, FSI> >();
                    }
                }
            };
        }