Exemplo n.º 1
0
        private void IdentifyGroupNodes()
        {
            groupNodes = new List <PSMElement>();
            foreach (PSMElement element in Diagram.DiagramElements.Keys.OfType <PSMElement>())
            {
                PSMClass psmClass = element as PSMClass;
                if (psmClass == null)
                {
                    continue;
                }
                if (!psmClass.EncompassesContentForParentSignificantNode() &&
                    !psmClass.EncompassesAttributesForParentSignificantNodeOrSelf())
                {
                    continue;
                }

                if (!psmClass.HasElementLabel)
                {
                    groupNodes.Add(element);
                    continue;
                }
                if (changesByTarget.ContainsKey(psmClass))
                {
                    ClassElementNameChange elc =
                        (ClassElementNameChange)
                        changesByTarget[psmClass].FirstOrDefault(
                            change => change is ClassElementNameChange && change.Element == psmClass);
                    if (elc != null && elc.ElementLabelAdded)
                    {
                        groupNodes.Add(element);
                        continue;
                    }
                }
            }
        }