Esempio n. 1
0
        private void button1_Click(object sender, EventArgs e)
        {
            Enabled = false;
            Close();

            string maxFile  = textBox1.Text;
            string schFile  = textBox2.Text;
            string svrlFile = textBox3.Text;

            // Update Package SchematronFile
            EA.TaggedValue tvSchematronFile = GetSchematronTaggedValue(repository);
            tvSchematronFile.Value = schFile;
            tvSchematronFile.Update();

            // Create MAX file
            MAX_EA.MAXExporter3 exporter = new MAX_EA.MAXExporter3();
            EA.ObjectType       type     = repository.GetTreeSelectedItemType();
            if (type == EA.ObjectType.otPackage)
            {
                EA.Package package = repository.GetTreeSelectedPackage();
                exporter.exportPackage(repository, package, maxFile);
            }
            else if (type == EA.ObjectType.otDiagram)
            {
                EA.Diagram diagram = (EA.Diagram)repository.GetTreeSelectedObject();
                exporter.exportDiagram(repository, diagram, maxFile);
            }

            // Execute Transform
            issues = new MAXValidator().validate(repository, maxFile, schFile, svrlFile);
        }
Esempio n. 2
0
 /// <summary>
 /// Set Tagged Value with 'Name' to a value. If tagged value doesn't exists a new one is created.
 /// </summary>
 /// <param name="el"></param>
 /// <param name="name"></param>
 /// <param name="value"></param>
 /// <returns></returns>
 public static EA.TaggedValue SetTaggedValue(EA.Element el, string name, string value)
 {
     EA.TaggedValue tg = AddTaggedValue(el, name);
     tg.Value = value;
     tg.Update();
     return(tg);
 }
        public void LoadFromRepository(EA.Repository repository)
        {
            element = EAHelper.GetCurrentElement(repository);

            if (element != null)
            {
                field = element.TaggedValuesEx.GetByName("Markdown");

                if(field == null)
                {
                    field = element.TaggedValuesEx.AddNew("Markdown", "TaggedValue");
                    field.Value = "<memo>";
                    field.Update();
                }

                style = element.TaggedValuesEx.GetByName("MarkdownStyle");
                if(style == null)
                {
                    style = element.TaggedValuesEx.AddNew("MarkdownStyle", "TaggedValue");
                    style.Value = ((MarkdownStyle)this.toolstripStyleBox.SelectedItem).CSSLink;
                    style.Update();
                }

                skin = element.TaggedValuesEx.GetByName("PrettifySkin");
                if (skin == null)
                {
                    skin = element.TaggedValuesEx.AddNew("PrettifySkin", "TaggedValue");
                    skin.Value = this.toolStripSkinBox.SelectedItem.ToString();
                    skin.Update();
                }
            }

            this.markdownTextBox.Text = field.Notes;
            //UpdateWebBrowser();
        }
Esempio n. 4
0
        /// <summary>
        /// Sets a normal EA.Package as an UMM view package. This means, that a stereotype is
        /// applied and also the taggedvalues, which every "UMM view package" inherits
        /// from "BusinessLibrary" from UMM base. Additionally a package diagram is created if
        /// the package is stereotyped as BDV, BRV or BTV
        /// </summary>
        /// <param name="package">the EA.Package which should be modified to an UMM "view package"</param>
        /// <param name="stereotype">the stereotype, which should be applied</param>
        /// <returns>a reference to the modified package</returns>
        private EA.Package populateUMMView(EA.Package package, UMM stereotype)
        {
            // set the stereotype
            package.Element.Stereotype = stereotype.ToString();
            // add the tagged values
            foreach (string tv_string in Enum.GetNames(typeof(BusinessLibraryTV)))
            {
                EA.TaggedValue tv = (EA.TaggedValue)package.Element.TaggedValues.AddNew(tv_string, "");
                tv.Update();
            }

            /* if the stereotype is BRV or BCV the package is own of the core views.
             * then for a more convinient modeling, a package diagram is added */
            if (stereotype.Equals(UMM.bRequirementsV) || stereotype.Equals(UMM.bChoreographyV))
            {
                EA.Diagram diagram = (EA.Diagram)package.Diagrams.AddNew(package.Name, EA_Element.Package.ToString());
                diagram.ShowDetails = 0;
                diagram.Update();
            }
            //For the BIV we add a class diagram
            else if (stereotype.Equals(UMM.bInformationV))
            {
                EA.Diagram diagram = (EA.Diagram)package.Diagrams.AddNew(package.Name, EA_Element.Class.ToString());
                diagram.ShowDetails = 0;
                diagram.Update();
            }

            package.Update();
            return(package);
        }
Esempio n. 5
0
        private EA.Element CreateChildElement(CsvReader csv, EA.Package parent, String polarionID, Dictionary <String, EA.Element> map)
        {
            if (map.ContainsKey(polarionID))
            {
                EA.Element req = map[polarionID];

                req.Name  = csv["Title"];
                req.Notes = csv["Description"] + "\r\n\r\n\r\nMotivation\r\n" + csv["Motivation"] + "\r\n\r\n\r\nNotes\r\n" + csv["Note"];
                // No need to touch polarion ID

                req.PackageID = parent.PackageID;
                req.ParentID  = 0; // Directly owned by this Package
                // TODO: Need to fiddle with parents Elements list?

                req.Update();

                map.Remove(polarionID);

                return(req);
            }
            else
            {
                EA.Element newReq = (EA.Element)parent.Elements.AddNew(csv["Title"], "Requirement");
                newReq.Notes = csv["Description"] + "\r\n\r\n\r\nMotivation\r\n" + csv["Motivation"] + "\r\n\r\n\r\nNotes\r\n" + csv["Note"];

                EA.TaggedValue polID = (EA.TaggedValue)newReq.TaggedValues.AddNew("PolarionID", "String");
                polID.Value = polarionID;
                polID.Update();

                newReq.Update();

                return(newReq);
            }
        }
        /// <summary>
        /// Create Tagged Value with 'Name'. It return the TaggedValue
        /// </summary>
        /// <param name="el"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static EA.TaggedValue CreateTaggedValue(EA.Element el, string name)
        {
            EA.TaggedValue tg = Add(el, name);
            tg.Update();

            return(tg);
        }
        public void RefreshWebBrowser()
        {
            element = EAHelper.GetCurrentElement(currentRepo);

            if (element != null)
            {
                field = element.TaggedValuesEx.GetByName("Markdown");

                if (field == null)
                {
                    field = element.TaggedValuesEx.AddNew("Markdown", "TaggedValue");
                    field.Value = "<memo>";
                    field.Update();
                }

                style = element.TaggedValuesEx.GetByName("MarkdownStyle");
                if (style == null)
                {
                    style = element.TaggedValuesEx.AddNew("MarkdownStyle", "TaggedValue");
                    style.Value = "";
                    style.Update();
                }

                skin = element.TaggedValuesEx.GetByName("PrettifySkin");
                if (skin == null)
                {
                    skin = element.TaggedValuesEx.AddNew("PrettifySkin", "TaggedValue");
                    skin.Value = "sunburst";
                    skin.Update();
                }
            }

            StringBuilder sb = new StringBuilder();
            sb.Append(String.Format("<link rel=\"stylesheet\" href=\"{0}\">", style.Value));

            string s = skin.Value;

            if (s != "default")
            {
                s = "?skin=" + s;
            }
            else
            {
                s = "";
            }

            string file = Path.GetTempPath() + "documentation.html";

            using (FileStream fs = File.Open(file, FileMode.Create))
            {
                StreamWriter writer = new StreamWriter(fs);
                writer.Write(Properties.Resources.HTMLHeader, sb.ToString(), s, md.Transform(field.Notes));
                writer.Flush();
            }

            this.webBrowser1.Navigate(file);
        }
Esempio n. 8
0
        /// <summary>
        /// AddInformationClass
        /// </summary>
        /// <param name="strPackageName"></param>
        /// <param name="strInfoClassName"></param>
        /// <param name="strInfoClassDescription"></param>
        private int AddInformationClass(EA.Package eaPackage, string strInfoClassName, string strInfoClassDescription, string strRequirements)
        {
            string strLogInfo = "Information Class: " + strInfoClassName;

            int iErrorCount = 0;

            EA.Element element1 = null;
            EAImporter.LogMsg(EAImporter.LogMsgType.Adding, strLogInfo);

            if (eaPackage == null)
            {
                EAImporter.LogError(EAImporter.LogErrorLevel.A, "cannot add infomation class- package does not exist " + strInfoClassName);
                iErrorCount++;
                return(iErrorCount);
            }

            if (m_InfoClasses[strInfoClassName] != null)
            {
                EAImporter.LogMsg(EAImporter.LogMsgType.Exists, strLogInfo);
                return(iErrorCount);
            }

            try
            {
                element1 = eaPackage.Elements.GetByName(strInfoClassName);
            }
            catch (Exception ex)
            {
                EAImporter.LogMsg(EAImporter.LogMsgType.MiscExceptions, ex.Message);
                // EAImporter.LogMsg(EAImporter.LogMsgType.MiscExceptions, m_Repository.Stereotypes.GetLastError() + " : " + ex.Message);
            }

            if (element1 == null)
            {
                element1       = eaPackage.Elements.AddNew(strInfoClassName, "Class");
                element1.Notes = strInfoClassDescription;
                element1.Update();

                EA.TaggedValue eaTgVal = element1.TaggedValues.AddNew("requirements", "TaggedValue");
                eaTgVal.Value = strRequirements;
                eaTgVal.Update();

                eaPackage.Elements.Refresh();
                EAImporter.LogMsg(EAImporter.LogMsgType.Added, strLogInfo);

                m_InfoClasses[strInfoClassName] = element1;
            }
            else
            {
                m_InfoClasses[strInfoClassName] = element1;

                EAImporter.LogMsg(EAImporter.LogMsgType.Exists, strLogInfo);
            }

            return(iErrorCount);
        }
        private bool Update(EA.TaggedValue tgdVl)
        {
            bool result = tgdVl.Update();

            if (result == false)
            {
                throw new Exception("Update Didn't work out properlly!!!");
            }
            return(result);
        }
Esempio n. 10
0
 public static void SetTaggedValue(EA.Element element, string name, string value, string notes = null)
 {
     DeleteTaggedValue(element, name);
     EA.TaggedValue tv = (EA.TaggedValue)element.TaggedValues.AddNew(name, "TaggedValue");
     tv.Value = value;
     if (notes != null)
     {
         tv.Notes = notes;
     }
     tv.Update();
 }
Esempio n. 11
0
 public static EA.TaggedValue setTaggedValueNotes(SQLRepository repository, EA.Package package, String name, String notes)
 {
     if (package.Element != null)
     {
         package.Element.TaggedValues.Refresh();
         EA.TaggedValue aTag = setTaggedValue(repository, package, name, "<memo>");
         aTag.Notes = notes;
         aTag.Update();
         return(aTag);
     }
     return(null);
 }
Esempio n. 12
0
 private EA.TaggedValue GetSchematronTaggedValue(EA.Repository Repository)
 {
     EA.Package     selectedPackage  = Repository.GetTreeSelectedPackage();
     EA.TaggedValue tvSchematronFile = (EA.TaggedValue)selectedPackage.Element.TaggedValues.GetByName(TV_MAX_SchematronFile);
     if (tvSchematronFile == null)
     {
         tvSchematronFile       = (EA.TaggedValue)selectedPackage.Element.TaggedValues.AddNew(TV_MAX_SchematronFile, "");
         tvSchematronFile.Value = defaultSchematronFile;
         tvSchematronFile.Update();
     }
     return(tvSchematronFile);
 }
Esempio n. 13
0
 private EA.Element createEAClass(EA.Package package, EAClass eAClass)
 {
     EA.Element element = package.Elements.AddNew(eAClass.Name, "Class");
     element.Stereotype = eAClass.StereoType;
     if (EnumUtil.checkInEnumValues(eAClass.StereoType, typeof(PlatformDataTypeEnum)))
     {
         element.Stereotype = DATA_TYPE;
         EA.TaggedValue taggedValue = element.TaggedValues.AddNew("IDLType", eAClass.StereoType);
         taggedValue.Update();
     }
     return(element);
 }
Esempio n. 14
0
 public static EA.TaggedValue setTaggedValueNotes(SQLRepository repository, EA.Element element, String name, String notes)
 {
     element.TaggedValues.Refresh();
     EA.Element actElement = element;
     if (actElement is SQLElement)
     {
         actElement = repository.GetOriginalRepository().GetElementByID(element.ElementID);
     }
     EA.TaggedValue aTag = setTaggedValue(repository, actElement, name, "<memo>");
     aTag.Notes = notes;
     aTag.Update();
     return(aTag);
 }
Esempio n. 15
0
 private void addTaggedValue(EA.Element element, string name, string value)
 {
     if (!string.IsNullOrEmpty(value))
     {
         EA.TaggedValue tv = (EA.TaggedValue)element.TaggedValues.AddNew(name, "TaggedValue");
         if (value.Length > 255)
         {
             value = "{truncated}" + value.Substring(0, 244);
         }
         tv.Value = value;
         tv.Update();
     }
 }
Esempio n. 16
0
        public bool exportPackage(EA.Repository Repository, EA.Package package, string fileName)
        {
            this.Repository = Repository;

            progress_max = 1;
            progress.setup(progress_max);
            progress.Show();

            Repository.EnableCache = true;
            // Add/update export metadata to the model
            ModelType model = new ModelType();

            model.exportDate = DateTime.Now.ToString();

            // Now export selected package
            objects       = new List <ObjectType>();
            relationships = new List <RelationshipType>();
            visitSelectedPackage(package.PackageID);

            model.objects       = objects.ToArray();
            model.relationships = relationships.ToArray();
            progress.Close();

            XmlWriterSettings settings = new XmlWriterSettings();

            settings.Indent       = true;
            settings.NewLineChars = "\n";
            XmlSerializer serializer = new XmlSerializer(typeof(ModelType));

            using (XmlWriter writer = XmlWriter.Create(fileName, settings))
            {
                serializer.Serialize(writer, model);
            }

            // Add/update export metadata to the package
            EA.TaggedValue tvExportDate = (EA.TaggedValue)package.Element.TaggedValues.GetByName("MAX::ExportDate");
            if (tvExportDate == null)
            {
                tvExportDate = (EA.TaggedValue)package.Element.TaggedValues.AddNew("MAX::ExportDate", "");
            }
            tvExportDate.Value = DateTime.Now.ToString();
            tvExportDate.Update();
            EA.TaggedValue tvExportFile = (EA.TaggedValue)package.Element.TaggedValues.GetByName("MAX::ExportFile");
            if (tvExportFile == null)
            {
                tvExportFile = (EA.TaggedValue)package.Element.TaggedValues.AddNew("MAX::ExportFile", "");
            }
            tvExportFile.Value = fileName;
            tvExportFile.Update();
            return(issues);
        }
Esempio n. 17
0
 private EA.TaggedValue GetXsltTaggedValue(EA.Repository Repository)
 {
     // N.B. Model doesnot support tagged values!
     EA.Package     modelPackage = (EA.Package)Repository.Models.GetAt(0);
     EA.Package     viewPackage  = (EA.Package)modelPackage.Packages.GetAt(0);
     EA.TaggedValue tvXsltFile   = (EA.TaggedValue)viewPackage.Element.TaggedValues.GetByName(TV_MAX_XSLTFile);
     if (tvXsltFile == null)
     {
         tvXsltFile       = (EA.TaggedValue)viewPackage.Element.TaggedValues.AddNew(TV_MAX_XSLTFile, "");
         tvXsltFile.Value = defaultXsltFile;
         tvXsltFile.Update();
     }
     return(tvXsltFile);
 }
Esempio n. 18
0
        /// <summary>
        /// Make a memo field out of the current TaggedValue
        /// </summary>
        /// <param name="el"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static EA.TaggedValue MakeMemo(EA.Element el, string name)
        {
            EA.TaggedValue tg    = Add(el, name);
            string         value = tg.Value;

            if (value.ToLower() == MemoString)
            {
                return(tg);
            }
            tg.Value = MemoString;
            tg.Notes = value;
            tg.Update();
            return(tg);
        }
Esempio n. 19
0
        public static void TaggedValueSet(EA.Element element, string tagName, string tagValue)
        {
            EA.TaggedValue tag = element.TaggedValues.GetByName(tagName);
            if (tag == null)
            {
                tag = element.TaggedValues.AddNew(tagName, tagValue);
            }
            else
            {
                tag.Value = tagValue;
            }

            tag.Update();
            //element.Update(); // is it needed?
        }
Esempio n. 20
0
        /// <summary>
        /// Set Tagged Value with 'Name' to a value. If tagged value doesn't exists a new one is created. If the
        /// </summary>
        /// <param name="el"></param>
        /// <param name="name"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public static EA.TaggedValue SetUpdate(EA.Element el, string name, string value)
        {
            EA.TaggedValue tg = Add(el, name);
            if (value.Length > 255)
            {
                tg.Value = MemoString;
                tg.Notes = value;
            }
            else
            {
                tg.Value = value;
            }
            tg.Update();

            return(tg);
        }
Esempio n. 21
0
        public bool exportPackage(EA.Repository Repository, EA.Package package)
        {
            string defaultFileName = Path.Combine(CurrentOutputPath, string.Format(@"{0}.max", package.Name));

            EA.TaggedValue tvExportFile = (EA.TaggedValue)package.Element.TaggedValues.GetByName("MAX::ExportFile");
            if (tvExportFile != null)
            {
                defaultFileName = tvExportFile.Value;
            }
            string fileName = showFileDialog(defaultFileName, false);

            if (fileName != String.Empty)
            {
                if (SelectedFilter == FILTER_MAX)
                {
                    return(new MAXExporter3().exportPackage(Repository, package, fileName));
                }
                else if (SelectedFilter == FILTER_EXCEL_DATASET)
                {
                    string xsltFile = Main.getAppDataFullPath(@"XML Transforms\max-to-excel-de.xslt");
                    string tmpFile  = fileName + ".tmp";
                    if (!new MAXExporter3().exportPackage(Repository, package, tmpFile))
                    {
                        tvExportFile = (EA.TaggedValue)package.Element.TaggedValues.GetByName("MAX::ExportFile");
                        if (tvExportFile == null)
                        {
                            tvExportFile = (EA.TaggedValue)package.Element.TaggedValues.AddNew("MAX::ExportFile", "");
                        }
                        tvExportFile.Value = fileName;
                        tvExportFile.Update();
                        return(filter(Repository, tmpFile, xsltFile, fileName));
                    }
                    else
                    {
                        return(true);
                    }
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Esempio n. 22
0
 public static EA.TaggedValue setTaggedValue(SQLRepository repository, EA.Element elem, String name, String value)
 {
     EA.Element element = elem;
     if (elem is SQLElement)
     {
         element = repository.GetOriginalRepository().GetElementByID(elem.ElementID);
     }
     element.TaggedValues.Refresh();
     EA.TaggedValue aTag = findTaggedValue(element, name);
     if (aTag == null)
     {
         aTag = (EA.TaggedValue)element.TaggedValues.AddNew(name, value);
     }
     aTag.Value = value;
     aTag.Update();
     return(aTag);
 }
Esempio n. 23
0
        /// <summary>
        /// Get Tagged Value with 'Name'. If tagged value doesn't exists than create a new one. Don't forget to write the value and update.
        /// </summary>
        /// <param name="el"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static EA.TaggedValue Add(EA.Element el, string name)
        {
            foreach (EA.TaggedValue taggedValue in el.TaggedValues)
            {
                if (taggedValue.Name == name)
                {
                    return(taggedValue);
                }
            }

            // create tagged value
            EA.TaggedValue tg = (EA.TaggedValue)el.TaggedValues.AddNew(name, "Tag");
            tg.Update();
            el.TaggedValues.Refresh();

            return(tg);
        }
        /// <summary>
        /// This methods tags a given Energistics class in order to properly generate:
        /// - its base class #include directive
        /// - its base class namespace
        /// This methods produces no effect if the Energistics class does not inherit or if
        /// its base class have no correspondinf fesapi class
        /// </summary>
        /// <param name="energisticsClass">An Energistics class</param>
        /// <param name="fesapiClass">Its corresponding fesapi class</param>
        /// <returns>the fesapi class corresponding to the Energistics base class; null if the
        /// Energistics class does not inherit of if its base class
        /// have no corresponding fesapi class</returns>
        private EA.Element inheritanceTagging(EA.Element energisticsClass, EA.Element fesapiClass)
        {
            EA.Element fesapiBaseClass = null;

            // we look for the fesapi class corresponding to the base class
            if (energisticsClass.BaseClasses.Count != 0)
            {
                // important note: we assume that energistics class inherits from 1 or 0 base class
                EA.Element energisticsBaseClass = energisticsClass.BaseClasses.GetAt(0);

                fesapiBaseClass = fesapiClassList.Find(c => c.Name.Equals(energisticsBaseClass.Name));
            }

            if (fesapiBaseClass != null)
            {
                // we set up the #include directive to be copied in the generated code
                string fesapiBaseClassPackageName = repository.GetPackageByID(fesapiBaseClass.PackageID).Name;
                string fesapiClassPackageName     = repository.GetPackageByID(fesapiClass.PackageID).Name;
                string fesapiIncludeTagValue      = "";
                if (fesapiBaseClassPackageName != fesapiClassPackageName) // if the fesapi class and fesapi base class belong to a different
                // package, we need to provide the relative path of the header file
                {
                    fesapiIncludeTagValue += fesapiBaseClassPackageName + "/";
                }
                fesapiIncludeTagValue += fesapiBaseClass.Name + ".h";

                // tagging the energistics class with the #include directive
                EA.TaggedValue fesapiIncludeTag = energisticsClass.TaggedValues.AddNew(Constants.fesapiBaseClassIncludeTagName, fesapiIncludeTagValue);
                if (!(fesapiIncludeTag.Update()))
                {
                    Tool.showMessageBox(repository, fesapiIncludeTag.GetLastError());
                }

                // tagging the energistics class with the fesapi base class namespace (that is to say the name of its parent package)
                EA.TaggedValue fesapiBaseClassNamespaceTag = energisticsClass.TaggedValues.AddNew("fesapiBaseClassNamespace", fesapiBaseClassPackageName);
                if (!(fesapiBaseClassNamespaceTag.Update()))
                {
                    Tool.showMessageBox(repository, fesapiBaseClassNamespaceTag.GetLastError());
                }

                energisticsClass.TaggedValues.Refresh();
            }

            return(fesapiBaseClass);
        }
Esempio n. 25
0
        private void go(bool openOutput)
        {
            Enabled = false;
            Close();

            string maxFile    = textBox1.Text;
            string xsltFile   = textBox2.Text;
            string outputFile = textBox3.Text;

            // Update project XSLTFile
            EA.TaggedValue tvXsltFile = GetXsltTaggedValue(repository);
            tvXsltFile.Value = xsltFile;
            tvXsltFile.Update();

            // Create MAX file
            MAX_EA.MAXExporter3 exporter = new MAX_EA.MAXExporter3();
            EA.ObjectType       type     = repository.GetTreeSelectedItemType();
            if (type == EA.ObjectType.otPackage)
            {
                EA.Package package = repository.GetTreeSelectedPackage();
                exporter.exportPackage(repository, package, maxFile);
            }
            else if (type == EA.ObjectType.otDiagram)
            {
                EA.Diagram diagram = (EA.Diagram)repository.GetTreeSelectedObject();
                exporter.exportDiagram(repository, diagram, maxFile);
            }

            // Execute Transform
            // TODO: Show feedback about the transform steps
            if (transform(repository, maxFile, xsltFile, outputFile))
            {
                if (openOutput)
                {
                    string outputURL = new Uri(outputFile).ToString();
                    System.Diagnostics.Process.Start(outputURL);
                }
            }
            else
            {
                issues = true;
            }
        }
        private EA.Element AddDataObject(EA.Diagram diagram, EA.Package thePackage, string strInfoExchanged, string strActorName, string strPos)
        {
            string strLogInfo = "Activity Info Exchanged: " + strInfoExchanged;

            EAImporter.LogMsg(EAImporter.LogMsgType.Adding, strLogInfo);

            EA.Element eElObj = thePackage.Elements.AddNew(strInfoExchanged, "Object");
            if (eElObj == null)
            {
                EAImporter.LogError(EAImporter.LogErrorLevel.A, strLogInfo);
                return(null);
            }

            try
            {
                eElObj.ClassifierID = EAImporter.m_InfoModels.Get(strInfoExchanged).ElementID;
            }
            catch (Exception ex)
            {
                EAImporter.LogError(EAImporter.LogErrorLevel.A, "Information exchanged \"" + strInfoExchanged + "\" used in a sequence step is not defined in the Use Case or in the Repository");
                string Temp = ex.Message;
                return(null);
            }

            EA.TaggedValue eaTgVal = eElObj.TaggedValues.AddNew("ActorName", "TaggedValue");
            eaTgVal.Value = strActorName;
            eaTgVal.Update();

            eElObj.Update();

            if (AddDiagramObject(diagram, eElObj.ElementID, strPos) == null)
            {
                EAImporter.LogError(EAImporter.LogErrorLevel.A, strLogInfo);
                return(null);
            }

            EAImporter.LogMsg(EAImporter.LogMsgType.Added, strLogInfo);

            return(eElObj);
        }
Esempio n. 27
0
        public static EA.TaggedValue setTaggedValue(SQLRepository repository, EA.Package package, String name, String value)
        {
            EA.Package actPackage = package;
            if (actPackage is SQLPackage)
            {
                actPackage = repository.GetOriginalRepository().GetPackageByID(package.PackageID);
            }
            EA.Element element = actPackage.Element;
            if (element != null)
            {
                EA.TaggedValue aTag = findTaggedValue(element, name);

                if (aTag == null)
                {
                    aTag = (EA.TaggedValue)element.TaggedValues.AddNew(name, value);
                }
                aTag.Value = value;
                aTag.Update();
                return(aTag);
            }
            return(null);
        }
Esempio n. 28
0
        private void importCriteria(EA.Element functionElement, XmlNode functionNode, EA.Repository Repository)
        {
            string      functionID   = functionNode.SelectSingleNode("ID").InnerText;
            XmlNodeList criteriaList = functionNode.SelectNodes("ConformanceCriteria");

            foreach (XmlNode criteriaNode in criteriaList)
            {
                string     criteriaID      = String.Format("{0}#{1}", functionID, criteriaNode.SelectSingleNode("ID").InnerText);
                string     criteriaText    = criteriaNode.SelectSingleNode("Text").InnerText;
                EA.Element criteriaElement = (EA.Element)functionElement.Elements.AddNew(String.Format("{0} {1}", criteriaID, criteriaText), "Requirement");
                functions.Add(criteriaID, criteriaElement);
                criteriaElement.Stereotype = "Criteria";
                // apply color
                string chapter = functionID.Substring(0, functionID.IndexOf('.'));
                if (chapterColors.ContainsKey(chapter))
                {
                    criteriaElement.SetAppearance(1 /*Base*/, 0 /*BGCOLOR*/, chapterColors[chapter]);
                }
                criteriaElement.Update();
                criteriaElement.Locked = LOCK_ELEMENTS;
                string         criteriaOpt = criteriaNode.SelectSingleNode("Optionality").InnerText;
                EA.TaggedValue taggedValue = (EA.TaggedValue)criteriaElement.TaggedValues.AddNew("Optionality", "TaggedValue");
                taggedValue.Value = criteriaOpt;
                taggedValue.Update();

                // Add a Connector from Criteria to Function
                EA.Connector connector = (EA.Connector)criteriaElement.Connectors.AddNew("", "Association");
                connector.SupplierID = functionElement.ElementID;
                connector.Update();

                XmlNodeList linkList = criteriaNode.SelectNodes("Link/FunctionID");
                foreach (XmlNode id in linkList)
                {
                    addLink(functionID, id.InnerText, Repository);
                }
            }
        }
Esempio n. 29
0
        public static void WriteTaggedValue(EA.Collection Collection, string TaggedValueName, string Value, bool WriteValueToNotes = false)
        {
            EA.TaggedValue tv = Collection.GetByName(TaggedValueName);
            if (tv == null)
            {
                tv = Collection.AddNew(TaggedValueName, "TaggedValue");
            }

            if (WriteValueToNotes)
            {
                if (tv.Notes != Value)
                {
                    tv.Notes = Value;
                }
            }
            else
            {
                if (tv.Value != Value)
                {
                    tv.Value = Value;
                }
            }
            tv.Update();
        }
Esempio n. 30
0
        private void initElements(XmlNode xmlNode)
        {
            foreach (XmlNode node in xmlNode)
            {
                string type = node.Attributes.GetNamedItem("xmi:type").Value;
                string id   = node.Attributes.GetNamedItem("xmi:idref").Value;
                if (type.ToLower().Contains("package"))
                {
                    id = id.Replace("EAPK", "EAID");
                    EA.Package p = this.repository.GetPackageByID(eaIdPackageIdMap[id]);
                    p.IsProtected = node.Attributes.GetNamedItem("scope").Value != "public";
                    foreach (XmlNode n in node.ChildNodes)
                    {
                        switch (n.Name)
                        {
                        case "properties":
                            p.Element.Stereotype = n.Attributes.GetNamedItem("stereotype").Value;
                            p.Element.IsSpec     = n.Attributes.GetNamedItem("isSpecification").Value.ToLower() == "true";
                            break;

                        case "flags":
                            p.IsControlled = n.Attributes.GetNamedItem("iscontrolled").Value.ToLower() == "true";
                            p.IsProtected  = n.Attributes.GetNamedItem("isprotected").Value.ToLower() == "true";
                            p.BatchSave    = int.Parse(n.Attributes.GetNamedItem("batchsave").Value);
                            p.BatchLoad    = int.Parse(n.Attributes.GetNamedItem("batchload").Value);
                            p.UseDTD       = n.Attributes.GetNamedItem("usedtd").Value.ToLower() == "true";
                            p.LogXML       = n.Attributes.GetNamedItem("logxml").Value.ToLower() == "true";
                            p.Flags        = n.Attributes.GetNamedItem("packageFlags").Value;
                            break;

                        default:
                            break;
                        }
                    }
                    p.Update();
                }
                else if (type.ToLower().Contains("class"))
                {
                    EA.Element e = this.repository.GetElementByID(eAIdElementIdMap[id]);
                    foreach (XmlNode n in node.ChildNodes)
                    {
                        switch (n.Name)
                        {
                        case "model":
                            e.TreePos = int.Parse(n.Attributes.GetNamedItem("tpos").Value);
                            e.Type    = n.Attributes.GetNamedItem("ea_eleType").Value;
                            break;

                        case "properties":
                            e.IsRoot     = n.Attributes.GetNamedItem("isRoot").Value == "true";
                            e.IsLeaf     = n.Attributes.GetNamedItem("isLeaf").Value == "true";;
                            e.Abstract   = n.Attributes.GetNamedItem("isAbstract").Value;
                            e.IsActive   = n.Attributes.GetNamedItem("isActive").Value == "true";
                            e.IsSpec     = n.Attributes.GetNamedItem("isSpecification").Value == "true";
                            e.Type       = n.Attributes.GetNamedItem("sType").Value;
                            e.Stereotype = n.Attributes.GetNamedItem("stereotype").Value;
                            break;

                        case "attributes":
                            foreach (XmlNode attNode in n.ChildNodes)
                            {
                                string attid = attNode.Attributes.GetNamedItem("xmi:idref").Value;
                                if (!eaIdAttibuteIdMap.ContainsKey(attid))
                                {
                                    continue;
                                }

                                EA.Attribute attribute = this.repository.GetAttributeByID(eaIdAttibuteIdMap[attid]);
                                foreach (XmlNode valueNode in attNode.ChildNodes)
                                {
                                    switch (valueNode.Name)
                                    {
                                    case "properties":
                                        attribute.Type            = valueNode.Attributes.GetNamedItem("type").Value;
                                        attribute.IsDerived       = valueNode.Attributes.GetNamedItem("derived").Value != "0";
                                        attribute.IsCollection    = valueNode.Attributes.GetNamedItem("collection").Value == "true";
                                        attribute.AllowDuplicates = valueNode.Attributes.GetNamedItem("duplicates").Value != "0";
                                        attribute.IsConst         = valueNode.Attributes.GetNamedItem("changeability").Value != "changeable";
                                        break;

                                    case "containment":
                                        attribute.Containment = valueNode.Attributes.GetNamedItem("containment").Value;
                                        if (valueNode.Attributes.GetNamedItem("position") != null)
                                        {
                                            attribute.Pos = int.Parse(valueNode.Attributes.GetNamedItem("position").Value);
                                        }
                                        break;

                                    case "bounds":
                                        string lower = valueNode.Attributes.GetNamedItem("lower") != null?valueNode.Attributes.GetNamedItem("lower").Value : "";

                                        string upper = valueNode.Attributes.GetNamedItem("upper") != null?valueNode.Attributes.GetNamedItem("upper").Value : "";

                                        attribute.LowerBound = lower;
                                        attribute.UpperBound = upper;
                                        break;

                                    default:
                                        break;
                                    }
                                }
                            }
                            break;

                        case "tags":
                            foreach (XmlNode tagNode in n.ChildNodes)
                            {
                                string         name  = tagNode.Attributes.GetNamedItem("name").Value;
                                string         value = tagNode.Attributes.GetNamedItem("value").Value;
                                int            index = value.IndexOf("#NOTES#");
                                EA.TaggedValue tv    = null;
                                if (index == -1)
                                {
                                    tv = e.TaggedValues.AddNew(name, value);
                                }
                                else
                                {
                                    tv       = e.TaggedValues.AddNew(name, value.Substring(0, index));
                                    tv.Notes = value.Substring(index + 7);
                                }
                                tv.Update();
                            }
                            break;

                        default:
                            break;
                        }
                    }
                    e.Update();
                }

                else if (type.ToLower().Contains("port"))
                {
                    EA.Element e = this.repository.GetElementByID(eAIdElementIdMap[id]);
                    foreach (XmlNode n in node.ChildNodes)
                    {
                        if (n.Name == "properties")
                        {
                            e.Stereotype = n.Attributes.GetNamedItem("stereotype").Value;
                            e.Update();
                        }
                    }
                }
            }
        }
        private EA.Element AddActivity(EA.Diagram diagram, EA.Package thePackage, string strActivityName, string strActorName, string strPos, ImportFieldsValidator oFields)
        {
            string strLogInfo = "Activity: " + strActivityName;

            EAImporter.LogMsg(EAImporter.LogMsgType.Adding, strLogInfo);

            EA.Element eElObj = null;

            if (strActivityName.StartsWith("Repeat till"))
            {
                eElObj = thePackage.Elements.AddNew(strActivityName, "Decision");
            }
            else if (strActivityName.StartsWith("Wait till"))
            {
                eElObj = thePackage.Elements.AddNew(strActivityName, "Event");
            }
            else if (strActivityName == "ActivityInitial")
            {
                // eElObj = thePackage.Elements.AddNew("", "ActivityInitial"); // hmm does not seem to work
                eElObj = thePackage.Elements.AddNew(strActivityName, "Activity");
            }
            else if (strActivityName == "ActivityFinal")
            {
                //eElObj = thePackage.Elements.AddNew("", "ActivityFinal"); // hmm does not seem to work
                eElObj = thePackage.Elements.AddNew(strActivityName, "Activity");
            }
            else
            {
                eElObj = thePackage.Elements.AddNew(strActivityName, "Activity");
            }

            if (AddDiagramObject(diagram, eElObj.ElementID, strPos) == null)
            {
                EAImporter.LogError(EAImporter.LogErrorLevel.A, strLogInfo);
                return(null);
            }

            if (oFields != null)
            {
                eElObj.Notes = oFields["description"].Value;

                EA.TaggedValue eaTgVal = eElObj.TaggedValues.AddNew("event", "TaggedValue");
                eaTgVal.Value = oFields["event"].Value;
                eaTgVal.Update();

                eaTgVal       = eElObj.TaggedValues.AddNew("number", "TaggedValue");
                eaTgVal.Value = oFields["number"].Value;
                eaTgVal.Update();

                eaTgVal       = eElObj.TaggedValues.AddNew("requirements", "TaggedValue");
                eaTgVal.Value = oFields["requirements"].Value;
                eaTgVal.Update();

                eaTgVal       = eElObj.TaggedValues.AddNew("ActorName", "TaggedValue");
                eaTgVal.Value = strActorName;
                eaTgVal.Update();

                eElObj.Update();
            }

            EAImporter.LogMsg(EAImporter.LogMsgType.Added, strLogInfo);

            return(eElObj);
        }
Esempio n. 32
0
        public static void sync_element_taggedvalue(EA.Repository Repository, EA.Element sample, EA.Element classifier, JObject jo, EA.Package pkg, DiagramCache diagramCache)
        {
            logger.log("Syncing JObject:" + sample.Name);
            EA.Collection taggedValues = sample.TaggedValues;

            if (classifier != null)
            {
                sample.ClassifierID = classifier.ElementID;
            }

            foreach (JProperty p in jo.Properties())
            {
                if (p.Name == RoundTripAddInClass.POPULATION_PROPERTY_GUID)
                {
                    continue;
                }
                if (p.Name == RoundTripAddInClass.CONSTRAINT_PROPERTY_SOURCE || p.Name == RoundTripAddInClass.CONSTRAINT_PROPERTY_TARGET)
                {
                    continue;
                }
                if (p.Name == RoundTripAddInClass.CONSTRAINT_PROPERTY_CLASS || p.Name == RoundTripAddInClass.CONSTRAINT_PROPERTY_STEREOTYPE)
                {
                    continue;
                }
                if (p.Name == RoundTripAddInClass.POPULATION_PROPERTY_PACKAGE)
                {
                    continue;
                }
                if (p.Name == RoundTripAddInClass.POPULATION_PROPERTY_NAME)
                {
                    sample.Name = p.Value.ToString();
                    continue;
                }
                if (p.Name == RoundTripAddInClass.POPULATION_PROPERTY_NOTES)
                {
                    sample.Notes = p.Value.ToString();
                    continue;
                }

                if (p.Name == RoundTripAddInClass.POPULATION_PROPERTY_TYPE)
                {
                    string     classifierName = p.Value.ToString();
                    EA.Element clazz          = RepositoryHelper.queryClassifier(Repository, classifierName);
                    if (clazz != null)
                    {
                        sample.ClassifierID = clazz.ElementID;
                        continue;
                    }
                    else
                    {
                        continue;
                    }
                }
                if (p.Value.Type != JTokenType.Object && p.Value.Type != JTokenType.Array)
                {
                    //logger.log("Handling Property:" + p.Name);

                    EA.TaggedValue r = taggedValues.GetByName(p.Name);

                    if (r != null)
                    {
                        //logger.log("Existing Tag");
                        r.Value = p.Value.ToString();
                        r.Update();
                    }
                    else
                    {
                        //logger.log("New Tag");
                        EA.TaggedValue tv = sample.TaggedValues.AddNew(p.Name, RoundTripAddInClass.EA_TYPE_STRING);
                        tv.Value = p.Value.ToString();
                        tv.Update();
                    }
                }
            }
            sample.Update();
        }