コード例 #1
0
ファイル: FMC4SEAssistantPlugin.cs プロジェクト: oalt/fmc4se
        private ViewModelBase GetEditorViewModel(EAAPI.Repository repository, EAAPI.Element element)
        {
            ViewModelBase result = null;

            if (element.Stereotype == "agent")
            {
                result = new AgentPropertyViewModel(repository, element);
            }
            else if (element.Stereotype == "channel")
            {
                result = new ChannelPropertyViewModel(repository, element);
            }
            else if (element.Stereotype == "storage")
            {
                result = new StoragePropertyViewModel(repository, element);
            }
            else if (element.Stereotype == "human agent")
            {
                result = new HumanAgentPropertyViewModel(repository, element);
            }
            else if (element.Stereotype == "cloud")
            {
                result = new CloudPropertyViewModel(repository, element);
            }
            else if (element.Stereotype == "tool")
            {
                result = new ToolPropertyViewModel(repository, element);
            }
            else if (element.Stereotype == "explicitChannel")
            {
                result = new ChannelPropertyViewModel(repository, element);
            }

            return(result);
        }
コード例 #2
0
ファイル: FMC4SEAssistantPlugin.cs プロジェクト: oalt/fmc4se
        ///
        /// Called when user Clicks Add-Ins Menu item from within EA.
        /// Populates the Menu with our desired selections.
        /// Location can be "TreeView" "MainMenu" or "Diagram".
        ///
        /// <param name="repository" />the repository
        /// <param name="location" />the location of the menu
        /// <param name="menuName" />the name of the menu
        ///
        public object EA_GetMenuItems(EAAPI.Repository repository, string location, string menuName)
        {
            switch (menuName)
            {
            // defines the top level menu option
            case "":
                return(MAIN_MENU);

            // defines the submenu options
            case MAIN_MENU:

                List <string> subMenuList = new List <string>();

                if (location == "Diagram")
                {
                    subMenuList.Add(SYNCHRONIZE_REFERENCE_MENU);
                }

                subMenuList.Add(ABOUT_MENU);

                return(subMenuList.ToArray());
            }

            return("");
        }
コード例 #3
0
ファイル: FMC4SEAssistantPlugin.cs プロジェクト: oalt/fmc4se
        public bool EA_OnContextItemDoubleClicked(EAAPI.Repository repository, string guid, EAAPI.ObjectType objectType)
        {
            bool result = false;

            if (objectType == EAAPI.ObjectType.otElement)
            {
                EAAPI.Element element = repository.GetElementByGuid(guid);

                ViewModelBase viewModel = null;

                viewModel = GetEditorViewModel(repository, element);

                if (viewModel != null)
                {
                    FMCElementPropertyWindow newAgentWindow = new FMCElementPropertyWindow();
                    newAgentWindow.DataContext = viewModel;
                    newAgentWindow.ShowDialog();
                    repository.AdviseElementChange(element.ElementID);
                    result = true;
                }
            }
            else if (objectType == EAAPI.ObjectType.otConnector)
            {
                EAAPI.Connector connector = repository.GetConnectorByGuid(guid) as EAAPI.Connector;
                if (connector != null && connector.Stereotype == "access type" && _mainViewModel != null)
                {
                    _mainViewModel.ShowConnectorDirectionDialogCommand.Execute(connector);
                    repository.AdviseConnectorChange(connector.ConnectorID);
                    result = true;
                }
            }
            return(result);
        }
コード例 #4
0
        public static void SynchronizeTaggedValues(EA.Repository rep)
        {
            // over all selected elements
            EaDiagram curDiagram = new EaDiagram(rep);

            if (curDiagram.Dia == null)
            {
                return;
            }
            int indexLast = curDiagram.SelElements.Count - 1;

            if (indexLast < 0)
            {
                return;
            }

            EA.Element elLast   = curDiagram.SelElements[0];
            string     stereoEx = "";



            // over all elements, skip first element because that is the property template
            for (int i = 1; i <= indexLast; i++)
            {
                // synchronize all stereotypes
                if (stereoEx != curDiagram.SelElements[i].StereotypeEx)
                {
                    stereoEx = curDiagram.SelElements[i].StereotypeEx;
                    TaggedValue.ElTagValue elTagValues = new TaggedValue.ElTagValue(elLast, stereoEx);
                    elTagValues.SyncTaggedValues(rep, curDiagram.SelElements[i]);
                }
            }
        }
コード例 #5
0
ファイル: CmodelKonfigurator.cs プロジェクト: Zagii/EAkzg
 public CModel(ref Repository Repo)
 {
     Repozytorium     = Repo;
     projektInterfejs = Repo.GetProjectInterface();
     RootPckg         = EAUtils.dajModelPR(ref Repozytorium);
     odczytajNaprawModel(ref RootPckg);
 }
コード例 #6
0
        /// <summary>
        /// Copy port to target element. It port exists it don't copy it. The Ports are locked against changes.
        /// Note: hoTools don't copy tagged values
        /// </summary>
        /// <param name="rep"></param>
        /// <param name="srcPort"></param>
        /// <param name="trgEl"></param>
        public static void CopyPort(EA.Repository rep, Element srcPort, Element trgEl)
        {
            bool isUpdated = false;

            if (srcPort.Type != "Port")
            {
                return;
            }
            // check if port already exits

            foreach (Element trgtPort in trgEl.EmbeddedElements)
            {
                // the target port already exists in source (Target Port PDATA3 contains ea_guid of source port the port is dependant from)
                if (srcPort.ElementGUID == trgtPort.MiscData[2])
                {
                    isUpdated = true;

                    break;
                }
            }
            // Source port isn't available in target Part
            if (isUpdated == false)
            {
                // Create new Port and set the properties according to source port
                var newPort = (Element)trgEl.EmbeddedElements.AddNew(srcPort.Name, "Port");
                trgEl.EmbeddedElements.Refresh();
                newPort.Stereotype   = srcPort.Stereotype;
                newPort.Notes        = srcPort.Notes;
                newPort.PropertyType = srcPort.PropertyType;
                newPort.Update();
                // Link Port to the source Port of property type
                HoUtil.SetElementPdata3(rep, newPort, srcPort.ElementGUID);
                //newPort.Locked = true;
            }
        }
コード例 #7
0
        private void AttachEA()
        {
            EA.App eaapp = null;

            try {
                eaapp = (EA.App)Microsoft.VisualBasic.Interaction.GetObject(null, "EA.App");
            } catch (Exception e) {
                toolStripStatusLabel1.Text = "EAが起動していなかったため、EAへの反映機能は使えません : " + e.Message;
                // MessageBox.Show( e.Message );
                return;
            } finally {
            }

            if (ProjectSetting.getVO() != null)
            {
                if (eaapp != null)
                {
                    EA.Repository repo = eaapp.Repository;
//					eaapp.Visible = true;
                    ProjectSetting.getVO().eaRepo = repo;
                    toolStripStatusLabel1.Text = "EAへのアタッチ成功 EA接続先=" + repo.ConnectionString;
                }
                else
                {
                    toolStripStatusLabel1.Text = "EAにアタッチできなかったため、EAへの反映機能は使えません";
                }
            }
        }
コード例 #8
0
 public override void EA_FileOpen(EA.Repository Repository)
 {
     // initialize the model
     this.model = new TSF_EA.Model(Repository);
     // indicate that we are now fully loaded
     this.fullyLoaded = true;
 }
コード例 #9
0
        public override void EA_MenuClick(EA.Repository repository, string location,
                                          string menuName, string itemName)
        {
            switch (itemName)
            {
            case menuManage:
                this.manage();
                break;

            //case menuImportBusinessItems:
            //    this.import<BusinessItem>();
            //    break;
            //case menuImportDataItems:
            //    this.import<DataItem>();
            //    break;
            //case menuExportBusinessItems:
            //    this.export<BusinessItem>();
            //    break;
            //case menuExportDataItems:
            //    this.export<DataItem>();
            //    break;
            case menuSettings:
                this.openSettings();
                break;

            case menuAbout:
                this.about();
                break;
                //case menuTest:
                //    this.test();
                //    break;
            }
        }
コード例 #10
0
        //DIAGRAM CONTENT
        public void Generate_otDiagram_content(EA.Repository m_Repository, string TOI_GUID, string SP_BaseURL,
                                               out List <string> listOfElements,
                                               out List <string> listOfElementsNames,
                                               out List <string> listOfLinks,
                                               out List <string> listOfLinkNames,
                                               out Dictionary <string, string> DiagramDictionary)
        {
            listOfElements      = new List <string>();
            listOfElementsNames = new List <string>();
            listOfLinks         = new List <string>();
            listOfLinkNames     = new List <string>();

            EA.Diagram DiagramToShow = (EA.Diagram)m_Repository.GetDiagramByGuid(TOI_GUID);



            //STORE DIAGRAM ELEMENTS
            for (short iDO = 0; iDO < DiagramToShow.DiagramObjects.Count; iDO++)
            {
                EA.DiagramObject MyDO = (EA.DiagramObject)DiagramToShow.DiagramObjects.GetAt(iDO);
                int        ID         = m_Repository.GetElementByID(MyDO.ElementID).ElementID;
                EA.Element MyEle      = (EA.Element)m_Repository.GetElementByID(ID);
                listOfElements.Add(MyEle.Name + "|" + MyEle.ObjectType + "|" + MyEle.ElementGUID);
                listOfElementsNames.Add(MyEle.Name);
            }



            //STORE DIAGRAM LINKS
            for (short iDO = 0; iDO < DiagramToShow.DiagramLinks.Count; iDO++)
            {
                EA.DiagramLink MyLink = (EA.DiagramLink)DiagramToShow.DiagramLinks.GetAt(iDO);
                int            ID     = m_Repository.GetConnectorByID(MyLink.ConnectorID).ConnectorID;

                EA.Connector con;

                try //Try and get the connector object from the repository
                {
                    con = (EA.Connector)m_Repository.GetConnectorByID(ID);
                    listOfLinks.Add(con.Name + "|" + con.ObjectType + "|" + con.ConnectorGUID);
                    listOfLinkNames.Add(con.Name);
                }
                catch { }
            }



            //JSON Content
            string DiagramURL = SP_BaseURL + "/" + DiagramToShow.Name + "|otDiagram|" + TOI_GUID;


            DiagramDictionary = new Dictionary <string, string>();
            DiagramDictionary.Add("Diagram Name", DiagramToShow.Name);
            DiagramDictionary.Add("Created Data", DiagramToShow.CreatedDate.ToString());
            DiagramDictionary.Add("Meta Type", DiagramToShow.MetaType);
            DiagramDictionary.Add("Notes", DiagramToShow.Notes);
            DiagramDictionary.Add("Package ID", DiagramToShow.PackageID.ToString());
            DiagramDictionary.Add("Big Preview", DiagramURL + "/BigPreview");
            DiagramDictionary.Add("Small Preview", DiagramURL + "/SmallPreview");
        }
コード例 #11
0
        /// <summary>
        /// Set Diagram styles:
        /// HideQuals=1 HideQualifiers:
        /// OpParams=2  Show full Operation Parameter
        /// ScalePI=1   Scale to fit page
        /// </summary>
        /// <param name="rep"></param>
        /// <param name="dia"></param>
        /// <param name="par">par[0] contains the values as a semicolon separated list</param>
        // ReSharper disable once UnusedMember.Global
        public static void SetDiagramStyle(EA.Repository rep, EA.Diagram dia, string[] par)
        {
            string[] styleEx          = par[0].Split(';');
            string   diaStyle         = dia.StyleEx;
            string   diaExtendedStyle = dia.ExtendedStyle.Trim();

            // no distinguishing between StyleEx and ExtendedStayle, may cause of trouble
            if (dia.StyleEx == "")
            {
                diaStyle = par[0] + ";";
            }
            if (dia.ExtendedStyle == "")
            {
                diaExtendedStyle = par[0] + ";";
            }

            Regex rx = new Regex(@"([^=]*)=.*");

            rep.SaveDiagram(dia.DiagramID);
            foreach (string style in styleEx)
            {
                Match  match       = rx.Match(style);
                string patternFind = $@"{match.Groups[1].Value}=[^;]*;";
                diaStyle         = Regex.Replace(diaStyle, patternFind, $@"{style};");
                diaExtendedStyle = Regex.Replace(diaExtendedStyle, patternFind, $@"{style};");
            }
            dia.ExtendedStyle = diaExtendedStyle;
            dia.StyleEx       = diaStyle;
            dia.Update();
            rep.ReloadDiagram(dia.DiagramID);
        }
コード例 #12
0
        public string EA_Connect(EAAPI.Repository repository)
        {
            try
            {
                ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); };
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

                SimpleIoc.Default.Register <IConfigurationReaderWriter <SpecIfPluginConfiguration>, FileConfigurationReaderWriter <SpecIfPluginConfiguration> >();

                IConfigurationReaderWriter <SpecIfPluginConfiguration> configurationReaderWriter = SimpleIoc.Default.GetInstance <IConfigurationReaderWriter <SpecIfPluginConfiguration> >();

                if (configurationReaderWriter != null)
                {
                    _configuration = configurationReaderWriter.GetConfiguration();

                    if (_configuration == null)
                    {
                        _configuration = new SpecIfPluginConfiguration();
                        configurationReaderWriter.StoreConfiguration(_configuration);
                    }
                }

                _mainViewModel = new MainViewModel(repository);
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.ToString());
            }

            return("");
        }
コード例 #13
0
        /// <summary>
        /// Called when user makes a selection in the menu.
        /// This is your main exit point to the rest of your Add-in
        /// </summary>
        /// <param name="Repository">the repository</param>
        /// <param name="Location">the location of the menu</param>
        /// <param name="MenuName">the name of the menu</param>
        /// <param name="ItemName">the name of the selected menu item</param>
        public override void EA_MenuClick(EA.Repository Repository, string Location, string MenuName, string ItemName)
        {
            switch (ItemName)
            {
            case menuMapAsSource:
                loadMapping(this.getCurrentMappingSet());
                break;

            case menuAddToSource:
                addNodeToTree(true);
                break;

            case menuAddToTarget:
                addNodeToTree(false);
                break;

            case menuAbout:
                new AboutWindow().ShowDialog(this.model.mainEAWindow);
                break;

            case menuImportMapping:
                this.startImportMapping();
                break;

            case menuImportCopybook:
                this.importCopybook();
                break;

            case menuSettings:
                new MappingSettingsForm(this.settings).ShowDialog(this.model.mainEAWindow);
                break;
            }
        }
コード例 #14
0
        void getElementFromEA( )
        {
            EA.Repository repo  = ProjectSetting.getEARepo();
            EA.ObjectType otype = repo.GetContextItemType();

            if (otype == EA.ObjectType.otElement)
            {
                // Code for when an element is selected
                EA.Element eaElemObj = (EA.Element)repo.GetContextObject();

                if (eaElemObj != null && (eaElemObj.Type == "Class" || eaElemObj.Type == "Enumeration"))
                {
                    ElementVO eaElement = ObjectEAConverter.getElementFromEAObject(eaElemObj);
                    textBoxElementName.Text = eaElement.name;
                    targetElement           = eaElement;
                }
                else
                {
                    textBoxElementName.Text = "(EA上でクラスを選択してください)";
                    targetElement           = null;
                }
            }
            else
            {
                textBoxElementName.Text = "(EA上でクラスを選択してください)";
                targetElement           = null;
            }
        }
コード例 #15
0
        ///
        /// Called once Menu has been opened to see what menu items should active.
        ///
        /// <param name="Repository" />the repository
        /// <param name="Location" />the location of the menu
        /// <param name="MenuName" />the name of the menu
        /// <param name="ItemName" />the name of the menu item
        /// <param name="IsEnabled" />boolean indicating whethe the menu item is enabled
        /// <param name="IsChecked" />boolean indicating whether the menu is checked
        public void EA_GetMenuState(EA.Repository Repository, string Location, string MenuName, string ItemName, ref bool IsEnabled, ref bool IsChecked)
        {
            if (IsProjectOpen(Repository))
            {
                switch (ItemName)
                {
                case menuActivate:
                    IsEnabled = !autoRefresh.isRunning();
                    break;

                case menuDeactivate:
                    IsEnabled = autoRefresh.isRunning();
                    break;

                case menuInfo:
                    IsEnabled = true;
                    break;

                default:
                    IsEnabled = false;
                    break;
                }
            }
            else
            {
                // If no open project, disable all menu options
                IsEnabled = false;
            }
        }
コード例 #16
0
        ///
        /// Called Before EA starts to check Add-In Exists
        /// Nothing is done here.
        /// This operation needs to exists for the addin to work
        ///
        /// <param name="Repository" />the EA repository
        /// a string
        public String EA_Connect(EA.Repository Repository)
        {
            logger.setRepository(Repository);

            try
            {
                fileManager.setBasePath(Properties.Settings.Default.BasePath);
                fileManager.setDiagramPath(Properties.Settings.Default.DiagramPath);
            }
            catch (Exception)
            {
                logger.log("Did not find BasePath or DiagramPath in user settings");
            }

            DiagramManager.setLogger(logger);
            DiagramManager.setFileManager(fileManager);
            APIManager.setLogger(logger);
            APIManager.setFileManager(fileManager);
            SchemaManager.setLogger(logger);
            SchemaManager.setFileManager(fileManager);
            SampleManager.setLogger(logger);
            SampleManager.setFileManager(fileManager);
            WSDLManager.setLogger(logger);
            MetaDataManager.setLogger(logger);

            return("a string");
        }
コード例 #17
0
        private void exportAllGlobal(EA.Repository Repository)
        {
            {
                List <string> diagrams = DiagramManager.queryAPIDiagrams(Repository);
                foreach (string diagramId in diagrams)
                {
                    EA.Diagram diagram = Repository.GetDiagramByGuid(diagramId);
                    logger.log("Exporting Diagram:" + diagram.Name);
                    APIManager.exportAPI(Repository, diagram);
                    logger.log("Exported Diagram:" + diagram.Name);
                }
            }
            {
                List <string> diagrams = DiagramManager.querySchemaDiagrams(Repository);
                foreach (string diagramId in diagrams)
                {
                    EA.Diagram diagram = Repository.GetDiagramByGuid(diagramId);
                    logger.log("Exporting Schema Diagram:" + diagram.Name);
                    SchemaManager.exportSchema(Repository, diagram);
                }
            }
            {
                List <string> diagrams = DiagramManager.querySampleDiagrams(Repository);
                foreach (string diagramId in diagrams)
                {
                    EA.Diagram diagram = Repository.GetDiagramByGuid(diagramId);

                    EA.Package samplePackage = Repository.GetPackageByID(diagram.PackageID);
                    EA.Package apiPackage    = Repository.GetPackageByID(samplePackage.ParentID);

                    logger.log("Exporting Sample Diagram:" + diagram.Name + " from api package:" + apiPackage.Name);
                    SampleManager.exportSample(Repository, diagram);
                }
            }
        }
コード例 #18
0
        //public List<string> queryAPIDiagrams2(EA.Repository Repository)
        //{

        //}

        //public List<string> queryAPIDiagrams2(EA.Repository Repository)
        //{
        //    EA.Collection diagrams = Repository.GetElementsByQuery(
        //        "StateMachine Diagrams", "");
        //    MessageBox.Show("here");
        //    List<string> result = new List<string>();
        //    foreach (object dia in diagrams)
        //    {
        //        EA.Diagram d = (EA.Diagram)dia;
        //        result.Add(d.DiagramGUID);
        //    }
        //    return result;
        //}


        private void callWeb(EA.Repository Repository)
        {
            // Create a request for the URL.
            WebRequest request = WebRequest.Create("http://xceptionale.com");
            // If required by the server, set the credentials.
            //request.Credentials = CredentialCache.DefaultCredentials;
            // Get the response.
            WebResponse response = request.GetResponse();
            // Display the status.
            string status = ((HttpWebResponse)response).StatusDescription;

            MessageBox.Show("Status:" + status);

            // Get the stream containing content returned by the server.
            //Stream dataStream = response.GetResponseStream();
            // Open the stream using a StreamReader for easy access.
            //StreamReader reader = new StreamReader(dataStream);
            // Read the content.
            //string responseFromServer = reader.ReadToEnd();
            // Display the content.
            //Console.WriteLine(responseFromServer);
            // Clean up the streams and the response.
            //reader.Close();
            response.Close();
        }
コード例 #19
0
        /// <summary>
        /// Update Activity parameter and linkage
        /// </summary>
        public static void UpdateActivityMethodParameterWrapper(EA.Repository rep)
        {
            try
            {
                Cursor.Current      = Cursors.WaitCursor;
                rep.BatchAppend     = true;
                rep.EnableUIUpdates = false;

                // if action update link to operation
                HoService.UpdateAction(rep);

                HoService.ReconcileOperationTypesWrapper(rep);
                HoService.UpdateActivityParameter(rep);
                rep.BatchAppend     = false;
                rep.EnableUIUpdates = true;
                Cursor.Current      = Cursors.Default;
            }
            catch (Exception e10)
            {
                MessageBox.Show(e10.ToString(), @"Error insert Attributes");
            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }
コード例 #20
0
        // 保守性の計算・評価
        // ルートデバイスにのみ評価を適用する
        internal double EvaluateMaintainability(EA.Repository Repository, Device device)
        {
            // デバイスについている通信情報の取得
            double PowerForCommunication = 0;

            foreach (var Connector in device.ConnectorList)
            {
                var ConnectorType     = Connector.Notes.ToXDocument().Element("data").Element("通信の種類").Value;
                var CommunicationInfo = CommunicationTypeInfo.GetCommunicationInfo(ConnectorType);
                PowerForCommunication += (6 - CommunicationInfo.PowerSaving);
            }

            var    ExecutionEnvironmenWhereDeviceExists = GetExecutionEnvironment(Repository, device);
            double EnvironmenteConfidentiality          = ExecutionEnvironmenWhereDeviceExists.xdocument.Element("data").Element("環境へのアクセス性").Value.ToDouble();
            double DeviceConfidentiality = device.xdocument.Element("data").Element("デバイスへのアクセス性").Value.ToDouble();
            string DeviceBatteryType     = device.xdocument.Element("data").Element("電源形式").Value;

            if (DeviceBatteryType == "主電源")
            {
                PowerForCommunication = 0;
            }

            // var BatteryAbility = BatteryAbilityDictionary[DeviceBatteryType];
            var    UsingPower      = PowerForCommunication;
            var    Confidentiality = (EnvironmenteConfidentiality + DeviceConfidentiality) / 2;
            double Maintainability = 5 - ((5 - Confidentiality) * UsingPower);

            return(Maintainability);
        }
コード例 #21
0
 public override void EA_OnPostInitialized(EA.Repository Repository)
 {
     // initialize the model
     this.model  = new UTF_EA.Model(Repository);
     fullyLoaded = true;
     base.EA_OnPostInitialized(Repository);
 }
コード例 #22
0
 public AutoCpp(EA.Repository rep)
 {
     Rep = rep;
     // inventory from VC Code Database
     _files       = new Files(rep);
     _designFiles = new Files(rep);
 }
コード例 #23
0
        /// <summary>
        /// Create a Tagged value type
        /// </summary>
        /// <param name="rep"></param>
        /// <param name="property"></param>
        /// <returns></returns>
        public static bool TaggedValueTyeExists(EA.Repository rep, string property)
        {
            try
            {
                string      sql    = $@"select count(*) as COUNT from t_propertytypes 
                                  where Property = '{property}';";
                string      xml    = rep.SQLQuery(sql);
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(xml);

                XmlNode countXml = xmlDoc.SelectSingleNode("//COUNT");
                if (countXml != null)
                {
                    int count = Int32.Parse(countXml.InnerText);
                    if (count == 0)
                    {
                        return(false);
                    }
                    return(true);
                }

                return(false);
            }
            catch (Exception e)
            {
                MessageBox.Show($@"Property: '{property}'

{e}", @"Can't read Tagged Value Type");
                return(false);
            }
        }
コード例 #24
0
 public ReqIfRelation(ReqIF reqIf, EA.Repository rep, FileImportSettingsItem settings)
 {
     _reqIf        = reqIf;
     _rep          = rep;
     _settings     = settings;
     _requirements = new List <EA.Element>();
 }
コード例 #25
0
ファイル: EA_Helper.cs プロジェクト: IanGibblet/RestfulEA
        //This is a sophisticated method that goes around the entire EA model looking for what ever was clicked.
        //The rest-ful nature means we don't know what type of thing was clicked, we only have the name.
        //This will use a recursive method to loop through every single layer.
        //Prepare for headaches!
        public static void GetViewsAndDiagrams(string ThingOfInterest, EA.Repository m_Repository, string[] cleanURL, out List <string> ListOfPackages, out List <string> ListOfDiagrams)
        {
            List <string> OutStringListOfViews    = new List <string>();           //The final list of views to be returned.    (As out paramter)
            List <string> OutStringListOfDiagrams = new List <string>();           //The final list of diagrams to be returned. (As out paramter)

            List <EA.Package> ListOfRootViews = new List <EA.Package>();           //Object list to store the results

            ListOfRootViews = GetObjectListOfROOTViews(cleanURL[2], m_Repository); //We can always figure out the root views

            //Look around the listroot views and see if one of these
            //is what has been selected
            foreach (EA.Package EA_Package in ListOfRootViews)
            {
                //Is this the view/package that was selected?
                if (EA_Package.Name == ThingOfInterest)
                {
                    //If it does, then record the sub views as a string list
                    foreach (EA.Package PackLoop in EA_Package.Packages)
                    {
                        OutStringListOfViews.Add(PackLoop.Name);
                    }


                    //Do we have any diagrams, if so, let's record them.
                    foreach (EA.Diagram DiaLoop in EA_Package.Diagrams)
                    {
                        OutStringListOfDiagrams.Add(DiaLoop.Name);
                    }
                }



                else
                {
                    //If it isn't, we have to dive into a recursive routine and if it exists below.....
                    //Get Packages from the deep recursiveloop
                    //  Package DeepPackage = new Package();
                    EA.Package DeepPackage = null;
                    ThePackageRecursiveLoop(EA_Package, ThingOfInterest, out DeepPackage, false);

                    if (DeepPackage != null)
                    {
                        foreach (EA.Package PkgLoop in DeepPackage.Packages)
                        {
                            OutStringListOfViews.Add(PkgLoop.Name);
                        }

                        foreach (EA.Diagram DiaLoop in DeepPackage.Diagrams)
                        {
                            OutStringListOfDiagrams.Add(DiaLoop.Name);
                        }
                    }
                }
            }


            ListOfPackages = OutStringListOfViews;
            ListOfDiagrams = OutStringListOfDiagrams;
        }
コード例 #26
0
 private void exportPackage(EA.Repository Repository, EA.Package pkg)
 {
     foreach (EA.Package p in pkg.Packages)
     {
         exportAPIPackage(Repository, p);
         exportPackage(Repository, p);//recurse
     }
 }
コード例 #27
0
 private void exportPackage(EA.Repository Repository, EA.Package pkg, DiagramCache diagramCache)
 {
     exportRoundTripPackage(Repository, pkg, diagramCache);
     foreach (EA.Package p in pkg.Packages)
     {
         exportPackage(Repository, p, diagramCache);//recurse
     }
 }
コード例 #28
0
        // 機密性の評価
        internal double EvaluateConfidentiality(EA.Repository Repository, Device device)
        {
            var    ExecutionEnvironmenWhereDeviceExists = GetExecutionEnvironment(Repository, device);
            double EnvironmenteConfidentiality          = ExecutionEnvironmenWhereDeviceExists.xdocument.Element("data").Element("環境への認証アクセス性").Value.ToDouble();
            double DeviceConfidentiality = device.xdocument.Element("data").Element("デバイスへの認証アクセス性").Value.ToDouble();

            return(CalculateConfidentiality(EnvironmenteConfidentiality, DeviceConfidentiality));
        }
コード例 #29
0
ファイル: MainViewModel.cs プロジェクト: oalt/fmc4se
        public MainViewModel(EAAPI.Repository repository)
        {
            _repository = repository;

            ShowAboutWindowCommand              = new RelayCommand(ExcuteShowAboutWindow);
            SynchronizeReferenceCommand         = new RelayCommand(ExecuteSynchronizeReference);
            ShowConnectorDirectionDialogCommand = new RelayCommand <EAAPI.Connector>(ExecuteShowConnectorDirectionCommand);
        }
コード例 #30
0
 public AutoCpp(EA.Repository rep, EA.Element component)
 {
     Rep        = rep;
     _component = component;
     // inventory from VC Code Database
     _files       = new Files(rep);
     _designFiles = new Files(rep);
 }
コード例 #31
0
 public void Initialize(EA.Repository repository, TextOutputInterface output, IDLClassSelector classSelector,
     HashSet<string> uncheckedElements)
 {
     _currentRepository = repository;
     _currentOutput = output;
     _uncheckedElements = uncheckedElements;
     _classSelector = classSelector;
     this.OnIdlVersionAction(IDLVersions.defaultVersion);
 }
コード例 #32
0
 public override void EA_FileClose(EA.Repository Repository)
 {
     fullyLoaded = false;
     currentRepository = null;
     base.EA_FileClose(Repository);
 }
コード例 #33
0
 /// <summary>
 /// EA_Connect events enable Add-Ins to identify their type and to respond to Enterprise Architect start up.
 /// This event occurs when Enterprise Architect first loads your Add-In. Enterprise Architect itself is loading at this time so that while a Repository object is supplied, there is limited information that you can extract from it.
 /// The chief uses for EA_Connect are in initializing global Add-In data and for identifying the Add-In as an MDG Add-In.
 /// Also look at EA_Disconnect.
 /// </summary>	
 /// <param name="Repository">An EA.Repository object representing the currently open Enterprise Architect model.
 /// Poll its members to retrieve model data and user interface status information.</param>
 /// <returns>String identifying a specialized type of Add-In: 
 /// - "MDG" : MDG Add-Ins receive MDG Events and extra menu options.
 /// - "" : None-specialized Add-In.</returns>
 public override string EA_Connect(EA.Repository Repository)
 {
     currentRepository = Repository;
     return base.EA_Connect(Repository);
 }
		public EventPropertiesHelper(EA.Repository repository, EA.EventProperties eventProperties)
		{
			this.repository = repository;
			this.eventProperties = eventProperties;
		}