/// <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); } } }
/// <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); } } }