/// <summary>
        /// Paste command executed.
        /// </summary>
        public virtual void OnPasteCommandExecuted()
        {
            using (new WaitCursor())
            {
                try
                {
                    ValidationResult result = CopyAndPasteOperations.ExecutePaste(this.Element);
                    if (result != null)
                    {
                        List <BaseErrorListItemViewModel> errors = new List <BaseErrorListItemViewModel>();
                        foreach (IValidationMessage msg in result)
                        {
                            errors.Add(new StringErrorListItemViewModel(this.ViewModelStore,
                                                                        msg.MessageId, ModelErrorListItemViewModel.ConvertCategory(msg.Type), msg.Description));
                        }

                        if (errors.Count > 0)
                        {
                            // clear error list
                            this.EventManager.GetEvent <ErrorListClearItems>().Publish(this);

                            // notify of change
                            this.EventManager.GetEvent <ErrorListAddItems>().Publish(errors);
                        }
                    }
                }
                catch (System.Exception ex)
                {
                    this.GlobalServiceProvider.Resolve <IMessageBoxService>().ShowError("Pasting failed: " + ex.Message);
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// PasteCommand executed.
        /// </summary>
        private void PasteCommand_Executed()
        {
            Collection <ModelElement> modelElements = new Collection <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);
            }

            using (new WaitCursor())
            {
                try
                {
                    ValidationResult result = CopyAndPasteOperations.ExecutePaste(modelElements[0]);
                    if (result != null)
                    {
                        string errors = string.Empty;
                        foreach (IValidationMessage msg in result)
                        {
                            errors += msg.Type + " " + msg.MessageId + ": " + msg.Description;
                        }

                        if (!String.IsNullOrEmpty(errors))
                        {
                            this.GlobalServiceProvider.Resolve <IMessageBoxService>().ShowError("Pasting failed: " + errors);
                        }
                    }
                }
                catch (System.Exception ex)
                {
                    this.GlobalServiceProvider.Resolve <IMessageBoxService>().ShowError("Pasting failed: " + ex.Message);
                }
            }
        }