示例#1
0
        private void fillDiagrams()
        {
            int counter = 0;

            foreach (EA.Diagram diagram in DiagramsToBeFilled)
            {
                if (hasGui)
                {
                    ImportWorker.ReportProgress(7, new ProgressObject(ProgressBarType.Current, "Fill Diagram", DiagramsToBeFilled.Count));
                }
                else
                {
                    Console.Out.WriteLine("SCALE:Fill Diagram '" + diagram.Name + "' %" + counter + "/" + DiagramsToBeFilled.Count + "#");
                    counter++;
                }
                if (diagram.StyleEx == "MDGDgm=eMoflon Ecore Diagrams::Ecore Diagram;")
                {
                    EcoreImport.fillEcoreDiagram(diagram);
                }
            }
        }
示例#2
0
        private void importMetamodelNodes()
        {
            int counter = 0;

            foreach (MocaNode modelPackageNode in this.MocaTree.Children)
            {
                if (!hasGui || checkedMetamodelsToImport.Contains(modelPackageNode.getAttributeOrCreate("Moflon::Name").Value))
                {
                    if (modelPackageNode.Name == ECOREModelingMain.EPackageStereotype)
                    {
                        if (hasGui)
                        {
                            ImportWorker.ReportProgress(0, new ProgressObject(ProgressBarType.Current, modelPackageNode.getAttributeOrCreate("Moflon::Name").Value, checkedMetamodelsToImport.Count));
                        }
                        else
                        {
                            Console.Out.WriteLine("SCALE:Import '" + modelPackageNode.getAttributeOrCreate("Moflon::Name").Value + "' %" + counter + "/" + checkedMetamodelsToImport.Count + "#");
                            counter++;
                        }
                        EcoreImport.importEPackageModel(modelPackageNode);
                    }
                    else if (modelPackageNode.Name == "TGG")
                    {
                        if (hasGui)
                        {
                            ImportWorker.ReportProgress(0, new ProgressObject(ProgressBarType.Current, modelPackageNode.getAttributeOrCreate("Moflon::Name").Value, checkedMetamodelsToImport.Count));
                        }
                        else
                        {
                            Console.Out.WriteLine("SCALE:Import '" + modelPackageNode.getAttributeOrCreate("Moflon::Name").Value + "' %" + counter + "/" + checkedMetamodelsToImport.Count + "#");
                            counter++;
                        }
                        TggImport.importTGGPackageModel(modelPackageNode);
                    }
                }
            }
        }
示例#3
0
        private void importConnectors()
        {
            int counter = 0;

            //first eReferences and ActivityEdges
            foreach (MocaNode refNode in ConnectorNodeToParent.Keys)
            {
                EA.Element parent = ConnectorNodeToParent[refNode];

                if (refNode.Name == EClass.ReferencesChildNodeName)
                {
                    if (hasGui)
                    {
                        ImportWorker.ReportProgress(1, new ProgressObject(ProgressBarType.Current, "Import EReference", ConnectorNodeToParent.Count));
                    }
                    else
                    {
                        Console.Out.WriteLine("SCALE:Import EReference for '" + parent.Name + "' %" + counter + "/" + ConnectorNodeToParent.Count + "#");
                        counter++;
                    }

                    EcoreImport.importERef(sqlRep.GetElementByID(parent.ElementID), refNode);
                }

                /*      else if (refNode.Name == "ActivityEdge")
                 *    {
                 *        if (hasGui)
                 *            ImportWorker.ReportProgress(1, new ProgressObject(ProgressBarType.Current, "Import ActivityEdge", ConnectorNodeToParent.Count));
                 *
                 *        SdmImport.importActivityEdge(sqlRep.GetElementByID(parent.ElementID), refNode);
                 *    }
                 *
                 *    if (refNode.Name == SDMModelingMain.LinkVariableStereotype)
                 *    {
                 *        if (hasGui)
                 *            ImportWorker.ReportProgress(1, new ProgressObject(ProgressBarType.Current, "Import LinkVariable", ReferenceGuidToClientTarget.Count));
                 *
                 *        SdmImport.importLinkVariable(sqlRep.GetElementByID(parent.ElementID), refNode);
                 *    }
                 *    else if (refNode.Name == TGGModelingMain.TggLinkVariableStereotype)
                 *    {
                 *        if (hasGui)
                 *            ImportWorker.ReportProgress(1, new ProgressObject(ProgressBarType.Current, "Import TGGLinkVariable", ReferenceGuidToClientTarget.Count));
                 *
                 *        TggImport.importTGGLinkVariable(refNode, sqlRep.GetElementByID(parent.ElementID));
                 *    }*/
            }
            counter = 0;
            foreach (String refGuid in ReferenceGuidToClientTarget.Keys)
            {
                if (hasGui)
                {
                    ImportWorker.ReportProgress(2, new ProgressObject(ProgressBarType.Current, "Save EReference and refresh Gui", ReferenceGuidToClientTarget.Count));
                }
                else
                {
                    Console.Out.WriteLine("SCALE:Save EReference and Refresh Gui for '" + refGuid + "' %" + counter + "/" + ReferenceGuidToClientTarget.Count + "#");
                    counter++;
                }
                if (ReferenceGuidToClientTarget.ContainsKey(refGuid) &&
                    ReferenceGuidToReference.ContainsKey(refGuid))
                {
                    EA.Connector con = ReferenceGuidToReference[refGuid];
                    con.Update();
                    MocaNode refsNode = ReferenceGuidToClientTarget[refGuid];

                    EReference eRef = new EReference(sqlRep.GetConnectorByID(con.ConnectorID), sqlRep);
                    eRef.deserializeFromMocaTree(refsNode);

                    if (con.Notes == "Switched")
                    {
                        cleanUpEA(con.ClientEnd, con.SupplierEnd, eRef);
                        con.Notes = "";
                        con.Update();
                        eRef.switchEnds();
                    }
                    else
                    {
                        cleanUpEA(con.SupplierEnd, con.ClientEnd, eRef);
                    }

                    con.Update();

                    eRef.setRealConnector(con);

                    eRef.Update();

                    MocaTaggableElements.Add(eRef);
                }
            }
        }
示例#4
0
        private void doImport()
        {
            repository.Models.Refresh();
            ImportBusy             = true;
            repository.BatchAppend = true;

            if (hasGui)
            {
                ImportWorker.ReportProgress(0, new ProgressObject(ProgressBarType.Complete, "Import raw Objects", 6));
            }
            else
            {
                Console.Out.WriteLine("INFO:Import Raw Objects#");
            }
            importMetamodelNodes();

            if (hasGui)
            {
                ImportWorker.ReportProgress(1, new ProgressObject(ProgressBarType.Complete, "Import raw Connectors"));
            }
            else
            {
                Console.Out.WriteLine("INFO:Import Raw Connector#");
            }
            importConnectors();

            if (hasGui)
            {
                ImportWorker.ReportProgress(2, new ProgressObject(ProgressBarType.Complete, "Import Inheritances"));
            }
            else
            {
                Console.Out.WriteLine("INFO:Import Inheritances#");
            }
            EcoreImport.setInheritances();

            if (hasGui)
            {
                ImportWorker.ReportProgress(3, new ProgressObject(ProgressBarType.Complete, "Set Classifiers"));
            }
            else
            {
                Console.Out.WriteLine("INFO:Import Set Classifiers#");
            }
            setClassifierAttributes();

            if (hasGui)
            {
                ImportWorker.ReportProgress(4, new ProgressObject(ProgressBarType.Complete, "Save Moca Fragment and refresh EA Gui"));
            }
            else
            {
                Console.Out.WriteLine("INFO:Save Moca Fragment and Refresh EA Gui#");
            }
            saveMocaTagElements();

            if (hasGui)
            {
                ImportWorker.ReportProgress(6, new ProgressObject(ProgressBarType.Complete, "Fill Diagrams"));
            }
            else
            {
                Console.Out.WriteLine("INFO:Fill Diagrams#");
            }
            fillDiagrams();


            ImportBusy             = false;
            repository.BatchAppend = false;

            repository.RefreshModelView((repository.Models.GetAt(0) as EA.Package).PackageID);
        }