Пример #1
0
        public static EAAPI.Element AddEmbeddedElement(this EAAPI.Element parent, EAAPI.Repository repository,
                                                       string name, string type)
        {
            EAAPI.Element result = null;

            if (string.IsNullOrEmpty(name))
            {
                name = "empty";
            }

            if (parent.Type == "Package")
            {
                EAAPI.Package package = repository.GetPackageByGuid(parent.ElementGUID) as EAAPI.Package;
                result = package.AddElement(name, type);
            }
            else
            {
                EAAPI.Element newElement = (EAAPI.Element)parent.Elements.AddNew(name, type);
                if (!newElement.Update())
                {
                    Debug.WriteLine(newElement.GetLastError());
                }
                parent.Elements.Refresh();

                result = newElement;
            }

            return(result);
        }
        public static EAAPI.Element AddElement(this EAAPI.Package parentPackage, string name, string type)
        {
            EAAPI.Element newElement = (EAAPI.Element)parentPackage.Elements.AddNew(name, type);

            newElement.Update();
            parentPackage.Elements.Refresh();
            parentPackage.Element.Refresh();

            return(newElement);
        }
        public static EAAPI.Package GetModelPackage(this EAAPI.Package package, EAAPI.Repository repository)
        {
            EAAPI.Package result = package;

            while (result.ParentID != 0)
            {
                result = repository.GetPackageByID(result.ParentID);
            }
            return(result);
        }
 public static EAAPI.Package GetChildPackageByNameAndStereotype(this EAAPI.Package parent, string name, string stereotype)
 {
     for (short i = 0; i < parent.Packages.Count; i++)
     {
         EAAPI.Package p = (EAAPI.Package)parent.Packages.GetAt(i);
         if (p.StereotypeEx == stereotype && p.Name == name)
         {
             return(p);
         }
     }
     return(null);
 }
 public static EAAPI.Package GetChildPackageByStereotype(this EAAPI.Package parent, string stereotype)
 {
     for (short i = 0; i < parent.Packages.Count; i++)
     {
         EAAPI.Package package = (EAAPI.Package)parent.Packages.GetAt(i);
         if (package.StereotypeEx == stereotype)
         {
             return(package);
         }
     }
     return(null);
 }
        public static EAAPI.Element AddEndNode(this EAAPI.Package parent)
        {
            EAAPI.Element result = (EAAPI.Element)parent.Elements.AddNew("End", "StateNode");

            result.Subtype = 101;

            result.Update();

            parent.Elements.Refresh();
            parent.Element.Refresh();
            return(result);
        }
        public static List <EAAPI.Package> GetChildPackagesByStereotype(this EAAPI.Package parent, string stereotype)
        {
            List <EAAPI.Package> result = new List <EAAPI.Package>();

            for (short i = 0; i < parent.Packages.Count; i++)
            {
                EAAPI.Package package = (EAAPI.Package)parent.Packages.GetAt(i);
                if (package.StereotypeEx == stereotype)
                {
                    result.Add(package);
                }
            }
            return(result);
        }
Пример #8
0
        public static void DeletePackage(this EAAPI.Repository repository, EAAPI.Package package)
        {
            EAAPI.Package parent = repository.GetPackageByID(package.ParentID);

            for (int i = 0; i < parent.Packages.Count; i++)
            {
                EAAPI.Package actP = (EAAPI.Package)parent.Packages.GetAt((short)i);
                if (actP.PackageID == package.PackageID)
                {
                    parent.Packages.Delete((short)i);
                    break;
                }
            }
            parent.Update();
            //Repository.RefreshModelView(parent.PackageID);
        }
        public static EAAPI.Diagram AddDiagram(this EAAPI.Package package, string diagramType)
        {
            EAAPI.Diagram diagram = (EAAPI.Diagram)package.Diagrams.AddNew(package.Name, diagramType);

            diagram.ShowDetails = 0;

            if (!diagram.Update())
            {
                Debug.WriteLine(diagram.GetLastError());
            }
            if (!package.Update())
            {
                Debug.WriteLine(package.GetLastError());
            }

            return(diagram);
        }
Пример #10
0
        public static EAAPI.Element Copy(this EAAPI.Element source, EAAPI.Package targetPackage)
        {
            EAAPI.Element targetElement = (EAAPI.Element)targetPackage.Elements.AddNew(source.Name, source.Type);

            targetElement.ClassifierID = source.ClassifierID;
            targetElement.Stereotype   = source.Stereotype;

            if (source.Type == "Part")
            {
                targetElement.PropertyType = source.PropertyType;
            }

            /*
             * if (source.Type == "Action")
             * {
             *  for (int i = 0; i < source.Elements.Count; i++)
             *  {
             *      EA.Element sourceEmbeddedEl = (EA.Element) source.Elements.GetAt((short)i);
             *      EA.Element embeddedEl = (EA.Element) el.Elements.AddNew(sourceEmbeddedEl.Name, sourceEmbeddedEl.Type);
             *      embeddedEl.ClassfierID = sourceEmbeddedEl.ClassfierID;
             *      embeddedEl.Stereotype = sourceEmbeddedEl.Stereotype;
             *
             *      embeddedEl.Update();
             *      el.Elements.Refresh();
             *  }
             * }
             */

            // copy tagged values
            for (short i = 0; i < source.TaggedValues.Count; i++)
            {
                EAAPI.TaggedValue sourceTag = (EAAPI.TaggedValue)source.TaggedValues.GetAt(i);
                EAAPI.TaggedValue targetTag = (EAAPI.TaggedValue)targetElement.TaggedValues.AddNew(sourceTag.Name, sourceTag.Value);
                targetTag.Update();
            }

            targetElement.TaggedValues.Refresh();

            targetElement.Update();


            targetPackage.Elements.Refresh();
            targetPackage.Element.Refresh();

            return(targetElement);
        }
Пример #11
0
        /// <summary>
        ///
        /// </summary>
        /// <param name=""></param>
        /// <param name="repository"></param>
        /// <param name="element"></param>
        /// <returns>The package ID.</returns>
        public static int DeleteElement(this EAAPI.Repository repository, EAAPI.Element element)
        {
            EAAPI.Package parentPackage = repository.GetPackageForElement(element);

            for (int i = 0; i < parentPackage.Elements.Count; i++)
            {
                EAAPI.Element el = (EAAPI.Element)parentPackage.Elements.GetAt((short)i);
                if (el.ElementID == element.ElementID)
                {
                    parentPackage.Elements.Delete((short)i);
                    break;
                }
            }
            parentPackage.Elements.Refresh();
            parentPackage.Update();

            return(parentPackage.PackageID);
        }
        public static EAAPI.Package AddChildPackage(this EAAPI.Package parentPackage, string name)
        {
            // avoid null value for package name
            string packageName = "_UNDEFINED_";

            if (name != null)
            {
                packageName = name;
            }

            EAAPI.Package package = (EAAPI.Package)parentPackage.Packages.AddNew(packageName, "Nothing");

            if (!package.Update())
            {
                Debug.WriteLine(package.GetLastError());
            }
            parentPackage.Packages.Refresh();

            return(package);
        }