public static void DoRecursiveEl(EA.Repository rep, EA.Element el, SetElement setEl, SetDiagram setDia, string[] s)
 {
     // perform
     setEl(rep, el, s);
     //run all elements
     foreach (EA.Element elTrgt in el.Elements)
     {
         DoRecursiveEl(rep, elTrgt, setEl, setDia, s);
     }
 }
        public static void DoRecursivePkg(Repository rep, EA.Package pkg, SetPackage setPkg,
                                          SetElement setEl, SetDiagram setDia, string[] parameterStrings, ChangeScope changeScope)
        {
            // Change package
            setPkg?.Invoke(rep, pkg, parameterStrings);

            // only the package itself
            if (changeScope == ChangeScope.Item)
            {
                return;
            }

            // perform diagrams of package
            foreach (EA.Diagram dia in pkg.Diagrams)
            {
                if (dia != null)
                {
                    setDia?.Invoke(rep, dia, parameterStrings);
                }
            }
            // run elements of package
            foreach (EA.Element el in pkg.Elements)
            {
                DoRecursiveEl(rep, el, setEl, setDia, parameterStrings, changeScope);
            }

            // run packages of package
            if (changeScope != ChangeScope.Item)
            {
                if (changeScope == ChangeScope.Package)
                {
                    // inside package only the items
                    changeScope = ChangeScope.Item;
                }
                foreach (EA.Package pkgTrgt in pkg.Packages)
                {
                    DoRecursivePkg(rep, pkgTrgt, setPkg, setEl, setDia, parameterStrings, changeScope);
                }
            }
        }
        public static void DoRecursivePkg(EA.Repository rep, EA.Package pkg, SetPackage setPkg, SetElement setEl, SetDiagram setDia, string[] s)
        {
            // perform package
            setPkg?.Invoke(rep, pkg, s);

            // perform diagrams of package
            foreach (EA.Diagram dia in pkg.Diagrams)
            {
                if (dia != null) setDia(rep, dia, s);
            }
            // run elements of package
            foreach (EA.Element el in pkg.Elements)
            {
                if (setEl != null) DoRecursiveEl(rep, el, setEl, setDia, s);
            }
            
            // run packages of package
            foreach (EA.Package pkgTrgt in pkg.Packages)
            {
                DoRecursivePkg(rep, pkgTrgt, setPkg, setEl, setDia, s);
            }
        }
Exemplo n.º 4
0
 public static void DoRecursiveEl(EA.Repository rep, EA.Element el, SetElement setEl, SetDiagram setDia, string[] s)
 {
     // perform
     setEl(rep, el, s);
     //run all elements
     foreach (EA.Element elTrgt in el.Elements)
     {
         DoRecursiveEl(rep, elTrgt, setEl, setDia, s);
     }
 }
Exemplo n.º 5
0
        public static void DoRecursivePkg(EA.Repository rep, EA.Package pkg, SetPackage setPkg, SetElement setEl, SetDiagram setDia, string[] s)
        {
            // perform package
            setPkg?.Invoke(rep, pkg, s);

            // perform diagrams of package
            foreach (EA.Diagram dia in pkg.Diagrams)
            {
                if (dia != null)
                {
                    setDia(rep, dia, s);
                }
            }
            // run elements of package
            foreach (EA.Element el in pkg.Elements)
            {
                if (setEl != null)
                {
                    DoRecursiveEl(rep, el, setEl, setDia, s);
                }
            }

            // run packages of package
            foreach (EA.Package pkgTrgt in pkg.Packages)
            {
                DoRecursivePkg(rep, pkgTrgt, setPkg, setEl, setDia, s);
            }
        }
        /// <summary>
        /// Run the delegates for Element and Diagram for the current element.
        /// - changeScope.Item   Only Element itself and Diagrams of element, not beneath element
        /// - changeScope...     Element and all beneath Element
        /// </summary>
        /// <param name="rep"></param>
        /// <param name="el"></param>
        /// <param name="setEl"></param>
        /// <param name="setDia"></param>
        /// <param name="parameterStrings"></param>
        /// <param name="changeScope"></param>
        public static void DoRecursiveEl(Repository rep, EA.Element el, SetElement setEl, SetDiagram setDia,
                                         string[] parameterStrings, ChangeScope changeScope)
        {
            // perform change for element
            setEl?.Invoke(rep, el, parameterStrings);

            // perform changes for diagrams beneath element
            foreach (EA.Diagram dia in el.Diagrams)
            {
                if (dia != null)
                {
                    setDia?.Invoke(rep, dia, parameterStrings);
                }
            }
            // only the item itself, no recursion
            if (changeScope == ChangeScope.Item)
            {
                return;
            }

            //run all elements
            foreach (EA.Element elTrgt in el.Elements)
            {
                DoRecursiveEl(rep, elTrgt, setEl, setDia, parameterStrings, changeScope);
            }
        }