Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
        }