コード例 #1
0
 public ExecuteFileOperationEventArgs(FileOperation action, IFileListPaneViewModel sourcePane, IFileListPaneViewModel targetPane, IEnumerable <FileSystemItem> items)
 {
     Action     = action;
     SourcePane = sourcePane;
     TargetPane = targetPane;
     Items      = items;
 }
コード例 #2
0
 public void Delete(IFileListPaneViewModel sourcePane, IEnumerable <FileSystemItem> queue)
 {
     SourcePane = sourcePane;
     TargetPane = null;
     AsyncJob(() => SourcePane.PopulateQueue(FileOperation.Delete, queue),
              q => InitializeTransfer(q, FileOperation.Delete),
              PopulationError);
 }
コード例 #3
0
        private void OnExecuteFileOperation(FileOperation action, IFileListPaneViewModel sourcePane, IFileListPaneViewModel targetPane, IEnumerable <FileSystemItem> items)
        {
            switch (action)
            {
            case FileOperation.Copy:
                _transferManager.Copy(sourcePane, targetPane, items);
                break;

            case FileOperation.Move:
                _transferManager.Move(sourcePane, targetPane, items);
                break;

            case FileOperation.Delete:
                _transferManager.Delete(sourcePane, items);
                break;
            }
        }
コード例 #4
0
        private void OnCanExecuteFileOperation(CanExecuteFileOperationEventArgs e)
        {
            var source = e.Sender as IFileListPaneViewModel;
            IFileListPaneViewModel target = null;

            if (e.Sender == LeftPane)
            {
                target = RightPane as IFileListPaneViewModel;
            }
            if (e.Sender == RightPane)
            {
                target = LeftPane as IFileListPaneViewModel;
            }

            switch (e.Action)
            {
            case FileOperation.Copy:
                if (!CanExecuteCopyCommand(source, target))
                {
                    e.Cancelled = true;
                }
                break;

            case FileOperation.Move:
                if (!CanExecuteMoveCommand(source, target))
                {
                    e.Cancelled = true;
                }
                break;

            case FileOperation.Delete:
                if (!CanExecuteDeleteCommand(source))
                {
                    e.Cancelled = true;
                }
                break;
            }
        }
コード例 #5
0
 public TransferFinishedEventArgs(object sender, IFileListPaneViewModel source, IFileListPaneViewModel target) : base(sender)
 {
     Source = source;
     Target = target;
 }
コード例 #6
0
 private bool CanExecuteMoveCommand(IFileListPaneViewModel sourcePane, IFileListPaneViewModel targetPane)
 {
     return(targetPane != null && sourcePane != null && sourcePane.HasValidSelection && !sourcePane.IsBusy &&
            !targetPane.IsBusy && !targetPane.IsReadOnly && !sourcePane.IsReadOnly && !sourcePane.IsInEditMode);
 }