Skip to content

Commit 433035c

Browse files
Service template property page + Topology template property page update
Service template tool + Topology template tool implementation
1 parent 8df3dba commit 433035c

File tree

12 files changed

+594
-363
lines changed

12 files changed

+594
-363
lines changed

ToscaDesigner/src/main/conf/module.xml

Lines changed: 319 additions & 318 deletions
Large diffs are not rendered by default.
309 Bytes
Binary file not shown.

ToscaDesigner/src/main/java/fr/softeam/toscadesigner/api/tosca/standard/package_/TTopologyTemplate.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ public boolean remove(final ImportElement obj) {
318318
public boolean removeGroups(final TGroup obj) {
319319
if (obj != null) {
320320
for (Dependency d : new ArrayList<>(this.elt.getDependsOnDependency())) {
321-
if (d.isStereotyped(TTopologyTemplate.MdaTypes.MDAASSOCDEP) && Objects.equals(d.getTagValue(TTopologyTemplate.MdaTypes.MDAASSOCDEP_ROLE), ""))
321+
if (d.isStereotyped(TTopologyTemplate.MdaTypes.MDAASSOCDEP) && Objects.equals(d.getTagValue(TTopologyTemplate.MdaTypes.MDAASSOCDEP_ROLE), "groups"))
322322
if (Objects.equals(d.getDependsOn(), obj.getElement())) {
323323
d.delete();
324324
return true;
@@ -339,7 +339,7 @@ public boolean removeGroups(final TGroup obj) {
339339
public boolean removeNodeTemplates(final TNodeTemplate obj) {
340340
if (obj != null) {
341341
for (Dependency d : new ArrayList<>(this.elt.getDependsOnDependency())) {
342-
if (d.isStereotyped(TTopologyTemplate.MdaTypes.MDAASSOCDEP) && Objects.equals(d.getTagValue(TTopologyTemplate.MdaTypes.MDAASSOCDEP_ROLE), ""))
342+
if (d.isStereotyped(TTopologyTemplate.MdaTypes.MDAASSOCDEP) && Objects.equals(d.getTagValue(TTopologyTemplate.MdaTypes.MDAASSOCDEP_ROLE), "nodeTemplates"))
343343
if (Objects.equals(d.getDependsOn(), obj.getElement())) {
344344
d.delete();
345345
return true;

ToscaDesigner/src/main/java/fr/softeam/toscadesigner/handlers/propertypages/ToscaDesignerPropertyPageFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import fr.softeam.toscadesigner.handlers.propertypages.serviceTemplate.TRelationshipTypePropertyPage;
2323
import fr.softeam.toscadesigner.handlers.propertypages.serviceTemplate.TRequirementDefinitionPropertyPage;
2424
import fr.softeam.toscadesigner.handlers.propertypages.serviceTemplate.TRequirementDefinitionTypePropertyPage;
25-
import fr.softeam.toscadesigner.handlers.propertypages.serviceTemplate.TTopologyTemplatePropertyPage;
25+
import fr.softeam.toscadesigner.handlers.propertypages.topologyTemplate.TTopologyTemplatePropertyPage;
2626
import fr.softeam.toscadesigner.handlers.propertypages.topologyTemplate.RequirementsTypePropertyPage;
2727
import fr.softeam.toscadesigner.handlers.propertypages.topologyTemplate.TDeploymentArtifactPropertyPage;
2828
import fr.softeam.toscadesigner.handlers.propertypages.topologyTemplate.TDeploymentArtifactsPropertyPage;

ToscaDesigner/src/main/java/fr/softeam/toscadesigner/handlers/propertypages/core/TGroupPropertyPage.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,13 +82,6 @@ public boolean accept(MObject element) {
8282
);
8383
}
8484

85-
@objid ("805e83a0-7a3b-4978-bc22-f5bcc9e60aa5")
86-
public static List<ModelElement> extractModelElements1(List<TNodeTemplate> members) {
87-
List<ModelElement> members_elt = new ArrayList<>();
88-
for (int i = 0; i < members.size(); i++) {
89-
members_elt.add(members.get(i).getElement());
90-
}
91-
return members_elt;
92-
}
85+
9386

9487
}

ToscaDesigner/src/main/java/fr/softeam/toscadesigner/handlers/propertypages/serviceTemplate/TTopologyTemplatePropertyPage.java

Lines changed: 0 additions & 34 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
package fr.softeam.toscadesigner.handlers.propertypages.topologyTemplate;
2+
3+
import com.modeliosoft.modelio.javadesigner.annotations.objid;
4+
5+
import fr.softeam.toscadesigner.api.IToscaDesignerPeerModule;
6+
import fr.softeam.toscadesigner.api.ToscaDesignerProxyFactory;
7+
import fr.softeam.toscadesigner.api.tosca.standard.class_.TNodeTemplate;
8+
import fr.softeam.toscadesigner.api.tosca.standard.package_.TGroup;
9+
import fr.softeam.toscadesigner.api.tosca.standard.package_.TTopologyTemplate;
10+
import fr.softeam.toscadesigner.handlers.propertypages.core.ToscaElementPropertyPage;
11+
12+
import java.util.Collections;
13+
import java.util.List;
14+
15+
import org.modelio.api.module.propertiesPage.IModulePropertyTable;
16+
import org.modelio.metamodel.uml.infrastructure.ModelElement;
17+
import org.modelio.metamodel.uml.statik.Class;
18+
19+
@objid("a7f33f74-8435-4a95-a221-94a56c5f4cfd")
20+
public class TTopologyTemplatePropertyPage<T extends TTopologyTemplate> extends ToscaElementPropertyPage<T> {
21+
@objid("6b40406a-9893-459b-872a-046f069c5b49")
22+
public TTopologyTemplatePropertyPage(T elt) {
23+
super(elt);
24+
// TODO Auto-generated constructor stub
25+
}
26+
27+
@objid("004035a6-3c47-440d-8d27-c3032b9db0fc")
28+
@Override
29+
public void changeProperty(int row, String value) {
30+
31+
switch (row) {
32+
case 1:
33+
this._element.getElement().setName(value);
34+
break;
35+
36+
case 2:
37+
ModelElement elt1 = getModelElt(TGroup.MdaTypes.STEREOTYPE_ELT.getExtendedElement(), value);
38+
if ((elt1 != null) && (elt1.isStereotyped(IToscaDesignerPeerModule.MODULE_NAME, TGroup.STEREOTYPE_NAME))) {
39+
Object pc = ToscaDesignerProxyFactory.instantiate(elt1);
40+
if (value.startsWith(this._add)) {
41+
this._element.addGroups((TGroup) pc);
42+
} else {
43+
this._element.removeGroups((TGroup) pc);
44+
}
45+
}
46+
break;
47+
48+
case 3:
49+
Class elt2 = (Class) getModelElt(TNodeTemplate.MdaTypes.STEREOTYPE_ELT.getExtendedElement(), value);
50+
if ((elt2 != null)
51+
&& (elt2.isStereotyped(IToscaDesignerPeerModule.MODULE_NAME, TNodeTemplate.STEREOTYPE_NAME))) {
52+
Object pc = ToscaDesignerProxyFactory.instantiate(elt2);
53+
if (value.startsWith(this._add)) {
54+
this._element.addNodeTemplates((TNodeTemplate) pc);
55+
} else {
56+
this._element.removeNodeTemplates((TNodeTemplate) pc);
57+
}
58+
}
59+
break;
60+
}
61+
}
62+
63+
@objid("42d61cbc-7b7b-42bc-8d36-c08a126e4d21")
64+
@Override
65+
public void update(IModulePropertyTable table) {
66+
super.update(table);
67+
table.addProperty("Name", _element.getElement().getName());
68+
69+
// groups
70+
List<ModelElement> members_elt1 = extractModelElements(this._element.getGroups());
71+
List<ModelElement> groupList = (TGroup.MdaTypes.STEREOTYPE_ELT.getExtendedElement() != null)
72+
? TGroup.MdaTypes.STEREOTYPE_ELT.getExtendedElement()
73+
: Collections.emptyList();
74+
75+
table.addProperty("Groups", getToscaValue(members_elt1),
76+
getAddRemove(groupList, extractModelElements(this._element.getGroups())));
77+
78+
// node templates
79+
List <ModelElement> members_elt = extractModelElements(this._element.getNodeTemplates());
80+
List<ModelElement> nodeTemplateList = (TNodeTemplate.MdaTypes.STEREOTYPE_ELT.getExtendedElement() != null)
81+
? TNodeTemplate.MdaTypes.STEREOTYPE_ELT.getExtendedElement()
82+
: Collections.emptyList();
83+
84+
table.addProperty(
85+
"Node templates",
86+
getToscaValue(members_elt),
87+
getAddRemove(nodeTemplateList, extractModelElements(this._element.getNodeTemplates()))
88+
);
89+
}
90+
91+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package fr.softeam.toscadesigner.handlers.tools;
2+
3+
import org.eclipse.draw2d.geometry.Rectangle;
4+
import org.modelio.api.modelio.diagram.IDiagramGraphic;
5+
import org.modelio.api.modelio.diagram.IDiagramHandle;
6+
import org.modelio.api.modelio.diagram.tools.DefaultBoxTool;
7+
import org.modelio.api.modelio.model.IModelingSession;
8+
import org.modelio.api.modelio.model.ITransaction;
9+
import org.modelio.api.module.context.IModuleContext;
10+
import org.modelio.metamodel.diagrams.ClassDiagram;
11+
import org.modelio.metamodel.uml.statik.Package;
12+
13+
import fr.softeam.toscadesigner.api.automatic.standard.staticdiagram.ServiceTemplateDiagram;
14+
import fr.softeam.toscadesigner.api.automatic.standard.staticdiagram.ToscaDiagram;
15+
import fr.softeam.toscadesigner.api.tosca.standard.package_.TServiceTemplate;
16+
import fr.softeam.toscadesigner.impl.ToscaDesignerModule;
17+
18+
public class CreateServiceTemplateTool extends CreateSubModelTool {
19+
20+
@Override
21+
public boolean acceptElement(IDiagramHandle arg0, IDiagramGraphic arg1) {
22+
// TODO Auto-generated method stub
23+
return super.acceptElement(arg1);
24+
}
25+
26+
@Override
27+
public void actionPerformed(IDiagramHandle diagramHandle, IDiagramGraphic parent, Rectangle rect) {
28+
29+
/*
30+
* System.out.print(parent);
31+
ClassDiagram diag = (ClassDiagram) parent.getElement().getCompositionOwner();
32+
org.modelio.metamodel.uml.statik.Package packageOwner = (org.modelio.metamodel.uml.statik.Package) diag
33+
.getOrigin();
34+
*/
35+
Package packageOwner = (Package) parent.getElement().getCompositionOwner();
36+
37+
IModuleContext moduleContext = ToscaDesignerModule.getInstance().getModuleContext();
38+
IModelingSession session = moduleContext.getModelingSession();
39+
40+
try (ITransaction transaction = session.createTransaction("Create Service Template")) {
41+
42+
TServiceTemplate subModel = TServiceTemplate.create(session);
43+
ServiceTemplateDiagram diagram = ServiceTemplateDiagram.create(session);
44+
45+
packageOwner.getOwnedElement().add(subModel.getElement());
46+
subModel.getElement().getProduct().add(diagram.getElement());
47+
48+
subModel.getElement().setName("Service Template");
49+
diagram.getElement().setName(subModel.getElement().getName() + " diagram");
50+
this.openDiagram(diagram);
51+
52+
transaction.commit();
53+
}
54+
}
55+
56+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package fr.softeam.toscadesigner.handlers.tools;
2+
3+
import fr.softeam.toscadesigner.api.IToscaDesignerPeerModule;
4+
import fr.softeam.toscadesigner.api.automatic.standard.staticdiagram.ServiceTemplateDiagram;
5+
import fr.softeam.toscadesigner.api.automatic.standard.staticdiagram.TopologyTemplateDiagram;
6+
import fr.softeam.toscadesigner.api.automatic.standard.staticdiagram.ToscaDiagram;
7+
import fr.softeam.toscadesigner.impl.ToscaDesignerModule;
8+
import org.modelio.api.modelio.IModelioServices;
9+
import org.modelio.api.modelio.diagram.IDiagramGraphic;
10+
import org.modelio.api.modelio.diagram.IDiagramHandle;
11+
import org.modelio.api.modelio.diagram.IDiagramService;
12+
import org.modelio.api.modelio.diagram.dg.IDiagramDG;
13+
import org.modelio.api.modelio.diagram.style.IStyleHandle;
14+
import org.modelio.api.modelio.diagram.tools.DefaultBoxTool;
15+
import org.modelio.metamodel.diagrams.AbstractDiagram;
16+
import org.modelio.metamodel.diagrams.StaticDiagram;
17+
18+
19+
public abstract class CreateSubModelTool extends DefaultBoxTool {
20+
public boolean acceptElement(final IDiagramGraphic targetNode) {
21+
return true;
22+
}
23+
24+
protected void openDiagram(ServiceTemplateDiagram diagram2) {
25+
IModelioServices modelioServices = ToscaDesignerModule.getInstance().getModuleContext().getModelioServices();
26+
StaticDiagram diagram = diagram2.getElement();
27+
IDiagramService ds = modelioServices.getDiagramService();
28+
29+
try( IDiagramHandle handler = ds.getDiagramHandle(diagram);){
30+
IDiagramDG dg = handler.getDiagramNode();
31+
32+
for (IStyleHandle style : ds.listStyles()){
33+
if (style.getName().equals(IToscaDesignerPeerModule.TOSCA_STYLE)){
34+
dg.setStyle(style);
35+
break;
36+
}
37+
}
38+
39+
handler.save();
40+
handler.close();
41+
42+
modelioServices.getEditionService().openEditor(diagram);
43+
}
44+
}
45+
46+
protected void openDiagram(TopologyTemplateDiagram diagram2) {
47+
IModelioServices modelioServices = ToscaDesignerModule.getInstance().getModuleContext().getModelioServices();
48+
StaticDiagram diagram = diagram2.getElement();
49+
IDiagramService ds = modelioServices.getDiagramService();
50+
51+
try( IDiagramHandle handler = ds.getDiagramHandle(diagram);){
52+
IDiagramDG dg = handler.getDiagramNode();
53+
54+
for (IStyleHandle style : ds.listStyles()){
55+
if (style.getName().equals(IToscaDesignerPeerModule.TOSCA_STYLE)){
56+
dg.setStyle(style);
57+
break;
58+
}
59+
}
60+
61+
handler.save();
62+
handler.close();
63+
64+
modelioServices.getEditionService().openEditor(diagram);
65+
}
66+
}
67+
68+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package fr.softeam.toscadesigner.handlers.tools;
2+
3+
import org.eclipse.draw2d.geometry.Rectangle;
4+
import org.modelio.api.modelio.diagram.IDiagramGraphic;
5+
import org.modelio.api.modelio.diagram.IDiagramHandle;
6+
import org.modelio.api.modelio.diagram.tools.DefaultBoxTool;
7+
import org.modelio.api.modelio.model.IModelingSession;
8+
import org.modelio.api.modelio.model.ITransaction;
9+
import org.modelio.api.module.context.IModuleContext;
10+
import org.modelio.metamodel.diagrams.ClassDiagram;
11+
import org.modelio.metamodel.uml.statik.Package;
12+
13+
import fr.softeam.toscadesigner.api.automatic.standard.staticdiagram.ServiceTemplateDiagram;
14+
import fr.softeam.toscadesigner.api.automatic.standard.staticdiagram.TopologyTemplateDiagram;
15+
import fr.softeam.toscadesigner.api.automatic.standard.staticdiagram.ToscaDiagram;
16+
import fr.softeam.toscadesigner.api.tosca.standard.package_.TServiceTemplate;
17+
import fr.softeam.toscadesigner.api.tosca.standard.package_.TTopologyTemplate;
18+
import fr.softeam.toscadesigner.impl.ToscaDesignerModule;
19+
20+
public class CreateTopologyTemplateTool extends CreateSubModelTool {
21+
22+
@Override
23+
public boolean acceptElement(IDiagramHandle arg0, IDiagramGraphic arg1) {
24+
// TODO Auto-generated method stub
25+
return super.acceptElement(arg1);
26+
}
27+
28+
@Override
29+
public void actionPerformed(IDiagramHandle diagramHandle, IDiagramGraphic parent, Rectangle rect) {
30+
/*
31+
ClassDiagram diag = (ClassDiagram) parent.getElement();
32+
org.modelio.metamodel.uml.statik.Package packageOwner = (org.modelio.metamodel.uml.statik.Package) diag
33+
.getOrigin();
34+
*/
35+
Package packageOwner = (Package) parent.getElement().getCompositionOwner();
36+
37+
IModuleContext moduleContext = ToscaDesignerModule.getInstance().getModuleContext();
38+
IModelingSession session = moduleContext.getModelingSession();
39+
40+
try( ITransaction transaction = session.createTransaction("Create Topology Template")){
41+
42+
TTopologyTemplate subModel = TTopologyTemplate.create(session);
43+
TopologyTemplateDiagram diagram = TopologyTemplateDiagram.create(session);
44+
45+
packageOwner.getOwnedElement().add(subModel.getElement());
46+
subModel.getElement().getProduct().add(diagram.getElement());
47+
48+
subModel.getElement().setName("Topology Template");
49+
diagram.getElement().setName(subModel.getElement().getName() + " diagram");
50+
this.openDiagram(diagram);
51+
52+
transaction.commit();
53+
}
54+
}
55+
56+
}

0 commit comments

Comments
 (0)