Revision 245

View differences:

branches/modelio3.7.x/src/main/java/org/modelio/togaf/migration/migration37/Migration_3610_3700.java
1
package org.modelio.togaf.migration.migration37;
2

  
3
import java.util.ArrayList;
4
import java.util.List;
5
import org.modelio.api.modelio.diagram.IDiagramGraphic;
6
import org.modelio.api.modelio.diagram.IDiagramHandle;
7
import org.modelio.api.modelio.diagram.IDiagramLink;
8
import org.modelio.api.modelio.diagram.IDiagramNode;
9
import org.modelio.api.modelio.model.IModelingSession;
10
import org.modelio.metamodel.bpmn.processCollaboration.BpmnCollaboration;
11
import org.modelio.metamodel.bpmn.processCollaboration.BpmnParticipant;
12
import org.modelio.metamodel.bpmn.processCollaboration.BpmnProcess;
13
import org.modelio.metamodel.diagrams.AbstractDiagram;
14
import org.modelio.metamodel.mda.Project;
15
import org.modelio.metamodel.mmextensions.infrastructure.ExtensionNotFoundException;
16
import org.modelio.metamodel.uml.infrastructure.Dependency;
17
import org.modelio.metamodel.uml.infrastructure.Note;
18
import org.modelio.metamodel.uml.infrastructure.UmlModelElement;
19
import org.modelio.metamodel.uml.statik.Package;
20
import org.modelio.togaf.impl.TogafArchitectModule;
21
import org.modelio.togaf.migration.migration37.MigrationNoteParser.MigrationInformationFlow;
22
import org.modelio.vcore.smkernel.mapi.MObject;
23

  
24
public class Migration_3610_3700 {
25
    private Project migrationRoot;
26

  
27
    public Migration_3610_3700(Project migrationRoot) {
28
        this.migrationRoot = migrationRoot;
29
    }
30

  
31
    public void migrate() throws ExtensionNotFoundException {
32
        IModelingSession session = TogafArchitectModule.getInstance().getModuleContext().getModelingSession();
33
        for (BpmnCollaboration collaboration : session.findByClass(BpmnCollaboration.class)) {
34
            if (session.getModel().getRoot(collaboration).equals(this.migrationRoot)) {
35
                migrateCollaboration(collaboration);
36
            }
37
        }
38
        
39
        for (BpmnProcess process : session.findByClass(BpmnProcess.class)) {
40
            if (session.getModel().getRoot(process).equals(this.migrationRoot)) {
41
                migrateProcess(process);
42
            }
43
        }
44
    }
45

  
46
    private void migrateCollaboration(BpmnCollaboration collaboration) throws ExtensionNotFoundException {
47
        // Add stereotype on Container
48
        if (collaboration.getCompositionOwner() instanceof Package &&
49
                !((Package) collaboration.getCompositionOwner()).isStereotyped(TogafArchitectModule.MODULE_NAME, "BusinessOrganizationDomain")) {   
50
            ((Package) collaboration.getCompositionOwner()).addStereotype(TogafArchitectModule.MODULE_NAME, "BusinessOrganizationDomain");
51
        }
52
        
53
        // Add stereotypes on Process
54
        for (BpmnParticipant part : collaboration.getParticipants()) {
55
            if (part.getProcess() != null && !part.getProcess().isStereotyped(TogafArchitectModule.MODULE_NAME, "TogafProcess")) {
56
                part.getProcess().addStereotype(TogafArchitectModule.MODULE_NAME, "TogafProcess");
57
            }
58
        }
59
        
60
        // Parse MigrationNote
61
        for (Note note : collaboration.getDescriptor()) {
62
            if (note.getName().equals("Migration37")) {
63
                MigrationNoteParser parser = new MigrationNoteParser();
64
                parser.pars(note);
65
        
66
                // Clean Diagram
67
                for (AbstractDiagram diag : parser.getDiagrams()) {
68
                    cleanDiagram(parser,diag);
69
                }
70
        
71
                for (MigrationInformationFlow mflow : parser.getInformationsflows()) {
72
                    migrateFlow(collaboration, mflow);
73
                }
74
        
75
                for (MigrationDiagramNode mnode : parser.getDiagramNodes()) {
76
                    migrateDiagramNode(mnode);
77
                }
78
        
79
                for (MigrationDiagramLink mlink : parser.getDiagramLinks()) {
80
                    migrateDiagramLink(mlink);
81
                }
82
            }
83
        }
84
    }
85

  
86
    private void cleanDiagram(MigrationNoteParser parser, AbstractDiagram diag) {
87
        IDiagramHandle handle = TogafArchitectModule.getInstance().getModuleContext().getModelioServices().getDiagramService().getDiagramHandle(diag);
88
        try {
89
            for (IDiagramNode node : handle.getDiagramNode().getNodes()) {
90
                if (node.getElement() == null) {
91
                    handle.mask(node);
92
                }else if(node.getElement() instanceof Package && ((Package)node.getElement()).isStereotyped(TogafArchitectModule.MODULE_NAME, "BusinessOrganizationDomain")){
93
                    // Keep  links on childrens
94
                    
95
                   
96
                    List<List<IDiagramGraphic>> children_links_gr = new ArrayList<List<IDiagramGraphic>>();
97
                    
98
                    for(MObject children : node.getElement().getCompositionChildren()){
99
                        if(children instanceof BpmnCollaboration){
100
                            for(Dependency dp : ((BpmnCollaboration) children).getImpactedDependency()){
101
                                List<IDiagramGraphic> graphs = handle.getDiagramGraphics(dp);
102
                                if(graphs != null && !graphs.isEmpty() && graphs.get(0) instanceof IDiagramLink){ 
103
                                    IDiagramLink lk = (IDiagramLink)graphs.get(0);
104
                                    children_links_gr.add(handle.getDiagramGraphics(dp));        
105
                                    parser.getDiagramLinks().add(new MigrationDiagramLink(diag,dp,lk.getPath().getPoints()));
106
                                }
107
                            }
108
                            
109
                            for(Dependency dp : ((BpmnCollaboration) children).getDependsOnDependency()){
110
                                List<IDiagramGraphic> graphs = handle.getDiagramGraphics(dp);
111
                                if(graphs != null && !graphs.isEmpty() && graphs.get(0) instanceof IDiagramLink){ 
112
                                    IDiagramLink lk = (IDiagramLink)graphs.get(0);
113
                                    children_links_gr.add(handle.getDiagramGraphics(dp));        
114
                                    parser.getDiagramLinks().add(new MigrationDiagramLink(diag,dp,lk.getPath().getPoints()));
115
                                }
116
                            }
117
                        }
118
                    }
119
                    handle.mask(node);
120
                }  
121
            }
122
        } finally {
123
            if (handle != null) {
124
                handle.save();
125
                handle.close();
126
            }
127
        }
128
    }
129

  
130
    private void migrateFlow(UmlModelElement collaboration, MigrationInformationFlow mflow) {
131
        if (mflow.getFlow() != null) {
132
            if (mflow.isSource()) {
133
                mflow.getFlow().getInformationSource().clear();
134
                mflow.getFlow().getInformationSource().add(collaboration);
135
            } else {
136
                mflow.getFlow().getInformationTarget().clear();
137
                mflow.getFlow().getInformationTarget().add(collaboration);
138
            }
139
        }
140
    }
141

  
142
    private void migrateDiagramLink(MigrationDiagramLink mlink) {
143
        if (mlink.getDiagram() != null && mlink.getElement() != null) {
144
            IDiagramHandle handle = TogafArchitectModule.getInstance().getModuleContext().getModelioServices().getDiagramService().getDiagramHandle(mlink.getDiagram());
145
            try {
146
                List<IDiagramGraphic> graph = handle.getDiagramGraphics(mlink.getElement());
147
                if (graph == null || graph.isEmpty()) {
148
                    graph = handle.unmask(mlink.getElement(), 0, 0);
149
                }
150
        
151
                if (graph != null && !graph.isEmpty() && graph.get(0) instanceof IDiagramLink && mlink.getPath() != null) {
152
                    IDiagramLink dglink = (IDiagramLink) graph.get(0);
153
                    try {
154
                        dglink.setPath(mlink.getPath());
155
                    } catch (Exception e) {
156
                        // e.printStackTrace();
157
                    }
158
                }
159
            } finally {
160
                if (handle != null) {
161
                    handle.save();
162
                    handle.close();
163
                }
164
            }
165
        }
166
    }
167

  
168
    private void migrateDiagramNode(MigrationDiagramNode mnode) {
169
        if (mnode.getDiagram() != null && mnode.getElement() != null) {
170
            IDiagramHandle handle = TogafArchitectModule.getInstance().getModuleContext().getModelioServices().getDiagramService().getDiagramHandle(mnode.getDiagram());
171
            try {
172
                List<IDiagramGraphic> graph = handle.getDiagramGraphics(mnode.getElement());
173
                if (graph == null || graph.isEmpty()) {
174
                    graph = handle.unmask(mnode.getElement(), mnode.getPosition().x, mnode.getPosition().y);
175
                }
176
        
177
                if (graph != null && !graph.isEmpty() && graph.get(0) instanceof IDiagramNode) {
178
                    IDiagramNode dgNode = (IDiagramNode) graph.get(0);
179
                    dgNode.setBounds(mnode.getPosition());
180
                }
181
            } finally {
182
                if (handle != null) {
183
                    handle.save();
184
                    handle.close();
185
                }
186
            }
187
        }
188
    }
189

  
190
    private void migrateProcess(BpmnProcess process) {
191
        for (Note note : process.getDescriptor()) {
192
            if (note.getName().equals("Migration37")) {
193
                MigrationNoteParser parser = new MigrationNoteParser();
194
                parser.pars(note);
195
                
196
                // Clean Diagram
197
                for (AbstractDiagram diag : parser.getDiagrams()) {
198
                    cleanDiagram(parser,diag);
199
                }
200
        
201
                for (MigrationInformationFlow mflow : parser.getInformationsflows()) {
202
                    migrateFlow(process, mflow);
203
                }
204
        
205
                for (MigrationDiagramNode mnode : parser.getDiagramNodes()) {
206
                    migrateDiagramNode(mnode);
207
                }
208
        
209
                for (MigrationDiagramLink mlink : parser.getDiagramLinks()) {
210
                    migrateDiagramLink(mlink);
211
                }
212
            }
213
        }
214
    }
215

  
216
}
0 217

  
branches/modelio3.7.x/src/main/java/org/modelio/togaf/migration/migration37/MigrationDiagramLink.java
1
package org.modelio.togaf.migration.migration37;
2

  
3
import java.util.ArrayList;
4
import java.util.List;
5
import org.eclipse.draw2d.geometry.Point;
6
import org.modelio.metamodel.diagrams.AbstractDiagram;
7
import org.modelio.metamodel.uml.infrastructure.ModelElement;
8
import org.modelio.togaf.impl.TogafArchitectModule;
9

  
10
public class MigrationDiagramLink {
11
    private AbstractDiagram diagram;
12

  
13
    private ModelElement element;
14

  
15
    private List<Point> path;
16

  
17
    public MigrationDiagramLink(String data) {
18
        this.path = new ArrayList<>();
19
        String[] datas = data.split(":");
20
        if (datas.length == 4) {
21
            this.diagram = TogafArchitectModule.getInstance().getModuleContext().getModelingSession().findElementById(AbstractDiagram.class, datas[1]);
22
            this.element = TogafArchitectModule.getInstance().getModuleContext().getModelingSession().findElementById(ModelElement.class, datas[2]);
23
        
24
            String pointList = datas[3].substring(datas[3].indexOf("{")+1, datas[3].indexOf("}"));
25
            for(String point : pointList.split("\\|")){
26
                String[] pos = point.split("&");
27
                if(pos.length == 2){
28
                    path.add(new Point(Integer.valueOf(pos[0]),Integer.valueOf(pos[1])));
29
                 }
30
            }
31
          
32
        }
33
    }
34

  
35
    public AbstractDiagram getDiagram() {
36
        return diagram;
37
    }
38

  
39
    public ModelElement getElement() {
40
        return element;
41
    }
42

  
43
    public List<Point> getPath() {
44
        return path;
45
    }
46

  
47
    public MigrationDiagramLink(AbstractDiagram diagram, ModelElement element, List<Point> path) {
48
        this.diagram = diagram;
49
        this.element = element;
50
        this.path = path;
51
    }
52

  
53
}
0 54

  
branches/modelio3.7.x/src/main/java/org/modelio/togaf/migration/migration37/MigrationNoteParser.java
1
package org.modelio.togaf.migration.migration37;
2

  
3
import java.util.ArrayList;
4
import java.util.HashSet;
5
import java.util.List;
6
import java.util.Set;
7
import org.modelio.metamodel.diagrams.AbstractDiagram;
8
import org.modelio.metamodel.uml.informationFlow.InformationFlow;
9
import org.modelio.metamodel.uml.infrastructure.Note;
10
import org.modelio.togaf.impl.TogafArchitectModule;
11

  
12
public class MigrationNoteParser {
13
    private List<MigrationDiagramNode> diagramNodes;
14

  
15
    private List<MigrationDiagramLink> diagramLinks;
16

  
17
    private List<MigrationInformationFlow> informationsflows;
18

  
19
    private Set<AbstractDiagram> diagrams;
20

  
21
    public MigrationNoteParser() {
22
        this.diagramNodes = new ArrayList<>();
23
        this.diagramLinks = new ArrayList<>();
24
        this.informationsflows = new ArrayList<>();
25
        this.diagrams = new HashSet<>();
26
    }
27

  
28
    public void pars(Note note) {
29
        String data = note.getContent();
30
        
31
        if (data.length() > 0) {
32
            if (data.contains(",")) {
33
                for (String entry : data.split(",")) {
34
                    parseEntry(entry);
35
                }
36
            } else {
37
                parseEntry(data);
38
            }
39
        }
40
    }
41

  
42
    private void parseEntry(String entry) {
43
        if (entry.startsWith("Diagram:") && entry.contains(":node")) {
44
            MigrationDiagramNode ng = new MigrationDiagramNode(entry);
45
            if(!this.diagrams.contains(ng.getDiagram())){
46
                this.diagrams.add(ng.getDiagram());
47
            }
48
            this.diagramNodes.add(ng);
49
        } else if (entry.startsWith("Diagram:") && entry.contains(":link")) {
50
            MigrationDiagramLink lk = new MigrationDiagramLink(entry);
51
            if(!this.diagrams.contains(lk.getDiagram())){
52
                this.diagrams.add(lk.getDiagram());
53
            }
54
            this.diagramLinks.add(lk);
55
         
56
        } else if (entry.startsWith("InformationFlow")) {
57
            this.informationsflows.add(new MigrationInformationFlow(entry));
58
        }
59
    }
60

  
61
    public List<MigrationDiagramNode> getDiagramNodes() {
62
        return diagramNodes;
63
    }
64

  
65
    public List<MigrationDiagramLink> getDiagramLinks() {
66
        return diagramLinks;
67
    }
68

  
69
    public List<MigrationInformationFlow> getInformationsflows() {
70
        return informationsflows;
71
    }
72

  
73
    public Set<AbstractDiagram> getDiagrams() {
74
        return diagrams;
75
    }
76

  
77
    public class MigrationInformationFlow {
78
        private boolean source;
79

  
80
        private InformationFlow flow;
81

  
82
        public MigrationInformationFlow(String data) {
83
            if(data.contains("InformationTarge")){
84
                this.source = true;
85
            }else if(data.contains("InformationSource")){
86
                this.source = false; 
87
            }
88
            
89
            String id = data.substring(data.indexOf(":") + 1,data.indexOf("]"));
90
            flow = TogafArchitectModule.getInstance().getModuleContext().getModelingSession().findElementById(InformationFlow.class, id);
91
        }
92

  
93
        public InformationFlow getFlow() {
94
            return flow;
95
        }
96

  
97
        public boolean isSource() {
98
            return source;
99
        }
100

  
101
    }
102

  
103
}
0 104

  
branches/modelio3.7.x/src/main/java/org/modelio/togaf/migration/migration37/MigrationDiagramNode.java
1
package org.modelio.togaf.migration.migration37;
2

  
3
import org.eclipse.draw2d.geometry.Rectangle;
4
import org.modelio.metamodel.diagrams.AbstractDiagram;
5
import org.modelio.metamodel.uml.infrastructure.ModelElement;
6
import org.modelio.togaf.impl.TogafArchitectModule;
7

  
8
public class MigrationDiagramNode {
9
    private AbstractDiagram diagram;
10

  
11
    private ModelElement element;
12

  
13
    private Rectangle position;
14

  
15
    public MigrationDiagramNode(String data) {
16
        String[] datas = data.split(":");
17
        if (datas.length == 4) {
18
            this.diagram = TogafArchitectModule.getInstance().getModuleContext().getModelingSession().findElementById(AbstractDiagram.class, datas[1]);
19
            this.element = TogafArchitectModule.getInstance().getModuleContext().getModelingSession().findElementById(ModelElement.class, datas[2]);
20
        
21
            String posString = datas[3].substring(datas[3].indexOf("{")+1, datas[3].indexOf("}"));
22
            String[] pos = posString.split("&");
23
            if(pos.length == 4){
24
               this.position = new Rectangle(Integer.valueOf(pos[0]), Integer.valueOf(pos[1]),Integer.valueOf(pos[2]), Integer.valueOf(pos[3]));
25
            }
26
        }
27
    }
28

  
29
    public AbstractDiagram getDiagram() {
30
        return diagram;
31
    }
32

  
33
    public ModelElement getElement() {
34
        return element;
35
    }
36

  
37
    public Rectangle getPosition() {
38
        return position;
39
    }
40

  
41
}
0 42

  
branches/modelio3.7.x/src/main/java/org/modelio/togaf/migration/ModelMigrationCommand.java
1
package org.modelio.togaf.migration;
2

  
3
import java.util.List;
4
import org.modelio.api.modelio.model.IModelingSession;
5
import org.modelio.api.modelio.model.ITransaction;
6
import org.modelio.api.module.IModule;
7
import org.modelio.api.module.command.DefaultModuleCommandHandler;
8
import org.modelio.metamodel.mda.Project;
9
import org.modelio.metamodel.uml.infrastructure.TaggedValue;
10
import org.modelio.metamodel.uml.infrastructure.properties.PropertyTableDefinition;
11
import org.modelio.metamodel.uml.statik.Package;
12
import org.modelio.togaf.impl.TogafArchitectModule;
13
import org.modelio.togaf.migration.migration37.Migration_3610_3700;
14
import org.modelio.vbasic.version.Version;
15
import org.modelio.vcore.smkernel.mapi.MObject;
16

  
17
/**
18
 * This class is in charge of migrating Togaf old annotation models to the
19
 * latest one.
20
 * <p/>
21
 * 3.6 to 3.7 is currently the only supported migration, replacing every
22
 * {@link TaggedValue} with a {@link PropertyTableDefinition}.
23
 */
24
public class ModelMigrationCommand extends DefaultModuleCommandHandler {
25
    /**
26
     * Default version for a {@link Project} having no
27
     * {@link MODELIOSTUDIO_MODEL_VERSION} tag.
28
     */
29
    private static Version DEFAULT_VERSION = new Version(3, 7, 0);
30

  
31
    /**
32
     * Command is displayed when:
33
     * <ul>
34
     * <li>Selection only contains {@link Project} or {@link Package}.</li>
35
     * <li>At least one project has a version older than the
36
     * {@link #LATEST_PROJECT_VERSION}.</li>
37
     * </ul>
38
     */
39
    @Override
40
    public boolean accept(List<MObject> selectedElements, IModule module) {
41
        if (super.accept(selectedElements, module) == false) {
42
            return false;
43
        }
44
        
45
        if (selectedElements.size() < 1) {
46
            return false;
47
        }
48
        
49
        for (MObject selectedElement : selectedElements) {
50
            Project selectedProject;
51
            if (selectedElement instanceof Project) {
52
                selectedProject = ((Project) selectedElement);
53
            } else {
54
                Package selectedPackage = (Package) selectedElement;
55
                selectedProject = selectedPackage.getRepresented();
56
                if (selectedProject == null) {
57
                    // Not the root package
58
                    return false;
59
                }
60
            }
61
        
62
            Version projectVersion = getProjectVersion(selectedProject);
63
            if (projectVersion.isOlderThan(TogafArchitectModule.LATEST_PROJECT_VERSION)) {
64
                return true;
65
            }
66
        }
67
        return false;
68
    }
69

  
70
    /**
71
     * Migrate Togaf's annotation model from old versions to the latest one.
72
     */
73
    @Override
74
    public void actionPerformed(List<MObject> selectedElements, IModule module) {
75
        IModelingSession session = module.getModuleContext().getModelingSession();
76
        try (ITransaction tr = session.createTransaction("Migrate Togaf annotations")) {
77
            for (MObject selectedElement : selectedElements) {
78
                Project selectedProject;
79
                if (selectedElement instanceof Project) {
80
                    selectedProject = ((Project) selectedElement);
81
                } else {
82
                    Package selectedPackage = (Package) selectedElement;
83
                    selectedProject = selectedPackage.getRepresented();
84
                }
85
        
86
                Version projectVersion = getProjectVersion(selectedProject);
87
                if (projectVersion.isOlderThan(new Version(3, 7, 0))) {
88
                    Migration_3610_3700 migration = new Migration_3610_3700(selectedProject);
89
                    migration.migrate();
90
                }
91
        
92
                // Update model version
93
                selectedProject.putTagValue(TogafArchitectModule.MODULE_NAME, "togaf.modelVersion", TogafArchitectModule.LATEST_PROJECT_VERSION.toString());
94
            }
95
            tr.commit();
96
        } catch (Exception e) {
97
            TogafArchitectModule.getInstance().getModuleContext().getLogService().error(e);
98
        }
99
    }
100

  
101

  
102

  
103
    /**
104
     * Get the project's version from its {@link MODELIOSTUDIO_MODEL_VERSION}
105
     * tag. If no tag is found, returns {@link DEFAULT_VERSION}.
106
     * @param current the project to get the version from.
107
     */
108
    private Version getProjectVersion(Project current) {
109
        String modelVersion = current.getTagValue(TogafArchitectModule.MODULE_NAME, "togaf.modelVersion");
110
        if (modelVersion == null) {
111
            return ModelMigrationCommand.DEFAULT_VERSION;
112
        }
113
        return new Version(modelVersion);
114
    }
115

  
116
    /**
117
     * Command is grayed when:
118
     * <ul>
119
     * <li>At least one project has a version older than the
120
     * {@link #LATEST_PROJECT_VERSION} and can't be modified.</li>
121
     * </ul>
122
     */
123
    @Override
124
    public boolean isActiveFor(List<MObject> selectedElements, IModule module) {
125
        if (super.isActiveFor(selectedElements, module) == false) {
126
            return false;
127
        }
128
        
129
        for (MObject selectedElement : selectedElements) {
130
            Project selectedProject;
131
            if (selectedElement instanceof Project) {
132
                selectedProject = ((Project) selectedElement);
133
            } else {
134
                Package selectedPackage = (Package) selectedElement;
135
                selectedProject = selectedPackage.getRepresented();
136
                if (selectedProject == null) {
137
                    // Not the root package
138
                    return false;
139
                }
140
            }
141
        
142
            Version projectVersion = getProjectVersion(selectedProject);
143
            if (projectVersion.isOlderThan(TogafArchitectModule.LATEST_PROJECT_VERSION) && !selectedProject.isModifiable()) {
144
                return false;
145
            }
146
        }
147
        return true;
148
    }
149

  
150

  
151
}
0 152

  
branches/modelio3.7.x/src/main/java/org/modelio/togaf/impl/TogafArchitectModule.java
6 6
import org.modelio.api.module.context.IModuleContext;
7 7
import org.modelio.api.module.parameter.IParameterEditionModel;
8 8
import org.modelio.togaf.conf.TogafModelContributor;
9
import org.modelio.vbasic.version.Version;
9 10

  
10 11
public class TogafArchitectModule extends AbstractJavaModule {
11
	private TogafArchitectPeerModule peerMdac = null;
12
	public static final String MODULE_NAME = "TogafArchitect";
12 13

  
14
    public static final Version LATEST_PROJECT_VERSION = new Version("4.0.00");
15

  
16
    private TogafArchitectPeerModule peerMdac = null;
17

  
13 18
	private TogafArchitectSession session = null;
14 19
	
15 20
	
branches/modelio3.7.x/src/main/conf/module.properties
1 1
ModuleLabel= Togaf Architect
2 2
ModuleDescription= Framework for Entreprise Architecture which provides a comprehensive approach to the design, planning, implementation, and governance of an enterprise information architecture. Version Open Source
3 3

  
4

  
4
command.MigrateModel.label=Migrate Model for Modelio 3.7
5
command.MigrateModel.tooltip=Migrate old annotations
5 6
CreateClassifier.label = Create a classifier from this instance
6 7
CreateClassifier.tooltip = Create a classifier from this instance
7 8
CreateClassifier.image =
branches/modelio3.7.x/src/main/conf/module.xml
177 177
                <Image path="res/bmp/profile/owner32.png"/>
178 178
                <TagTypes/>
179 179
            </Stereotype>
180
            <Stereotype name="TogafProcess" metaclass="Behavior" owner-stereotype="TogafElement" is-hidden="false" label="business process" uid="ed5991c5-e515-11e0-bbbe-bc305ba4815c">
180
            <Stereotype name="TogafProcess" metaclass="Standard.BpmnProcess" owner-stereotype="mref#'' {fd8b243a-ab70-11df-9861-0014224f9977} Infrastructure.Stereotype" is-hidden="false" label="%BusinessProcess.label" uid="b9d7cee1-8fe0-45ec-98fa-ea750d4ab42f">
181 181
                <Icon path="res/bmp/profile/togafprocess16.png"/>
182 182
                <Image path="res/bmp/profile/togafprocess32.png"/>
183 183
                <TagTypes>
184
                    <TagType name="TogafProcess_criticality" uid="ef52c9b5-e515-11e0-bbbe-bc305ba4815c" label="criticality" parameter-card="1" is-hidden="false" is-signed="false"/>
185
                    <TagType name="TogafProcess_isAutomated" uid="f046c6a5-e515-11e0-bbbe-bc305ba4815c" label="isAutomated" parameter-card="0" is-hidden="false" is-signed="false"/>
186
                    <TagType name="TogafProcess_volumetrics" uid="f0846be5-e515-11e0-bbbe-bc305ba4815c" label="volumetrics" parameter-card="1" is-hidden="false" is-signed="false"/>
187
                    <TagType name="TogafProcess_duration" uid="f0aa4365-e515-11e0-bbbe-bc305ba4815c" label="duration" parameter-card="1" is-hidden="false" is-signed="false"/>
188
                    <TagType name="TogafProcess_KPI" uid="f0c8c7e5-e515-11e0-bbbe-bc305ba4815c" label="kpi" parameter-card="1" is-hidden="false" is-signed="false"/>
189
                    <TagType name="TogafProcess_used_resources" uid="f0f11065-e515-11e0-bbbe-bc305ba4815c" label="used_resources" parameter-card="1" is-hidden="false" is-signed="false"/>
190
                    <TagType name="TogafProcess_kind" uid="f11205e5-e515-11e0-bbbe-bc305ba4815c" label="kind" parameter-card="1" is-hidden="false" is-signed="false"/>
184
                    <TagType name="TogafProcess_criticality" uid="1ef49f0a-f0cd-409e-840b-375ec90b33d0" label="criticality" parameter-card="1" is-hidden="false" is-signed="false"/>
185
                    <TagType name="TogafProcess_isAutomated" uid="16f5e558-fba2-4e93-b2ba-e8234d36b9e8" label="isAutomated" parameter-card="0" is-hidden="false" is-signed="false"/>
186
                    <TagType name="TogafProcess_volumetrics" uid="99f72cce-0502-497c-9228-28cbfedd71da" label="volumetrics" parameter-card="1" is-hidden="false" is-signed="false"/>
187
                    <TagType name="TogafProcess_duration" uid="ec7f20ac-cc6a-4c80-9424-004b7c7b00a3" label="duration" parameter-card="1" is-hidden="false" is-signed="false"/>
188
                    <TagType name="TogafProcess_KPI" uid="5abed804-37dd-42ad-9be7-54a0ffa2a8cb" label="kpi" parameter-card="1" is-hidden="false" is-signed="false"/>
189
                    <TagType name="TogafProcess_used_resources" uid="aacd517a-6c5c-403e-937f-2b25e1b4b76b" label="used_resources" parameter-card="1" is-hidden="false" is-signed="false"/>
190
                    <TagType name="TogafProcess_kind" uid="4f2feca9-902f-4fb8-bb4d-d9fb4658a6a9" label="kind" parameter-card="1" is-hidden="false" is-signed="false"/>
191 191
                </TagTypes>
192 192
            </Stereotype>
193
            <Stereotype name="TogafMacroProcess" metaclass="Behavior" owner-stereotype="TogafProcess" is-hidden="false" label="macro process" uid="e130f312-89f4-4bdf-a341-b0537ebafdbc">
193
            <Stereotype name="TogafMacroProcess" metaclass="Standard.BpmnCollaboration" owner-stereotype="mref#'' {fd8b243a-ab70-11df-9861-0014224f9977} Infrastructure.Stereotype" is-hidden="false" label="%MacroProcess.label" uid="669d8f10-9c4c-4aee-b9d5-36fd8a5532d0">
194 194
                <Icon path="res/bmp/profile/macroprocessus16.png"/>
195 195
                <Image path="res/bmp/profile/macroprocessus48.png"/>
196 196
                <TagTypes>
197
                    <TagType name="TogafMacroProcess_criticality" uid="f5b56f37-744d-456d-8ce9-6508713eacdb" label="criticality" parameter-card="1" is-hidden="false" is-signed="false"/>
198
                    <TagType name="TogafMacroProcess_isAutomated" uid="e6ce8941-b129-4972-a864-18d34c6404db" label="isAutomated" parameter-card="0" is-hidden="false" is-signed="false"/>
199
                    <TagType name="TogafMacroProcess_volumetrics" uid="82d279cf-d485-450b-adf9-cc2ed321fa14" label="volumetrics" parameter-card="1" is-hidden="false" is-signed="false"/>
200
                    <TagType name="TogafMacroProcess_duration" uid="98d435b6-0459-43b3-b25d-8da9fcd26782" label="duration" parameter-card="1" is-hidden="false" is-signed="false"/>
201
                    <TagType name="TogafMacroProcess_KPI" uid="222a31be-00f4-4a6c-82e1-62b46c4d6aa6" label="kpi" parameter-card="1" is-hidden="false" is-signed="false"/>
202
                    <TagType name="TogafMacroProcess_used_resources" uid="9ebafe60-7ecc-436f-9418-c4bd8d5a19b1" label="used_resources" parameter-card="1" is-hidden="false" is-signed="false"/>
203
                    <TagType name="TogafMacroProcess_kind" uid="a8e2c5f4-3fc5-4710-b2c3-0e92d2a9053d" label="kind" parameter-card="1" is-hidden="false" is-signed="false"/>
197
                    <TagType name="TogafMacroProcess_criticality" uid="14efc6c8-cacc-4542-a5cc-a5d70604a2c6" label="criticality" parameter-card="1" is-hidden="false" is-signed="false"/>
198
                    <TagType name="TogafMacroProcess_isAutomated" uid="d9e6d98a-51b2-43be-8eb0-c11dfec1557a" label="isAutomated" parameter-card="0" is-hidden="false" is-signed="false"/>
199
                    <TagType name="TogafMacroProcess_volumetrics" uid="5f794eab-8a3b-46e5-8a1f-0c5ea0c404c0" label="volumetrics" parameter-card="1" is-hidden="false" is-signed="false"/>
200
                    <TagType name="TogafMacroProcess_duration" uid="7f55f357-c4de-4d63-ad18-d4c15b497a76" label="duration" parameter-card="1" is-hidden="false" is-signed="false"/>
201
                    <TagType name="TogafMacroProcess_KPI" uid="c0d736ee-0143-4c7d-9dc3-28a99acfccce" label="kpi" parameter-card="1" is-hidden="false" is-signed="false"/>
202
                    <TagType name="TogafMacroProcess_used_resources" uid="a37d9ce3-17d7-4ea7-b129-5e4ec994cc1f" label="used_resources" parameter-card="1" is-hidden="false" is-signed="false"/>
203
                    <TagType name="TogafMacroProcess_kind" uid="f40f34fd-5db9-4aab-8c37-6319c9a83ec8" label="kind" parameter-card="1" is-hidden="false" is-signed="false"/>
204 204
                </TagTypes>
205 205
            </Stereotype>
206 206
            <Stereotype name="TogafProcess_old" metaclass="Activity" owner-stereotype="TogafElement" is-hidden="false" label="business process" uid="1476e48a-ab77-11df-9861-0014224f9977">
......
797 797
                <Image path="res/bmp/profile/businesscollaboration32.png"/>
798 798
                <TagTypes/>
799 799
            </Stereotype>
800
            <MetaclassReference uid="e1fdd910-decf-4f73-89bc-2962eebb311a" metaclass="Standard.Project">
801
                <TagTypes>
802
                    <TagType name="togaf.modelVersion" uid="8e820c6c-b121-4db6-a02b-6762820c3092" label="%tagtype.modeliostudio.modelVersion.label" parameter-card="1" is-hidden="false" is-signed="false"/>
803
                </TagTypes>
804
            </MetaclassReference>
800 805
        </Profile>
801 806
    </Profiles>
802 807
    <Parameters>
......
804 809
    </Parameters>
805 810
    <Gui>
806 811
        <Commands>
812
            <Command id="MigrateModel" label="%command.MigrateModel.label" tooltip="%command.MigrateModel.tooltip" image="res/bmp/migrate16.png" modify-model="true">
813
                <Scope metaclass="Standard.Project" stereotype=""/>
814
                <Scope metaclass="Standard.Package" stereotype=""/>
815
                <Handler class="org.modelio.togaf.migration.ModelMigrationCommand"/>
816
            </Command>
807 817
            <Command id="TogafClassDiagramCommand" label="%TogafClassDiagramCommand.label" tooltip="%TogafClassDiagramCommand.tooltip" image="%TogafClassDiagramCommand.image" group="%Diagrams.group" modify-model="true" group-image="%Diagrams.groupimage">
808 818
                <Scope metaclass="Package"/>
809 819
                <Scope metaclass="Class"/>
......
1888 1898
            </Tool>
1889 1899
        </Tools>
1890 1900
        <ContextualMenu>
1901
            <CommandRef refid="MigrateModel"/>
1891 1902
            <CommandRef refid="TogafClassDiagramCommand"/>
1892 1903
            <CommandRef refid="TogafClassHierachyDiagramCommand"/>
1893 1904
            <CommandRef refid="TogafDataLifeCycleDiagramCommand"/>
branches/modelio3.7.x/src/main/conf/module_fr.properties
1 1
ModuleLabel=Togaf Architect
2 2
ModuleDescription=Solution pr\u00eate \u00e0 l\u0027emploi pour la mod\u00e9lisation des architectures d\u0027entreprise, en associant les standards TOGAF, UML et BPMN. Open Source Version
3

  
3
command.MigrateModel.label=Migation du model pour Modelio 3.7
4
command.MigrateModel.tooltip=Migration des annotations obselettes
4 5
BusinessLayer.label = Niveau m?tier
5 6
BusinessLayer.tooltip = Niveau m?tier
6 7
BusinessLayer.image = res/bmp/profile/businesslayer16.png
branches/modelio3.7.x/pom.xml
5 5

  
6 6
	<groupId>org.modelio.module</groupId>
7 7
	<artifactId>togafarchitect</artifactId>
8
	<version>3.7.00</version>
8
	<version>3.7.01</version>
9 9
	<name>TogafArchitect</name>
10 10

  
11 11
	<repositories>

Also available in: Unified diff