Пример #1
0
        public override void Execute(object parameter)
        {
            PSM_Class             psmClass = (PSM_Class)ActiveDiagramView.SelectedItems.Single();
            IncludeElementsDialog dialog   = new IncludeElementsDialog();

            dialog.Title             = "Select specializations";
            dialog.PrimaryContent    = "Select specializations";
            dialog.SecondaryContent  = "Select specializations of the class you wish to include in the diagram: ";
            dialog.NoElementsContent = "There are no specializations or all the specializations are already present in the diagram. ";
            IEnumerable <Element> alreadyPresent = psmClass.PSMClass.Specifications.Select(generalization => ((PSMClass)generalization.Specific).RepresentedClass).Cast <Element>();

            dialog.Items = psmClass.PSMClass.RepresentedClass.Specifications.Select(generalization => generalization.Specific).Cast <Element>().Except(alreadyPresent);
            if (dialog.ShowDialog() == true)
            {
                if (dialog.SelectedElements.Count > 0)
                {
                    ActiveDiagramView.Controller.BeginMacro();
                    foreach (Class specialization in dialog.SelectedElements)
                    {
                        psmClass.ClassController.AddClassSpecialization((PIMClass)specialization);
                    }
                    ActiveDiagramView.Controller.CommitMacro();
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Prepares the command that include hidden elements in the diagram
        /// </summary>
        private void IncludeDependentElements()
        {
            List <Element> candidates = ElementDependencies.FindHiddenElements(ElementRepresentations.PresentElements, Controller.ModelController.Model);

            IncludeElementsDialog dialog = new IncludeElementsDialog {
                NoElementsContent = "There are no hidden dependent elements on the diagram", Items = candidates
            };

            if (dialog.ShowDialog() == true && dialog.SelectedElements.Count > 0)
            {
                IncludeElementsCommand command = (IncludeElementsCommand)IncludeElementsCommandFactory.Factory().Create(Controller);
                foreach (Element element in dialog.SelectedElements)
                {
                    if (ElementRepresentations.CanRepresentElement(element))
                    {
                        command.IncludedElements.Add(element, ElementRepresentations.CreateNewViewHelper(element, Diagram));
                    }
                }
                command.Execute();
            }
        }