Exemplo n.º 1
0
        private int ProcessModelObject(string strLinksFolder, EA.Package eAMainPackage, EA.Package eaPackage, EA.Diagram diagram, ImportFieldsValidator oFieldsValidator, int iBaseClassID, string strImportingData, string strObjName = "")
        {
            int iErrCnt = oFieldsValidator.ParseAndValidateFields(strImportingData);

            if (iErrCnt == 0)
            {
                oFieldsValidator.ReplaceImageLinks(strLinksFolder);

                string strLogInfo = "";

                if (strObjName == "")
                {
                    strLogInfo = strImportingData + ": " + (string)oFieldsValidator[oFieldsValidator.GetIDStrName()].Value;
                }
                else
                {
                    strLogInfo = strImportingData + ": " + strObjName;
                }

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

                if (strObjName == "")
                {
                    element1 = eaPackage.Elements.AddNew((string)oFieldsValidator[oFieldsValidator.GetIDStrName()].Value, "Object");
                }
                else
                {
                    element1 = eaPackage.Elements.AddNew(strObjName, "Object");
                }
                if (oFieldsValidator.GetNotesStrName() != "")
                {
                    element1.Notes = oFieldsValidator[oFieldsValidator.GetNotesStrName()].Value;
                }
                element1.ClassifierID = iBaseClassID;

                string strRunState = "";

                foreach (DictionaryEntry deFieldIndo in oFieldsValidator.GetFields())
                {
                    FieldInfo oFieldInfo = (FieldInfo)deFieldIndo.Value;
                    if ((string)oFieldInfo.Value != "")
                    {
                        if (!oFieldInfo.bIsID && !oFieldInfo.bIsNote)
                        {
                            strRunState = strRunState + "@VAR;Variable=" + oFieldInfo.ValueName + ";Value=" + (string)oFieldInfo.Value + ";Op==;@ENDVAR;";
                        }
                        if (oFieldInfo.bIsNote)
                        {
                            strRunState = strRunState + "@VAR;Variable=" + oFieldInfo.ValueName + ";Value=See notes for this object;Op==;@ENDVAR;";
                        }
                    }
                }
                element1.RunState = strRunState;
                element1.Update();

                eaPackage.Elements.Refresh();

                AddUCComponentToDiagram(eAMainPackage, diagram, element1.ElementID);
            }

            return(iErrCnt);
        }