public void DoCut(EditorCanvas editorCanvas) { if (editorCanvas == null) { return; } if (editorCanvas.FocusManager.IsEditorFocused) { var focus = editorCanvas.FocusManager.Focus as StyledTextFocus; if (focus != null) { focus.Cut(); } } else if (editorCanvas.CanCut()) { var targets = editorCanvas.SelectionManager.SelectedEditors; var req = new CopyRequest(targets); var bundle = new EditorBundle(targets); var copy = bundle.GetGroupCommand(req); if (copy == null) { return; } var remove = bundle.GetCompositeCommand(new RemoveRequest()); if (remove == null) { return; } var cmd = copy.Chain(remove); editorCanvas.CommandExecutor.Execute(cmd); } }
private ICommand GetCutCommand(IEnumerable <IEditor> targets) { var bundle = new EditorBundle(targets); var req = new CopyRequest(targets); var copy = bundle.GetGroupCommand(req); var remove = bundle.GetCompositeCommand(new RemoveRequest()); return(copy.Chain(remove)); }
private ICommand GetCutCommand() { var targets = _owner.SelectionManager.SelectedEditors; var req = new CopyRequest(targets); var list = new EditorBundle(targets); var copy = list.GetGroupCommand(req); if (copy == null) { return(null); } var remove = list.GetCompositeCommand(new RemoveRequest()); if (remove == null) { return(null); } return(copy.Chain(remove)); }
// ======================================== // method // ======================================== protected ToolStripMenuItem CreateCutInNewMemo() { var ret = new ToolStripMenuItem("切り出す(&C)"); ret.Click += (sender, ev) => { using (var form = new CreateMemoForm()) { var app = MemopadApplication.Instance; form.Font = app.Theme.CaptionFont; form.MemoTitle = "新しいノート"; form.ReplaceWithLinkRadioButton.Enabled = false; if (form.ShowDialog() == DialogResult.OK) { var site = _owner.Host.Site; var targets = GetCutInNewMemoTargets(); if (targets != null && targets.Any()) { var cloneds = site.EditorCanvas.CloneEditors(targets); app.ActivateMainForm(); var info = app.CreateMemo(form.MemoTitle); if (form.OriginalModification == CreateMemoForm.OriginalModificationKind.Remove) { var bundle = new EditorBundle(targets); var remove = bundle.GetCompositeCommand(new RemoveRequest()); site.CommandExecutor.Execute(remove); } var pageContent = app.MainForm.FindPageContent(info); var targetCanvas = pageContent.EditorCanvas; var target = targetCanvas.RootEditor.Children.First(); var command = new AddEditorsCommand(target, cloneds, Size.Empty); targetCanvas.CommandExecutor.Execute(command); } } } }; return(ret); }