Exemplo n.º 1
0
        /// <summary>
        /// PasteCommand can execute.
        /// </summary>
        private bool PasteCommand_CanExecute()
        {
            List <ModelElement> modelElements = new List <ModelElement>();

            if (this.SelectedItem is ModelTreeViewModel)
            {
                foreach (BaseModelElementViewModel vm in this.ModelTreeViewModel.SelectedItems)
                {
                    if (vm.GetHostedElement() == null)
                    {
                        continue;
                    }

                    modelElements.Add(vm.GetHostedElement());
                }
            }
            else if (this.SelectedItem is DiagramViewModel)
            {
                foreach (BaseModelElementViewModel vm in this.DiagramViewModel.SelectedItems)
                {
                    if (vm.GetHostedElement() == null)
                    {
                        continue;
                    }

                    modelElements.Add(vm.GetHostedElement());
                }
            }

            if (modelElements.Count == 0)
            {
                modelElements.Add(this.ModelContext);
            }

            if (modelElements.Count == 1)
            {
                try
                {
                    System.Windows.IDataObject idataObject = System.Windows.Clipboard.GetDataObject();
                    if (idataObject != null)
                    {
                        CopyAndPasteOperations.ProcessMoveMode(idataObject);
                        return(CopyAndPasteOperations.CanExecutePaste(modelElements[0], idataObject));
                    }
                }
                catch { }

                return(false);
            }

            return(false);
        }
        /// <summary>
        /// Paste command can execute.
        /// </summary>
        public virtual bool OnPasteCommandCanExecute()
        {
            try
            {
                System.Windows.IDataObject idataObject = System.Windows.Clipboard.GetDataObject();
                if (this.ViewModelStore != null)
                {
                    if (this.EventManager != null)
                    {
                        CopyAndPasteOperations.ProcessMoveMode(this.EventManager, idataObject);
                    }
                }
                else
                {
                }
                if (idataObject != null)
                {
                    return(CopyAndPasteOperations.CanExecutePaste(this.Element, idataObject));
                }
            }
            catch { }

            return(false);
        }