Merging c-Eclipse code to camf repo.
Changes to *.tosca.editor
chained changes to *.infosystem.model
Change-Id: Ifd2cb20824ae4c52b9c8415fc9e5bd1dff4f531f
Signed-off-by: Athanasios Foudoulis <foudoulisathanasios@gmail.com>
diff --git a/plugins/org.eclipse.camf.infosystem.model/model/InfoSystem.genmodel b/plugins/org.eclipse.camf.infosystem.model/model/InfoSystem.genmodel
index 83c982e..48dcc10 100644
--- a/plugins/org.eclipse.camf.infosystem.model/model/InfoSystem.genmodel
+++ b/plugins/org.eclipse.camf.infosystem.model/model/InfoSystem.genmodel
@@ -4,8 +4,8 @@
modelName="InfoSystem" importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0"
copyrightFields="false" classNamePattern="">
<foreignModel>infosystem.ecore</foreignModel>
- <genPackages prefix="InfoSystem" basePackage="org.eclipse.camf.infosystem.model" resource="XML"
- disposableProviderFactory="true" ecorePackage="infosystem.ecore#/">
+ <genPackages prefix="InfoSystem" basePackage="org.eclipse.camf.infosystem.model"
+ resource="XML" disposableProviderFactory="true" ecorePackage="infosystem.ecore#/">
<genEnums typeSafeEnumCompatible="false" ecoreEnum="infosystem.ecore#//VirtualMachineImageType">
<genEnumLiterals ecoreEnumLiteral="infosystem.ecore#//VirtualMachineImageType/BaseImage"/>
<genEnumLiterals ecoreEnumLiteral="infosystem.ecore#//VirtualMachineImageType/CustomImage"/>
@@ -15,7 +15,7 @@
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//MonitoringProbe/uID"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//MonitoringProbe/name"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//MonitoringProbe/description"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//MonitoringProbe/uRL"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//MonitoringProbe/metrics"/>
</genClasses>
<genClasses ecoreClass="infosystem.ecore#//ResizingAction">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//ResizingAction/uID"/>
@@ -44,5 +44,47 @@
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//UserApplication/uRL"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//UserApplication/type"/>
</genClasses>
+ <genClasses ecoreClass="infosystem.ecore#//KeyPair">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//KeyPair/uID"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//KeyPair/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//KeyPair/publicKey"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//KeyPair/Description"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//KeyPair/URL"/>
+ </genClasses>
+ <genClasses ecoreClass="infosystem.ecore#//VirtualMachineImageFlavor">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//VirtualMachineImageFlavor/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//VirtualMachineImageFlavor/uID"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//VirtualMachineImageFlavor/ram"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//VirtualMachineImageFlavor/hdd"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//VirtualMachineImageFlavor/vCPU"/>
+ </genClasses>
+ <genClasses ecoreClass="infosystem.ecore#//VirtualNetwork">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//VirtualNetwork/uID"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//VirtualNetwork/name"/>
+ </genClasses>
+ <genClasses ecoreClass="infosystem.ecore#//VirtualInstance">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//VirtualInstance/uID"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//VirtualInstance/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//VirtualInstance/status"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//VirtualInstance/IPs"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//VirtualInstance/URI"/>
+ </genClasses>
+ <genClasses ecoreClass="infosystem.ecore#//SecurityGroup">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//SecurityGroup/uID"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//SecurityGroup/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//SecurityGroup/description"/>
+ </genClasses>
+ <genClasses ecoreClass="infosystem.ecore#//Deployment">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//Deployment/depID"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//Deployment/deploymentName"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference infosystem.ecore#//Deployment/modules"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//Deployment/Status"/>
+ </genClasses>
+ <genClasses ecoreClass="infosystem.ecore#//Module">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//Module/modID"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//Module/moduleName"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference infosystem.ecore#//Module/instances"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute infosystem.ecore#//Module/initInstances"/>
+ </genClasses>
</genPackages>
</genmodel:GenModel>
diff --git a/plugins/org.eclipse.camf.infosystem.model/model/infosystem.ecore b/plugins/org.eclipse.camf.infosystem.model/model/infosystem.ecore
index 35762f4..6df2058 100644
--- a/plugins/org.eclipse.camf.infosystem.model/model/infosystem.ecore
+++ b/plugins/org.eclipse.camf.infosystem.model/model/infosystem.ecore
@@ -28,7 +28,8 @@
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="uRL" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metrics" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="URL"/>
diff --git a/plugins/org.eclipse.camf.infosystem.model/src/org/eclipse/camf/infosystem/model/base/InfoSystemPackage.java b/plugins/org.eclipse.camf.infosystem.model/src/org/eclipse/camf/infosystem/model/base/InfoSystemPackage.java
index ce95b05..d704eef 100644
--- a/plugins/org.eclipse.camf.infosystem.model/src/org/eclipse/camf/infosystem/model/base/InfoSystemPackage.java
+++ b/plugins/org.eclipse.camf.infosystem.model/src/org/eclipse/camf/infosystem/model/base/InfoSystemPackage.java
@@ -110,15 +110,15 @@
int MONITORING_PROBE__DESCRIPTION = 2;
/**
- * The feature id for the '<em><b>URL</b></em>' attribute.
+ * The feature id for the '<em><b>Metrics</b></em>' attribute.
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
+ * <!-- end-user-doc -->
* @generated
* @ordered
*/
- int MONITORING_PROBE__URL = 3;
+ int MONITORING_PROBE__METRICS = 3;
- /**
+ /**
* The number of structural features of the '<em>Monitoring Probe</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -824,17 +824,17 @@
EAttribute getMonitoringProbe_Description();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.camf.infosystem.model.base.MonitoringProbe#getURL <em>URL</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.camf.infosystem.model.base.MonitoringProbe#getMetrics <em>Metrics</em>}'.
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>URL</em>'.
- * @see org.eclipse.camf.infosystem.model.base.MonitoringProbe#getURL()
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Metrics</em>'.
+ * @see org.eclipse.camf.infosystem.model.base.MonitoringProbe#getMetrics()
* @see #getMonitoringProbe()
* @generated
*/
- EAttribute getMonitoringProbe_URL();
+ EAttribute getMonitoringProbe_Metrics();
- /**
+ /**
* Returns the meta object for class '{@link org.eclipse.camf.infosystem.model.base.ResizingAction <em>Resizing Action</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1541,14 +1541,14 @@
EAttribute MONITORING_PROBE__DESCRIPTION = eINSTANCE.getMonitoringProbe_Description();
/**
- * The meta object literal for the '<em><b>URL</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Metrics</b></em>' attribute feature.
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
+ * <!-- end-user-doc -->
* @generated
*/
- EAttribute MONITORING_PROBE__URL = eINSTANCE.getMonitoringProbe_URL();
+ EAttribute MONITORING_PROBE__METRICS = eINSTANCE.getMonitoringProbe_Metrics();
- /**
+ /**
* The meta object literal for the '{@link org.eclipse.camf.infosystem.model.base.impl.ResizingActionImpl <em>Resizing Action</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.camf.infosystem.model/src/org/eclipse/camf/infosystem/model/base/MonitoringProbe.java b/plugins/org.eclipse.camf.infosystem.model/src/org/eclipse/camf/infosystem/model/base/MonitoringProbe.java
index ce97813..106c302 100644
--- a/plugins/org.eclipse.camf.infosystem.model/src/org/eclipse/camf/infosystem/model/base/MonitoringProbe.java
+++ b/plugins/org.eclipse.camf.infosystem.model/src/org/eclipse/camf/infosystem/model/base/MonitoringProbe.java
@@ -29,7 +29,7 @@
* <li>{@link org.eclipse.camf.infosystem.model.base.MonitoringProbe#getUID <em>UID</em>}</li>
* <li>{@link org.eclipse.camf.infosystem.model.base.MonitoringProbe#getName <em>Name</em>}</li>
* <li>{@link org.eclipse.camf.infosystem.model.base.MonitoringProbe#getDescription <em>Description</em>}</li>
- * <li>{@link org.eclipse.camf.infosystem.model.base.MonitoringProbe#getURL <em>URL</em>}</li>
+ * <li>{@link org.eclipse.camf.infosystem.model.base.MonitoringProbe#getMetrics <em>Metrics</em>}</li>
* </ul>
* </p>
*
@@ -121,30 +121,30 @@
void setDescription(String value);
/**
- * Returns the value of the '<em><b>URL</b></em>' attribute.
+ * Returns the value of the '<em><b>Metrics</b></em>' attribute.
* <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>URL</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>URL</em>' attribute.
- * @see #setURL(String)
- * @see org.eclipse.camf.infosystem.model.base.InfoSystemPackage#getMonitoringProbe_URL()
+ * <p>
+ * If the meaning of the '<em>Metrics</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Metrics</em>' attribute.
+ * @see #setMetrics(String)
+ * @see org.eclipse.camf.infosystem.model.base.InfoSystemPackage#getMonitoringProbe_Metrics()
* @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
* extendedMetaData="kind='element' name='URL' namespace='##targetNamespace'"
* @generated
*/
- String getURL();
+ String getMetrics();
- /**
- * Sets the value of the '{@link org.eclipse.camf.infosystem.model.base.MonitoringProbe#getURL <em>URL</em>}' attribute.
+ /**
+ * Sets the value of the '{@link org.eclipse.camf.infosystem.model.base.MonitoringProbe#getMetrics <em>Metrics</em>}' attribute.
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>URL</em>' attribute.
- * @see #getURL()
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Metrics</em>' attribute.
+ * @see #getMetrics()
* @generated
*/
- void setURL(String value);
+ void setMetrics(String value);
} // MonitoringProbe
diff --git a/plugins/org.eclipse.camf.infosystem.model/src/org/eclipse/camf/infosystem/model/base/VirtualInstance.java b/plugins/org.eclipse.camf.infosystem.model/src/org/eclipse/camf/infosystem/model/base/VirtualInstance.java
index 4735600..71f8acb 100644
--- a/plugins/org.eclipse.camf.infosystem.model/src/org/eclipse/camf/infosystem/model/base/VirtualInstance.java
+++ b/plugins/org.eclipse.camf.infosystem.model/src/org/eclipse/camf/infosystem/model/base/VirtualInstance.java
@@ -23,16 +23,11 @@
* <p>
* The following features are supported:
* <ul>
- * <li>{@link org.eclipse.camf.infosystem.model.base.VirtualInstance#getUID <em>
- * UID</em>}</li>
- * <li>{@link org.eclipse.camf.infosystem.model.base.VirtualInstance#getName
- * <em>Name</em>}</li>
- * <li>{@link org.eclipse.camf.infosystem.model.base.VirtualInstance#getStatus
- * <em>Status</em>}</li>
- * <li>{@link org.eclipse.camf.infosystem.model.base.VirtualInstance#getIPs <em>
- * IPs</em>}</li>
- * <li>{@link org.eclipse.camf.infosystem.model.base.VirtualInstance#getURI <em>
- * URI</em>}</li>
+ * <li>{@link org.eclipse.camf.infosystem.model.base.VirtualInstance#getUID <em>UID</em>}</li>
+ * <li>{@link org.eclipse.camf.infosystem.model.base.VirtualInstance#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.camf.infosystem.model.base.VirtualInstance#getStatus <em>Status</em>}</li>
+ * <li>{@link org.eclipse.camf.infosystem.model.base.VirtualInstance#getIPs <em>IPs</em>}</li>
+ * <li>{@link org.eclipse.camf.infosystem.model.base.VirtualInstance#getURI <em>URI</em>}</li>
* </ul>
* </p>
*
@@ -59,12 +54,9 @@
String getUID();
/**
- * Sets the value of the '
- * {@link org.eclipse.camf.infosystem.model.base.VirtualInstance#getUID
- * <em>UID</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
- *
- * @param value
- * the new value of the '<em>UID</em>' attribute.
+ * Sets the value of the '{@link org.eclipse.camf.infosystem.model.base.VirtualInstance#getUID <em>UID</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>UID</em>' attribute.
* @see #getUID()
* @generated
*/
@@ -88,12 +80,9 @@
String getName();
/**
- * Sets the value of the '
- * {@link org.eclipse.camf.infosystem.model.base.VirtualInstance#getName
- * <em>Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
- *
- * @param value
- * the new value of the '<em>Name</em>' attribute.
+ * Sets the value of the '{@link org.eclipse.camf.infosystem.model.base.VirtualInstance#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
* @see #getName()
* @generated
*/
@@ -147,12 +136,9 @@
String getIPs();
/**
- * Sets the value of the '
- * {@link org.eclipse.camf.infosystem.model.base.VirtualInstance#getIPs
- * <em>IPs</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
- *
- * @param value
- * the new value of the '<em>IPs</em>' attribute.
+ * Sets the value of the '{@link org.eclipse.camf.infosystem.model.base.VirtualInstance#getIPs <em>IPs</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>IPs</em>' attribute.
* @see #getIPs()
* @generated
*/
@@ -176,12 +162,9 @@
String getURI();
/**
- * Sets the value of the '
- * {@link org.eclipse.camf.infosystem.model.base.VirtualInstance#getURI
- * <em>URI</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
- *
- * @param value
- * the new value of the '<em>URI</em>' attribute.
+ * Sets the value of the '{@link org.eclipse.camf.infosystem.model.base.VirtualInstance#getURI <em>URI</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>URI</em>' attribute.
* @see #getURI()
* @generated
*/
diff --git a/plugins/org.eclipse.camf.infosystem.model/src/org/eclipse/camf/infosystem/model/base/impl/InfoSystemPackageImpl.java b/plugins/org.eclipse.camf.infosystem.model/src/org/eclipse/camf/infosystem/model/base/impl/InfoSystemPackageImpl.java
index bdc037c..1aff9bf 100644
--- a/plugins/org.eclipse.camf.infosystem.model/src/org/eclipse/camf/infosystem/model/base/impl/InfoSystemPackageImpl.java
+++ b/plugins/org.eclipse.camf.infosystem.model/src/org/eclipse/camf/infosystem/model/base/impl/InfoSystemPackageImpl.java
@@ -254,15 +254,14 @@
/**
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
+ * <!-- end-user-doc -->
* @generated
*/
- public EAttribute getMonitoringProbe_URL()
- {
+ public EAttribute getMonitoringProbe_Metrics() {
return (EAttribute)monitoringProbeEClass.getEStructuralFeatures().get(3);
}
- /**
+ /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -870,7 +869,7 @@
createEAttribute(monitoringProbeEClass, MONITORING_PROBE__UID);
createEAttribute(monitoringProbeEClass, MONITORING_PROBE__NAME);
createEAttribute(monitoringProbeEClass, MONITORING_PROBE__DESCRIPTION);
- createEAttribute(monitoringProbeEClass, MONITORING_PROBE__URL);
+ createEAttribute(monitoringProbeEClass, MONITORING_PROBE__METRICS);
resizingActionEClass = createEClass(RESIZING_ACTION);
createEAttribute(resizingActionEClass, RESIZING_ACTION__UID);
@@ -986,7 +985,7 @@
initEAttribute(getMonitoringProbe_UID(), theXMLTypePackage.getString(), "uID", null, 1, 1, MonitoringProbe.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getMonitoringProbe_Name(), theXMLTypePackage.getString(), "name", null, 1, 1, MonitoringProbe.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getMonitoringProbe_Description(), theXMLTypePackage.getString(), "description", null, 1, 1, MonitoringProbe.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getMonitoringProbe_URL(), theXMLTypePackage.getString(), "uRL", null, 1, 1, MonitoringProbe.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getMonitoringProbe_Metrics(), theXMLTypePackage.getString(), "metrics", null, 1, 1, MonitoringProbe.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(resizingActionEClass, ResizingAction.class, "ResizingAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getResizingAction_UID(), theXMLTypePackage.getString(), "uID", null, 1, 1, ResizingAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -1114,7 +1113,7 @@
"namespace", "##targetNamespace"
});
addAnnotation
- (getMonitoringProbe_URL(),
+ (getMonitoringProbe_Metrics(),
source,
new String[] {
"kind", "element",
diff --git a/plugins/org.eclipse.camf.infosystem.model/src/org/eclipse/camf/infosystem/model/base/impl/MonitoringProbeImpl.java b/plugins/org.eclipse.camf.infosystem.model/src/org/eclipse/camf/infosystem/model/base/impl/MonitoringProbeImpl.java
index bc941bc..5b50119 100644
--- a/plugins/org.eclipse.camf.infosystem.model/src/org/eclipse/camf/infosystem/model/base/impl/MonitoringProbeImpl.java
+++ b/plugins/org.eclipse.camf.infosystem.model/src/org/eclipse/camf/infosystem/model/base/impl/MonitoringProbeImpl.java
@@ -33,7 +33,7 @@
* <li>{@link org.eclipse.camf.infosystem.model.base.impl.MonitoringProbeImpl#getUID <em>UID</em>}</li>
* <li>{@link org.eclipse.camf.infosystem.model.base.impl.MonitoringProbeImpl#getName <em>Name</em>}</li>
* <li>{@link org.eclipse.camf.infosystem.model.base.impl.MonitoringProbeImpl#getDescription <em>Description</em>}</li>
- * <li>{@link org.eclipse.camf.infosystem.model.base.impl.MonitoringProbeImpl#getURL <em>URL</em>}</li>
+ * <li>{@link org.eclipse.camf.infosystem.model.base.impl.MonitoringProbeImpl#getMetrics <em>Metrics</em>}</li>
* </ul>
* </p>
*
@@ -102,26 +102,26 @@
protected String description = DESCRIPTION_EDEFAULT;
/**
- * The default value of the '{@link #getURL() <em>URL</em>}' attribute.
+ * The default value of the '{@link #getMetrics() <em>Metrics</em>}' attribute.
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getURL()
+ * <!-- end-user-doc -->
+ * @see #getMetrics()
* @generated
* @ordered
*/
- protected static final String URL_EDEFAULT = null;
+ protected static final String METRICS_EDEFAULT = null;
- /**
- * The cached value of the '{@link #getURL() <em>URL</em>}' attribute.
+ /**
+ * The cached value of the '{@link #getMetrics() <em>Metrics</em>}' attribute.
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getURL()
+ * <!-- end-user-doc -->
+ * @see #getMetrics()
* @generated
* @ordered
*/
- protected String uRL = URL_EDEFAULT;
+ protected String metrics = METRICS_EDEFAULT;
- /**
+ /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -213,28 +213,26 @@
/**
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
+ * <!-- end-user-doc -->
* @generated
*/
- public String getURL()
- {
- return uRL;
+ public String getMetrics() {
+ return metrics;
}
- /**
+ /**
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
+ * <!-- end-user-doc -->
* @generated
*/
- public void setURL(String newURL)
- {
- String oldURL = uRL;
- uRL = newURL;
+ public void setMetrics(String newMetrics) {
+ String oldMetrics = metrics;
+ metrics = newMetrics;
if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, InfoSystemPackage.MONITORING_PROBE__URL, oldURL, uRL));
+ eNotify(new ENotificationImpl(this, Notification.SET, InfoSystemPackage.MONITORING_PROBE__METRICS, oldMetrics, metrics));
}
- /**
+ /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -249,8 +247,8 @@
return getName();
case InfoSystemPackage.MONITORING_PROBE__DESCRIPTION:
return getDescription();
- case InfoSystemPackage.MONITORING_PROBE__URL:
- return getURL();
+ case InfoSystemPackage.MONITORING_PROBE__METRICS:
+ return getMetrics();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -273,8 +271,8 @@
case InfoSystemPackage.MONITORING_PROBE__DESCRIPTION:
setDescription((String)newValue);
return;
- case InfoSystemPackage.MONITORING_PROBE__URL:
- setURL((String)newValue);
+ case InfoSystemPackage.MONITORING_PROBE__METRICS:
+ setMetrics((String)newValue);
return;
}
super.eSet(featureID, newValue);
@@ -298,8 +296,8 @@
case InfoSystemPackage.MONITORING_PROBE__DESCRIPTION:
setDescription(DESCRIPTION_EDEFAULT);
return;
- case InfoSystemPackage.MONITORING_PROBE__URL:
- setURL(URL_EDEFAULT);
+ case InfoSystemPackage.MONITORING_PROBE__METRICS:
+ setMetrics(METRICS_EDEFAULT);
return;
}
super.eUnset(featureID);
@@ -320,8 +318,8 @@
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
case InfoSystemPackage.MONITORING_PROBE__DESCRIPTION:
return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
- case InfoSystemPackage.MONITORING_PROBE__URL:
- return URL_EDEFAULT == null ? uRL != null : !URL_EDEFAULT.equals(uRL);
+ case InfoSystemPackage.MONITORING_PROBE__METRICS:
+ return METRICS_EDEFAULT == null ? metrics != null : !METRICS_EDEFAULT.equals(metrics);
}
return super.eIsSet(featureID);
}
@@ -343,8 +341,8 @@
result.append(name);
result.append(", description: ");
result.append(description);
- result.append(", uRL: ");
- result.append(uRL);
+ result.append(", metrics: ");
+ result.append(metrics);
result.append(')');
return result.toString();
}
diff --git a/plugins/org.eclipse.camf.tosca.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.camf.tosca.editor/META-INF/MANIFEST.MF
index e30e05e..b459cab 100644
--- a/plugins/org.eclipse.camf.tosca.editor/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.camf.tosca.editor/META-INF/MANIFEST.MF
@@ -34,7 +34,8 @@
org.eclipse.camf.infosystem.mockup.info,
org.eclipse.core.filesystem,
org.eclipse.core.internal.filesystem.local,
- org.eclipse.ui.part
+ org.eclipse.ui.part,
+ org.json
Export-Package: org.eclipse.camf.tosca.editor,
org.eclipse.camf.tosca.editor.diagram,
org.eclipse.camf.tosca.editor.dialog,
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/ToscaDiagramEditor.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/ToscaDiagramEditor.java
index 565bc92..cd77657 100644
--- a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/ToscaDiagramEditor.java
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/ToscaDiagramEditor.java
@@ -23,6 +23,7 @@
import org.eclipse.camf.tosca.DocumentRoot;
import org.eclipse.camf.tosca.ImplementationArtifactType;
import org.eclipse.camf.tosca.SourceElementType;
+import org.eclipse.camf.tosca.TArtifactTemplate;
import org.eclipse.camf.tosca.TDeploymentArtifact;
import org.eclipse.camf.tosca.TNodeTemplate;
import org.eclipse.camf.tosca.TNodeTypeImplementation;
@@ -66,6 +67,7 @@
import org.eclipse.graphiti.mm.pictograms.ContainerShape;
import org.eclipse.graphiti.mm.pictograms.Diagram;
import org.eclipse.graphiti.mm.pictograms.PictogramElement;
+import org.eclipse.graphiti.platform.IDiagramBehavior;
//import org.eclipse.graphiti.services.Graphiti;
import org.eclipse.graphiti.ui.editor.DiagramEditor;
import org.eclipse.graphiti.ui.editor.DiagramEditorInput;
@@ -80,527 +82,540 @@
*
*/
public class ToscaDiagramEditor extends DiagramEditor {
-
- private static GraphicalViewer gViewer;
-
- private ToscaModelChangeListener toscaModelChangeListener;
-
- private TransactionalEditingDomain transactionalEditingDomain;
-
- private static IProject activeProject = null;
-
- /**
- * The Tosca Diagram Editor Constructor.
- */
- public ToscaDiagramEditor () {
- super ();
- }
-
- public static IProject getActiveProject(){
-
- return activeProject;
-
- }
-
- protected void registerBusinessObjectsListener() {
-
- this.toscaModelChangeListener = new ToscaModelChangeListener(this);
+
+ private static GraphicalViewer gViewer;
+
+ public static IDiagramBehavior db = null;
+
+ private ToscaModelChangeListener toscaModelChangeListener;
+
+ private TransactionalEditingDomain transactionalEditingDomain;
+
+ private static IProject activeProject = null;
+
+ /**
+ * The Tosca Diagram Editor Constructor.
+ */
+ public ToscaDiagramEditor () {
+
+ super ();
+
+ }
+
+ public static IProject getActiveProject(){
+
+ return activeProject;
+
+ }
+
+ protected void registerBusinessObjectsListener() {
+
+ this.toscaModelChangeListener = new ToscaModelChangeListener(this);
- final TransactionalEditingDomain ted = getEditingDomain();
- ted.addResourceSetListener(this.toscaModelChangeListener);
- }
+ final TransactionalEditingDomain ted = getEditingDomain();
+ ted.addResourceSetListener(this.toscaModelChangeListener);
+ }
- /* (non-Javadoc)
- * @see org.eclipse.graphiti.ui.editor.DiagramEditor#getEditingDomain()
- */
- @Override
- public TransactionalEditingDomain getEditingDomain() {
- TransactionalEditingDomain ted = super.getEditingDomain();
+ /* (non-Javadoc)
+ * @see org.eclipse.graphiti.ui.editor.DiagramEditor#getEditingDomain()
+ */
+ @Override
+ public TransactionalEditingDomain getEditingDomain() {
+ TransactionalEditingDomain ted = super.getEditingDomain();
- if (ted == null) {
- ted = this.transactionalEditingDomain;
- }
+ if (ted == null) {
+ ted = this.transactionalEditingDomain;
+ }
- return ted;
- }
+ return ted;
+ }
- @Override
- public void init(final IEditorSite site, final IEditorInput input) throws PartInitException {
-
- IEditorInput finalInput = null;
+ @Override
+ public void init(final IEditorSite site, final IEditorInput input) throws PartInitException {
+
+ IEditorInput finalInput = null;
- try {
- if (input instanceof ToscaDiagramEditorInput) {
- finalInput = input;
- } else {
- finalInput = createNewDiagramEditorInput(input);
- }
- } catch (CoreException exception) {
- exception.printStackTrace();
- }
+ try {
+ if (input instanceof ToscaDiagramEditorInput) {
+ finalInput = input;
+ } else {
+ finalInput = createNewDiagramEditorInput(input);
+ }
+ } catch (CoreException exception) {
+ exception.printStackTrace();
+ }
- if ( finalInput instanceof ToscaDiagramEditorInput ){
- activeProject = ((ToscaDiagramEditorInput) finalInput).getToscaFile().getProject();
- }
+ if ( finalInput instanceof ToscaDiagramEditorInput ){
+ activeProject = ((ToscaDiagramEditorInput) finalInput).getToscaFile().getProject();
+ }
- super.init(site, finalInput);
- // Refresh Palette Compartments
- getDiagramTypeProvider().getFeatureProvider().getDiagramTypeProvider().getDiagramBehavior().refreshPalette();
-
- }
-
+ super.init(site, finalInput);
+ // Refresh Palette Compartments
+ ToscaDiagramEditor.db = getDiagramTypeProvider().getFeatureProvider().getDiagramTypeProvider().getDiagramBehavior();
+ getDiagramTypeProvider().getFeatureProvider().getDiagramTypeProvider().getDiagramBehavior().refreshPalette();
+
+ }
+
- private ToscaDiagramEditorInput createNewDiagramEditorInput(final IEditorInput input) throws CoreException {
+ private ToscaDiagramEditorInput createNewDiagramEditorInput(final IEditorInput input) throws CoreException {
- final IFile dataFile = ToscaFileService.getDataFileForInput(input);
+ final IFile dataFile = ToscaFileService.getDataFileForInput(input);
- // now generate the temporary diagram file
- final IPath dataFilePath = dataFile.getFullPath();
+ // now generate the temporary diagram file
+ final IPath dataFilePath = dataFile.getFullPath();
- // get or create the corresponding temporary folder
- final IFolder tempFolder = ToscaFileService.getOrCreateTempFolder(dataFilePath);
+ // get or create the corresponding temporary folder
+ final IFolder tempFolder = ToscaFileService.getOrCreateTempFolder(dataFilePath);
- // finally get the diagram file that corresponds to the data file
- final IFile diagramFile = ToscaFileService.getTemporaryDiagramFile(dataFilePath, tempFolder);
+ // finally get the diagram file that corresponds to the data file
+ final IFile diagramFile = ToscaFileService.getTemporaryDiagramFile(dataFilePath, tempFolder);
- // Create new temporary diagram file
- ToscaDiagramCreator creator = new ToscaDiagramCreator();
+ // Create new temporary diagram file
+ ToscaDiagramCreator creator = new ToscaDiagramCreator();
- return creator.createToscaDiagram(dataFile, diagramFile, this, false);
- }
-
- @Override
- public void doSave(final IProgressMonitor monitor) {
- super.doSave(monitor);
-
-// final ToscaDiagramEditorInput tdei = (ToscaDiagramEditorInput) getEditorInput();
-
- ((BasicCommandStack) getEditingDomain().getCommandStack()).saveIsDone();
- updateDirtyState();
- }
-
- @Override
- public boolean isDirty() {
- TransactionalEditingDomain editingDomain = getEditingDomain();
- // Check that the editor is not yet disposed
- if (editingDomain != null && editingDomain.getCommandStack() != null) {
- return ((BasicCommandStack) editingDomain.getCommandStack()).isSaveNeeded();
- }
- return false;
- }
-
- @Override
- protected void setInput(final IEditorInput input) {
- super.setInput(input);
+ return creator.createToscaDiagram(dataFile, diagramFile, this, false);
+ }
+
+ @Override
+ public void doSave(final IProgressMonitor monitor) {
+ super.doSave(monitor);
+
+// final ToscaDiagramEditorInput tdei = (ToscaDiagramEditorInput) getEditorInput();
+
+ ((BasicCommandStack) getEditingDomain().getCommandStack()).saveIsDone();
+ updateDirtyState();
+ }
+
+ @Override
+ public boolean isDirty() {
+ TransactionalEditingDomain editingDomain = getEditingDomain();
+ // Check that the editor is not yet disposed
+ if (editingDomain != null && editingDomain.getCommandStack() != null) {
+ return ((BasicCommandStack) editingDomain.getCommandStack()).isSaveNeeded();
+ }
+ return false;
+ }
+
+ @Override
+ protected void setInput(final IEditorInput input) {
+ super.setInput(input);
- final ToscaDiagramEditorInput tdei = (ToscaDiagramEditorInput) input;
- final IFile dataFile = tdei.getToscaFile();
-
- final ToscaModelLayer model = new ToscaModelLayer(getDiagramTypeProvider().getFeatureProvider(), dataFile);
- ModelHandler.addModel(EcoreUtil.getURI(getDiagramTypeProvider().getDiagram()), model);
-
- DocumentRoot documentRoot = null;
- TOSCAResource toscaResource = null ;
- ICloudElement findElement = CloudModel.getRoot().findElement( dataFile );
- if (findElement instanceof TOSCAResource) {
- toscaResource = (TOSCAResource) findElement;
- }
-
- URI resourceURI = null;
- //IEditorInput eInput = getEditorInput();
-
- if( getEditorInput() instanceof ToscaDiagramEditorInput ) {
- IFile modelFile = ((ToscaDiagramEditorInput) getEditorInput()).getToscaFile();
- resourceURI = URI.createPlatformResourceURI( modelFile.getFullPath().toString(), false );
- }
-
- Exception exception = null;
- Resource resource = null;
- try {
- /* Load the resource through the editing domain. */
- resource = getEditingDomain().getResourceSet().getResource( resourceURI, true );
- } catch( Exception e ) {
- exception = e;
- resource = getEditingDomain().getResourceSet().getResource( resourceURI, false );
- }
- Diagnostic diagnostic = analyzeResourceProblems( resource, exception );
-
- if( diagnostic.getSeverity() != Diagnostic.OK ) {
- //todo
- } else {
- documentRoot = getDocumentRoot( resource );
-// documentRoot = toscaResource.getTOSCAModel().getDocumentRoot();
- }
+ final ToscaDiagramEditorInput tdei = (ToscaDiagramEditorInput) input;
+ final IFile dataFile = tdei.getToscaFile();
+
+ final ToscaModelLayer model = new ToscaModelLayer(getDiagramTypeProvider().getFeatureProvider(), dataFile);
+ ModelHandler.addModel(EcoreUtil.getURI(getDiagramTypeProvider().getDiagram()), model);
+
+ DocumentRoot documentRoot = null;
+ TOSCAResource toscaResource = null ;
+ ICloudElement findElement = CloudModel.getRoot().findElement( dataFile );
+ if (findElement instanceof TOSCAResource) {
+ toscaResource = (TOSCAResource) findElement;
+ }
+
+ URI resourceURI = null;
+ //IEditorInput eInput = getEditorInput();
+
+ if( getEditorInput() instanceof ToscaDiagramEditorInput ) {
+ IFile modelFile = ((ToscaDiagramEditorInput) getEditorInput()).getToscaFile();
+ resourceURI = URI.createPlatformResourceURI( modelFile.getFullPath().toString(), false );
+ }
+
+ Exception exception = null;
+ Resource resource = null;
+ try {
+ /* Load the resource through the editing domain. */
+ resource = getEditingDomain().getResourceSet().getResource( resourceURI, true );
+ } catch( Exception e ) {
+ exception = e;
+ resource = getEditingDomain().getResourceSet().getResource( resourceURI, false );
+ }
+ Diagnostic diagnostic = analyzeResourceProblems( resource, exception );
+
+ if( diagnostic.getSeverity() != Diagnostic.OK ) {
+ //todo
+ } else {
+ documentRoot = getDocumentRoot( resource );
+// documentRoot = toscaResource.getTOSCAModel().getDocumentRoot();
+ }
-
- if( documentRoot != null ) {
- model.setDocumentRoot( documentRoot );
- BasicCommandStack basicCommandStack = ( BasicCommandStack )getEditingDomain().getCommandStack();
- if( input instanceof DiagramEditorInput ) {
- basicCommandStack.execute( new RecordingCommand( getEditingDomain() ) {
+
+ if( documentRoot != null ) {
+ model.setDocumentRoot( documentRoot );
+ BasicCommandStack basicCommandStack = ( BasicCommandStack )getEditingDomain().getCommandStack();
+ if( input instanceof DiagramEditorInput ) {
+ basicCommandStack.execute( new RecordingCommand( getEditingDomain() ) {
- @Override
- protected void doExecute() {
- importDiagram( model );
- }
- } );
- }
- basicCommandStack.saveIsDone();
- basicCommandStack.flush();
- }
- }
-
- private final DocumentRoot getDocumentRoot( final Resource resource ) {
- // Get an iterator to iterate through all contents of the resource.
- TreeIterator<EObject> iterator = resource.getAllContents();
- DocumentRoot result = null;
- while( iterator.hasNext() ) {
- EObject testElement = iterator.next();
- /*
- * Instance-of checks for each EObject that appears in the resource. We
- * want to get the DocumentRoot EObject which is the root Element inside a
- * Tosca Document.
- */
- if( testElement instanceof DocumentRoot ) {
- result = ( DocumentRoot ) testElement;
- }
- }
- return result;
- }
-
-
- /**
- * @param resource
- * @param exception
- * @return
- */
- private Diagnostic analyzeResourceProblems( final Resource resource,
- final Exception exception )
- {
- Diagnostic basicDiagnostic = null;
- if( !resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty() ) {
- basicDiagnostic = new BasicDiagnostic( Diagnostic.ERROR,
- Activator.PLUGIN_ID,
- 0,
- String.format( Messages.getString( "ToscaEditor.CreateModelErrorMessage" ), //$NON-NLS-1$
- resource.getURI() ),
- new Object[]{
- exception == null
- ? ( Object )resource
- : exception
- } );
- ( ( BasicDiagnostic )basicDiagnostic ).merge( EcoreUtil.computeDiagnostic( resource,
- true ) );
- } else if( exception != null ) {
- basicDiagnostic = new BasicDiagnostic( Diagnostic.ERROR,
- Activator.PLUGIN_ID,
- 0,
- Messages.getString( "ToscaEditor.CreateModelErrorMessage" ), //$NON-NLS-1$
- new Object[]{
- exception
- } );
- } else {
- basicDiagnostic = Diagnostic.OK_INSTANCE;
- }
- return basicDiagnostic;
- }
-
-
- protected void importDiagram( final ToscaModelLayer model ) {
- final Diagram diagram = getDiagramTypeProvider().getDiagram();
- diagram.setActive( true );
- getEditingDomain().getCommandStack()
- .execute( new RecordingCommand( getEditingDomain() ) {
+ @Override
+ protected void doExecute() {
+ importDiagram( model );
+ }
+ } );
+ }
+ basicCommandStack.saveIsDone();
+ basicCommandStack.flush();
+ }
+ }
+
+ private final DocumentRoot getDocumentRoot( final Resource resource ) {
+ // Get an iterator to iterate through all contents of the resource.
+ TreeIterator<EObject> iterator = resource.getAllContents();
+ DocumentRoot result = null;
+ while( iterator.hasNext() ) {
+ EObject testElement = iterator.next();
+ /*
+ * Instance-of checks for each EObject that appears in the resource. We
+ * want to get the DocumentRoot EObject which is the root Element inside a
+ * Tosca Document.
+ */
+ if( testElement instanceof DocumentRoot ) {
+ result = ( DocumentRoot ) testElement;
+ }
+ }
+ return result;
+ }
+
+
+ /**
+ * @param resource
+ * @param exception
+ * @return
+ */
+ private Diagnostic analyzeResourceProblems( final Resource resource,
+ final Exception exception )
+ {
+ Diagnostic basicDiagnostic = null;
+ if( !resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty() ) {
+ basicDiagnostic = new BasicDiagnostic( Diagnostic.ERROR,
+ Activator.PLUGIN_ID,
+ 0,
+ String.format( Messages.getString( "ToscaEditor.CreateModelErrorMessage" ), //$NON-NLS-1$
+ resource.getURI() ),
+ new Object[]{
+ exception == null
+ ? ( Object )resource
+ : exception
+ } );
+ ( ( BasicDiagnostic )basicDiagnostic ).merge( EcoreUtil.computeDiagnostic( resource,
+ true ) );
+ } else if( exception != null ) {
+ basicDiagnostic = new BasicDiagnostic( Diagnostic.ERROR,
+ Activator.PLUGIN_ID,
+ 0,
+ Messages.getString( "ToscaEditor.CreateModelErrorMessage" ), //$NON-NLS-1$
+ new Object[]{
+ exception
+ } );
+ } else {
+ basicDiagnostic = Diagnostic.OK_INSTANCE;
+ }
+ return basicDiagnostic;
+ }
+
+
+ protected void importDiagram( final ToscaModelLayer model ) {
+ final Diagram diagram = getDiagramTypeProvider().getDiagram();
+ diagram.setActive( true );
+ getEditingDomain().getCommandStack()
+ .execute( new RecordingCommand( getEditingDomain() ) {
- @Override
- protected void doExecute() {
- if (model.getDocumentRoot() != null) {
- DocumentRoot documentRoot = model.getDocumentRoot();
- DefinitionsType definitionsType = documentRoot.getDefinitions();
- EList<TServiceTemplate> serviceTemplates = definitionsType.getServiceTemplate();
- EList<TNodeTypeImplementation> nodeTypesImplementation = definitionsType.getNodeTypeImplementation();
-
- Boolean substitute = false;
- ContainerShape containerShapeTST = null;
-
- for (TServiceTemplate tst : serviceTemplates) {
-
- if ( tst.getSubstitutableNodeType() != null ){
- //tst is a group component
- TServiceTemplateExtension tstG = (TServiceTemplateExtension) tst;
- addContainerElement (tst, containerShapeTST, tstG.getX(), tstG.getY(), tstG.getWidth(), tstG.getHeight());
- substitute = true;
- }
-
- else{
- TServiceTemplateExtension tste = (TServiceTemplateExtension) tst;
- addContainerElement (tst, diagram, 0, 0, tste.getWidth(), tste.getHeight());
- containerShapeTST = ( ContainerShape )getDiagramTypeProvider().getFeatureProvider()
- .getPictogramElementForBusinessObject( tst );
- }
-
- ContainerShape containerShape = ( ContainerShape )getDiagramTypeProvider().getFeatureProvider()
- .getPictogramElementForBusinessObject( tst );
-
- TTopologyTemplate topology = tst.getTopologyTemplate();
-
- if (topology == null)
- break;
-
- for (TNodeTemplate tnt : topology.getNodeTemplate()) {
+ @Override
+ protected void doExecute() {
+ if (model.getDocumentRoot() != null) {
+ DocumentRoot documentRoot = model.getDocumentRoot();
+ DefinitionsType definitionsType = documentRoot.getDefinitions();
+ EList<TServiceTemplate> serviceTemplates = definitionsType.getServiceTemplate();
+ EList<TNodeTypeImplementation> nodeTypesImplementation = definitionsType.getNodeTypeImplementation();
+ EList<TArtifactTemplate> artifactTemplates = definitionsType.getArtifactTemplate();
+
+ Boolean substitute = false;
+ ContainerShape containerShapeTST = null;
+
+ for (TServiceTemplate tst : serviceTemplates) {
+
+ if ( tst.getSubstitutableNodeType() != null ){
+ //tst is a group component
+ TServiceTemplateExtension tstG = (TServiceTemplateExtension) tst;
+ addContainerElement (tst, containerShapeTST, tstG.getX(), tstG.getY(), tstG.getWidth(), tstG.getHeight());
+ substitute = true;
+ }
+
+ else{
+ TServiceTemplateExtension tste = (TServiceTemplateExtension) tst;
+ addContainerElement (tst, diagram, 0, 0, tste.getWidth(), tste.getHeight());
+ containerShapeTST = ( ContainerShape )getDiagramTypeProvider().getFeatureProvider()
+ .getPictogramElementForBusinessObject( tst );
+ }
+
+ ContainerShape containerShape = ( ContainerShape )getDiagramTypeProvider().getFeatureProvider()
+ .getPictogramElementForBusinessObject( tst );
+
+ TTopologyTemplate topology = tst.getTopologyTemplate();
+
+ if (topology == null)
+ break;
+
+ for (TNodeTemplate tnt : topology.getNodeTemplate()) {
- if ( (tnt.getType()!=null) && (tnt.getType().toString().contains( "substituteNode" )) ) {//$NON-NLS-1$
- continue;
- }
-
- TNodeTemplateExtension tnte = (TNodeTemplateExtension) tnt;
- addContainerElement( tnt, containerShape, tnte.getX(), tnte.getY(), tnte.getWidth(), tnte.getHeight() );
-
- ContainerShape containerShapeTNT = ( ContainerShape )getDiagramTypeProvider().getFeatureProvider()
- .getPictogramElementForBusinessObject( tnt );
-
- //Add Deployment Artifacts
- if ( tnt.getDeploymentArtifacts() != null && tnt.getDeploymentArtifacts().getDeploymentArtifact() != null ){
- for (TDeploymentArtifact tda : tnt.getDeploymentArtifacts().getDeploymentArtifact() ){
+ if ( (tnt.getType()!=null) && (tnt.getType().toString().contains( "substituteNode" )) ) {//$NON-NLS-1$
+ continue;
+ }
+
+ TNodeTemplateExtension tnte = (TNodeTemplateExtension) tnt;
+ addContainerElement( tnt, containerShape, tnte.getX(), tnte.getY(), tnte.getWidth(), tnte.getHeight() );
+
+ ContainerShape containerShapeTNT = ( ContainerShape )getDiagramTypeProvider().getFeatureProvider()
+ .getPictogramElementForBusinessObject( tnt );
+
+ //Add Deployment Artifacts
+ if ( tnt.getDeploymentArtifacts() != null && tnt.getDeploymentArtifacts().getDeploymentArtifact() != null ){
+ for (TDeploymentArtifact tda : tnt.getDeploymentArtifacts().getDeploymentArtifact() ){
- addContainerElement( tda, containerShapeTNT, 0, 0, 0, 0 );
-
- }
- }
-
-// //Find NodeTypeImplementation
-// TNodeTypeImplementation nodeTypeImplementation = null;
-// for (TNodeTypeImplementation tempNodeImplementation : nodeTypesImplementation){
-// if (tnt.getName().equals( tempNodeImplementation.getNodeType().toString())){
-// nodeTypeImplementation = tempNodeImplementation;
-// break;
-// }
-// }
-// if (nodeTypeImplementation!=null && nodeTypeImplementation.getImplementationArtifacts()!=null){
-// EList<ImplementationArtifactType> implementationArtifacts = nodeTypeImplementation.getImplementationArtifacts().getImplementationArtifact();
-// for (ImplementationArtifactType tempImplementationArtifact : implementationArtifacts){
-// addContainerElement( tempImplementationArtifact, containerShapeTNT, 0, 0, 0, 0 );
-// }
-// }
-
- }
-
- if ( substitute ){
- //Composite Component Service Template
- //Add deployment artifacts to composite component's service template
-
- for (TServiceTemplate tempTst : serviceTemplates) {
- for (TNodeTemplate tnt : tempTst.getTopologyTemplate().getNodeTemplate()) {
-
-
- if ( tst.getSubstitutableNodeType() != null && (tnt.getType()!=null) && tnt.getType().toString().equals( tst.getSubstitutableNodeType().toString()) ){
- //Found the service template that substitutes the specific node template
-
- ContainerShape containerShapeTNT = ( ContainerShape )getDiagramTypeProvider().getFeatureProvider()
- .getPictogramElementForBusinessObject( tst );
-
- //Add Deployment Artifacts
- if ( tnt.getDeploymentArtifacts() != null && tnt.getDeploymentArtifacts().getDeploymentArtifact() != null ){
- for (TDeploymentArtifact tda : tnt.getDeploymentArtifacts().getDeploymentArtifact() ){
+ addContainerElement( tda, containerShapeTNT, 0, 0, 0, 0 );
+
+ }
+ }
+
+ //Find NodeTypeImplementation
+ TNodeTypeImplementation nodeTypeImplementation = null;
+ for (TNodeTypeImplementation tempNodeImplementation : nodeTypesImplementation){
+ if (tnt.getName().equals( tempNodeImplementation.getNodeType().toString())){
+ nodeTypeImplementation = tempNodeImplementation;
+ break;
+ }
+ }
+ if (nodeTypeImplementation!=null && nodeTypeImplementation.getImplementationArtifacts()!=null){
+ EList<ImplementationArtifactType> implementationArtifacts = nodeTypeImplementation.getImplementationArtifacts().getImplementationArtifact();
+ for (ImplementationArtifactType tempImplementationArtifact : implementationArtifacts){
+ if (tempImplementationArtifact.getOperationName().equals( "execute" ))
+ {
+ for (TArtifactTemplate tempArtifactTemplate : artifactTemplates){
+ if (tempArtifactTemplate.getId().equals(tempImplementationArtifact.getArtifactRef().toString()))
+ addContainerElement( tempArtifactTemplate, containerShapeTNT, 0, 0, 0, 0 );
+ }
+ }
+
+ }
+ }
+
+ }
+
+ if ( substitute ){
+ //Composite Component Service Template
+ //Add deployment artifacts to composite component's service template
+
+ for (TServiceTemplate tempTst : serviceTemplates) {
+ for (TNodeTemplate tnt : tempTst.getTopologyTemplate().getNodeTemplate()) {
+
+
+ if ( tst.getSubstitutableNodeType() != null && (tnt.getType()!=null) && tnt.getType().toString().equals( tst.getSubstitutableNodeType().toString()) ){
+ //Found the service template that substitutes the specific node template
+
+ ContainerShape containerShapeTNT = ( ContainerShape )getDiagramTypeProvider().getFeatureProvider()
+ .getPictogramElementForBusinessObject( tst );
+
+ //Add Deployment Artifacts
+ if ( tnt.getDeploymentArtifacts() != null && tnt.getDeploymentArtifacts().getDeploymentArtifact() != null ){
+ for (TDeploymentArtifact tda : tnt.getDeploymentArtifacts().getDeploymentArtifact() ){
- addContainerElement( tda, containerShapeTNT, 0, 0, 0, 0 );
-
- }
- }
- break;
- }
-
-
- }
- }
- substitute = false;
- }
- else{
- //Application Service Template
- //Add deployment artifacts to application's service template
-
- }
+ addContainerElement( tda, containerShapeTNT, 0, 0, 0, 0 );
+
+ }
+ }
+ break;
+ }
+
+
+ }
+ }
+ substitute = false;
+ }
+ else{
+ //Application Service Template
+ //Add deployment artifacts to application's service template
+
+ }
- }
-
- //Add Relationships
- for (TServiceTemplate tst : serviceTemplates) {
-
- if ( tst.getTopologyTemplate() == null )
- continue;
-
- for (TRelationshipTemplate trt : tst.getTopologyTemplate().getRelationshipTemplate()) {
-
- SourceElementType se = trt.getSourceElement();
- TargetElementType te = trt.getTargetElement();
- String sourceID = se.getRef();
- String targetID = te.getRef();
- Anchor sourceAnchor = null, targetAnchor = null;
- for (TServiceTemplate tstTemp : serviceTemplates) {
- for (TNodeTemplate tnt : tstTemp.getTopologyTemplate().getNodeTemplate()) {
-
- ContainerShape containerShapeTNT;
-
- if ( tnt.getId().equals(sourceID) ){
- if ( (tnt.getType()!=null) && (tnt.getType().toString().contains( "substituteNode" ) == true) ){
- containerShapeTNT = getAnchorContainer(model, tnt);
- }else{
- containerShapeTNT = ( ContainerShape )getDiagramTypeProvider().getFeatureProvider()
- .getPictogramElementForBusinessObject( tnt );
- }
- if ( containerShapeTNT.getAnchors() != null ){
- for ( Anchor anchor : containerShapeTNT.getAnchors() ){
- if (anchor instanceof ChopboxAnchor){
- sourceAnchor = anchor;
- break;
- }
- }
- }
-
- } else if ( tnt.getId().equals(targetID) ){
- if ( ((tnt.getType()!=null)) && (tnt.getType().toString().contains( "substituteNode" ) == true) ){
- containerShapeTNT = getAnchorContainer(model, tnt);
- }else{
- containerShapeTNT = ( ContainerShape )getDiagramTypeProvider().getFeatureProvider()
- .getPictogramElementForBusinessObject( tnt );
- }
- if ( containerShapeTNT.getAnchors() != null ){
- for ( Anchor anchor : containerShapeTNT.getAnchors() ){
- if (anchor instanceof ChopboxAnchor){
- targetAnchor = anchor;
- break;
- }
- }
- }
- }
- }
- }
-
-
- addRelationshipContainerElement( trt, sourceAnchor, targetAnchor );
- }
- }
- }
- }
+ }
+
+ //Add Relationships
+ for (TServiceTemplate tst : serviceTemplates) {
+
+ if ( tst.getTopologyTemplate() == null )
+ continue;
+
+ for (TRelationshipTemplate trt : tst.getTopologyTemplate().getRelationshipTemplate()) {
+
+ SourceElementType se = trt.getSourceElement();
+ TargetElementType te = trt.getTargetElement();
+ String sourceID = se.getRef();
+ String targetID = te.getRef();
+ Anchor sourceAnchor = null, targetAnchor = null;
+ for (TServiceTemplate tstTemp : serviceTemplates) {
+ for (TNodeTemplate tnt : tstTemp.getTopologyTemplate().getNodeTemplate()) {
+
+ ContainerShape containerShapeTNT;
+
+ if ( tnt.getId().equals(sourceID) ){
+ if ( (tnt.getType()!=null) && (tnt.getType().toString().contains( "substituteNode" ) == true) ){
+ containerShapeTNT = getAnchorContainer(model, tnt);
+ }else{
+ containerShapeTNT = ( ContainerShape )getDiagramTypeProvider().getFeatureProvider()
+ .getPictogramElementForBusinessObject( tnt );
+ }
+ if ( containerShapeTNT.getAnchors() != null ){
+ for ( Anchor anchor : containerShapeTNT.getAnchors() ){
+ if (anchor instanceof ChopboxAnchor){
+ sourceAnchor = anchor;
+ break;
+ }
+ }
+ }
+
+ } else if ( tnt.getId().equals(targetID) ){
+ if ( ((tnt.getType()!=null)) && (tnt.getType().toString().contains( "substituteNode" ) == true) ){
+ containerShapeTNT = getAnchorContainer(model, tnt);
+ }else{
+ containerShapeTNT = ( ContainerShape )getDiagramTypeProvider().getFeatureProvider()
+ .getPictogramElementForBusinessObject( tnt );
+ }
+ if ( containerShapeTNT.getAnchors() != null ){
+ for ( Anchor anchor : containerShapeTNT.getAnchors() ){
+ if (anchor instanceof ChopboxAnchor){
+ targetAnchor = anchor;
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+ addRelationshipContainerElement( trt, sourceAnchor, targetAnchor );
+ }
+ }
+ }
+ }
- } );
- }
-
-
- private ContainerShape getAnchorContainer(final ToscaModelLayer model, TNodeTemplate nodeTemplate){
- // Find the substitute TServiceTemplate
- TServiceTemplate substituteNode = null;
+ } );
+ }
+
+
+ private ContainerShape getAnchorContainer(final ToscaModelLayer model, TNodeTemplate nodeTemplate){
+ // Find the substitute TServiceTemplate
+ TServiceTemplate substituteNode = null;
- for (TServiceTemplate tempServiceTemplate : model.getDocumentRoot()
- .getDefinitions()
- .getServiceTemplate()){
-
- if (tempServiceTemplate.getSubstitutableNodeType() != null &&
- tempServiceTemplate.getId().equals(nodeTemplate.getId()))
- {
- substituteNode = tempServiceTemplate;
- break;
- }
- }
- return ( ContainerShape )getDiagramTypeProvider().getFeatureProvider()
- .getPictogramElementForBusinessObject( substituteNode );
- }
-
- protected PictogramElement addContainerElement( final EObject element,
- final ContainerShape parent, int x_axis, int y_axis, int width, int height )
- {
-
- final IFeatureProvider featureProvider = getDiagramTypeProvider().getFeatureProvider();
-
- AddContext context = new AddContext( new AreaContext(), element );
- IAddFeature addFeature = featureProvider.getAddFeature( context );
- context.setNewObject( element );
- context.setTargetContainer( parent );
- context.setLocation(x_axis, y_axis);
- context.setSize( width, height );
- PictogramElement pictElement = null;
-
- boolean canAdd = false;
- if (addFeature != null) {
- canAdd = addFeature.canAdd( context ) ;
- }
-
- if( canAdd ) {
- pictElement = addFeature.add( context );
-
- if (element instanceof TDeploymentArtifact && ((TDeploymentArtifact) element).getArtifactType().toString().compareTo( "MonitoringProbe" )==0){
- //There is no pictogram element linked to the monitoring image
- return pictElement;
- }
- else{
- featureProvider.link( pictElement, new Object[]{ element } );
- return pictElement;
- }
- }
-
- return null;
+ for (TServiceTemplate tempServiceTemplate : model.getDocumentRoot()
+ .getDefinitions()
+ .getServiceTemplate()){
+
+ if (tempServiceTemplate.getSubstitutableNodeType() != null &&
+ tempServiceTemplate.getId().equals(nodeTemplate.getId()))
+ {
+ substituteNode = tempServiceTemplate;
+ break;
+ }
+ }
+ return ( ContainerShape )getDiagramTypeProvider().getFeatureProvider()
+ .getPictogramElementForBusinessObject( substituteNode );
+ }
+
+ protected PictogramElement addContainerElement( final EObject element,
+ final ContainerShape parent, int x_axis, int y_axis, int width, int height )
+ {
+
+ final IFeatureProvider featureProvider = getDiagramTypeProvider().getFeatureProvider();
+
+ AddContext context = new AddContext( new AreaContext(), element );
+ IAddFeature addFeature = featureProvider.getAddFeature( context );
+ context.setNewObject( element );
+ context.setTargetContainer( parent );
+ context.setLocation(x_axis, y_axis);
+ context.setSize( width, height );
+ PictogramElement pictElement = null;
+
+ boolean canAdd = false;
+ if (addFeature != null) {
+ canAdd = addFeature.canAdd( context ) ;
+ }
+
+ if( canAdd ) {
+ pictElement = addFeature.add( context );
+
+ if (element instanceof TDeploymentArtifact && ((TDeploymentArtifact) element).getArtifactType().toString().compareTo( "MonitoringProbe" )==0){
+ //There is no pictogram element linked to the monitoring image
+ return pictElement;
+ }
+ else{
+ featureProvider.link( pictElement, new Object[]{ element } );
+ return pictElement;
+ }
+ }
+
+ return null;
- }
+ }
- protected PictogramElement addRelationshipContainerElement( final EObject element,
- final Anchor sourceAnchor, final Anchor targetAnchor ){
-
- if (sourceAnchor == null)
- return null;
-
- if (targetAnchor == null)
- return null;
-
- AddConnectionContext context = new AddConnectionContext(sourceAnchor, targetAnchor);
- context.setNewObject( element );
-
- final IFeatureProvider featureProvider = getDiagramTypeProvider().getFeatureProvider();
- IAddFeature addFeature = featureProvider.getAddFeature( context );
-
- PictogramElement pictElement = null;
-
- boolean canAdd = addFeature.canAdd( context ) ;
-
- if( canAdd ) {
- pictElement = addFeature.add( context );
- featureProvider.link( pictElement, new Object[]{ element } );
- }
-
- return pictElement;
+ protected PictogramElement addRelationshipContainerElement( final EObject element,
+ final Anchor sourceAnchor, final Anchor targetAnchor ){
+
+ if (sourceAnchor == null)
+ return null;
+
+ if (targetAnchor == null)
+ return null;
+
+ AddConnectionContext context = new AddConnectionContext(sourceAnchor, targetAnchor);
+ context.setNewObject( element );
+
+ final IFeatureProvider featureProvider = getDiagramTypeProvider().getFeatureProvider();
+ IAddFeature addFeature = featureProvider.getAddFeature( context );
+
+ PictogramElement pictElement = null;
+
+ boolean canAdd = addFeature.canAdd( context ) ;
+
+ if( canAdd ) {
+ pictElement = addFeature.add( context );
+ featureProvider.link( pictElement, new Object[]{ element } );
+ }
+
+ return pictElement;
- }
+ }
-
-
- @Override
- public void createPartControl(Composite parent) {
- super.createPartControl(parent);
- // hides grid on diagram, but you can reenable it
- if (getGraphicalViewer() != null && getGraphicalViewer().getEditPartRegistry() != null) {
- ScalableFreeformRootEditPart rootEditPart = (ScalableFreeformRootEditPart) getGraphicalViewer().getEditPartRegistry().get(LayerManager.ID);
- IFigure gridFigure = ((LayerManager) rootEditPart).getLayer(LayerConstants.GRID_LAYER);
- gridFigure.setVisible(true);
- }
- // setPartName("MyDiagram2");
- }
+
+
+ @Override
+ public void createPartControl(Composite parent) {
+ super.createPartControl(parent);
+ // hides grid on diagram, but you can reenable it
+ if (getGraphicalViewer() != null && getGraphicalViewer().getEditPartRegistry() != null) {
+ ScalableFreeformRootEditPart rootEditPart = (ScalableFreeformRootEditPart) getGraphicalViewer().getEditPartRegistry().get(LayerManager.ID);
+ IFigure gridFigure = ((LayerManager) rootEditPart).getLayer(LayerConstants.GRID_LAYER);
+ gridFigure.setVisible(true);
+ }
+ // setPartName("MyDiagram2");
+ }
-// @Override
-// protected ContextMenuProvider createContextMenuProvider() {
-// return new ActivitiEditorContextMenuProvider(getGraphicalViewer(), getActionRegistry(), getDiagramTypeProvider());
-// }
+ // @Override
+ // protected ContextMenuProvider createContextMenuProvider() {
+// return new ActivitiEditorContextMenuProvider(getGraphicalViewer(), getActionRegistry(), getDiagramTypeProvider());
+ // }
- public static GraphicalViewer getActiveGraphicalViewer() {
- return gViewer;
- }
+ public static GraphicalViewer getActiveGraphicalViewer() {
+ return gViewer;
+ }
- @Override
- public void dispose() {
- super.dispose();
+ @Override
+ public void dispose() {
+ super.dispose();
- final ToscaDiagramEditorInput tdei = (ToscaDiagramEditorInput) getEditorInput();
+ final ToscaDiagramEditorInput tdei = (ToscaDiagramEditorInput) getEditorInput();
- ModelHandler.removeModel(EcoreUtil.getURI(getDiagramTypeProvider().getDiagram()));
- ToscaDiagramCreator.dispose(tdei.getDiagramFile());
- }
-
-}
+ ModelHandler.removeModel(EcoreUtil.getURI(getDiagramTypeProvider().getDiagram()));
+ ToscaDiagramCreator.dispose(tdei.getDiagramFile());
+ }
+
+ }
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/diagram/ToscaFeatureProvider.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/diagram/ToscaFeatureProvider.java
index 108608c..9b87766 100644
--- a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/diagram/ToscaFeatureProvider.java
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/diagram/ToscaFeatureProvider.java
@@ -22,6 +22,7 @@
import org.eclipse.camf.core.model.impl.ResourceCloudElement;
import org.eclipse.camf.infosystem.model.base.ResizingAction;
+import org.eclipse.camf.tosca.TArtifactTemplate;
import org.eclipse.camf.tosca.TDeploymentArtifact;
import org.eclipse.camf.tosca.TNodeTemplate;
import org.eclipse.camf.tosca.TRelationshipTemplate;
@@ -50,6 +51,7 @@
import org.eclipse.camf.tosca.editor.features.CreateUserApplicationFeature;
import org.eclipse.camf.tosca.editor.features.CreateVMIFeature;
import org.eclipse.camf.tosca.editor.features.DeleteApplicationComponentFeature;
+import org.eclipse.camf.tosca.editor.features.DeleteArtifactTemplateFeature;
import org.eclipse.camf.tosca.editor.features.DeleteDeploymentArtifactFeature;
import org.eclipse.camf.tosca.editor.features.DeleteGroupFeature;
import org.eclipse.camf.tosca.editor.features.DirectEditApplicationComponentFeature;
@@ -64,6 +66,7 @@
import org.eclipse.camf.tosca.editor.features.ResizeCompositeComponentFeature;
import org.eclipse.camf.tosca.editor.features.UpdateApplicationComponentFeature;
import org.eclipse.camf.tosca.editor.features.UpdateCompositeComponentFeature;
+import org.eclipse.camf.tosca.elasticity.Tosca_Elasticity_ExtensionsPackage;
import org.eclipse.core.resources.IFile;
import org.eclipse.graphiti.dt.IDiagramTypeProvider;
import org.eclipse.graphiti.features.IAddFeature;
@@ -94,230 +97,214 @@
import org.eclipse.graphiti.ui.features.DefaultFeatureProvider;
public class ToscaFeatureProvider extends DefaultFeatureProvider {
+
+ private String imageType = Tosca_Elasticity_ExtensionsPackage.eINSTANCE.getImageArtifactPropertiesType().getName();
- public ToscaFeatureProvider( final IDiagramTypeProvider dtp ) {
- super( dtp );
- }
+ public ToscaFeatureProvider( final IDiagramTypeProvider dtp ) {
+ super( dtp );
+ }
- // Returns the add feature for the context
- @Override
- public IAddFeature getAddFeature( final IAddContext context ) {
- if( context.getNewObject() instanceof TNodeTemplate ) {
- return new AddApplicationComponentFeature( this );
- }
-// else if( context.getNewObject() instanceof TRelationshipTemplate
-// && ( ( TRelationshipTemplate )context.getNewObject() ).getType().toString().compareTo("Bidirected") == 0 ) //$NON-NLS-1$
-// {
-// return new AddBidirectionalRelationFeature( this );
-// }
- else if( context.getNewObject() instanceof TRelationshipTemplate ) {
- return new AddDirectedRelationFeature( this );
- } else if( context.getNewObject() instanceof TDeploymentArtifact ) {
- if (((TDeploymentArtifact)context.getNewObject()).getArtifactType().toString().compareTo( "UA" )==0)
- return new AddUserApplicationFeature( this );
- else if (((TDeploymentArtifact)context.getNewObject()).getArtifactType().toString().compareTo( "SD" )==0)
- return new AddSoftwareDependencyFeature( this );
- else if (((TDeploymentArtifact)context.getNewObject()).getArtifactType().toString().compareTo( "VMI" )==0)
- return new AddVirtualMachineFeature( this );
- else if (((TDeploymentArtifact)context.getNewObject()).getArtifactType().toString().compareTo( "KeyPair" )==0)
- return new AddKeyPairFeature( this );
- else if (((TDeploymentArtifact)context.getNewObject()).getArtifactType().toString().compareTo( "Network" )==0)
- return new AddNetworkFeature( this );
- else if (((TDeploymentArtifact)context.getNewObject()).getArtifactType().toString().compareTo( "MonitoringProbe" )==0)
- return new AddMonitorProbeFeature( this );
-
- } else if( context.getNewObject() instanceof ResourceCloudElement) {
-
- return getIFileFeature(context);
- }
- else if( context.getNewObject() instanceof ResizingAction ) {
- return new AddResizingActionFeature( this );
- }
- // its a substitutional Service Template
- else if( context.getNewObject() instanceof TServiceTemplate
- && ( ( TServiceTemplate )context.getNewObject() ).getSubstitutableNodeType() != null )
- {
- return new AddGroupFeature( this );
- } else if( context.getNewObject() instanceof TServiceTemplate ) {
- return new AddServiceTemplateFeature( this );
- }
- return super.getAddFeature( context );
- }
+ // Returns the add feature for the context
+ @Override
+ public IAddFeature getAddFeature( final IAddContext context ) {
+ if( context.getNewObject() instanceof TNodeTemplate ) {
+ return new AddApplicationComponentFeature( this );
+ }
+ else if( context.getNewObject() instanceof TRelationshipTemplate ) {
+ return new AddDirectedRelationFeature( this );
+ } else if( context.getNewObject() instanceof TDeploymentArtifact ) {
+ if (((TDeploymentArtifact)context.getNewObject()).getArtifactType().toString().compareTo( "UA" )==0)
+ return new AddUserApplicationFeature( this );
+ else if (((TDeploymentArtifact)context.getNewObject()).getArtifactType().getLocalPart().compareTo( imageType )==0)
+ return new AddVirtualMachineFeature( this );
+ else if (((TDeploymentArtifact)context.getNewObject()).getArtifactType().toString().compareTo( "KeyPair" )==0)
+ return new AddKeyPairFeature( this );
+ else if (((TDeploymentArtifact)context.getNewObject()).getArtifactType().toString().compareTo( "MonitoringProbe" )==0)
+ return new AddMonitorProbeFeature( this );
+
+ }else if (context.getNewObject() instanceof TArtifactTemplate){
+ if (((TArtifactTemplate)context.getNewObject()).getName()!=null && ((TArtifactTemplate)context.getNewObject()).getName().contains( "SD" ))
+ return new AddSoftwareDependencyFeature( this );
+ }
+
+ else if( context.getNewObject() instanceof ResourceCloudElement) {
+
+ return getIFileFeature(context);
+ }
+ else if( context.getNewObject() instanceof ResizingAction ) {
+ return new AddResizingActionFeature( this );
+ }
+ // its a substitutional Service Template
+ else if( context.getNewObject() instanceof TServiceTemplate
+ && ( ( TServiceTemplate )context.getNewObject() ).getSubstitutableNodeType() != null )
+ {
+ return new AddGroupFeature( this );
+ } else if( context.getNewObject() instanceof TServiceTemplate ) {
+ return new AddServiceTemplateFeature( this );
+ }
+ return super.getAddFeature( context );
+ }
- /**
- * @return
- */
- private AbstractAddShapeFeature getIFileFeature(final IAddContext context) {
- ResourceCloudElement element = (ResourceCloudElement) context
- .getNewObject();
- AbstractAddShapeFeature result = null;
+ /**
+ * @return
+ */
+ private AbstractAddShapeFeature getIFileFeature(final IAddContext context) {
+ ResourceCloudElement element = (ResourceCloudElement) context.getNewObject();
+ AbstractAddShapeFeature result = null;
+
+ String extension = element.getResource().getFileExtension();
+ System.out.println(extension);
- String extension = element.getResource().getFileExtension();
-
- TDeploymentArtifact deploymentArtifact = ToscaFactory.eINSTANCE
- .createTDeploymentArtifact();
- deploymentArtifact.setName(element.getName());
- CreateContext createContext = new CreateContext();
- createContext.setTargetContainer(context.getTargetContainer());
+ if (extension.equals( "pub" )) { //$NON-NLS-1$
+ // Call the Create User Application Feature to create a deployment artifact for the deployment script and add it to the artifacts list
+ CreateKeyPairFeature createKPFeature = new CreateKeyPairFeature( new ToscaFeatureProvider(getDiagramTypeProvider()) );
+
+ TDeploymentArtifact deploymentArtifact = ToscaFactory.eINSTANCE.createTDeploymentArtifact();
+ deploymentArtifact.setName( element.getName() );
+ deploymentArtifact.setArtifactType( new QName( "KeyPair" ) );
+
+ createKPFeature.setContextObject( deploymentArtifact );
+
+ CreateContext createContext = new CreateContext();
+ createContext.setTargetContainer( context.getTargetContainer() );
+
+ if ( createKPFeature.canCreate( createContext )){
+ createKPFeature.create( createContext );
+ }
+
+ }
+
+ return result;
+ }
+
- if (extension.equals("pub")) { //$NON-NLS-1$
- // Call the Create User Application Feature to create a deployment
- // artifact for the deployment script and add it to the artifacts
- // list
- CreateKeyPairFeature createKPFeature = new CreateKeyPairFeature(
- new ToscaFeatureProvider(getDiagramTypeProvider()));
+ // Initializes all create features
+ @Override
+ public ICreateFeature[] getCreateFeatures() {
+ return new ICreateFeature[]{
+ new CreateApplicationComponentFeature( this ),
+ new CreateVMIFeature( this ),
+ new CreateSoftwareDependencyFeature( this ),
+ new CreateMonitorProbeFeature( this ),
+ new CreateServiceTemplateFeature( this ),
+ new CreateResizeActionFeature( this ),
+ new CreateUserApplicationFeature( this ),
+ new CreateGroupFeature( this ),
+ new CreateKeyPairFeature( this )
+ };
+ }
- deploymentArtifact.setArtifactType(new QName("KeyPair"));
+ // Custom delete feature for application components and composite components
+ @Override
+ public IDeleteFeature getDeleteFeature(IDeleteContext context){
+ PictogramElement pictogramElement = context.getPictogramElement();
+ Object bo = getBusinessObjectForPictogramElement( pictogramElement );
+ if( bo instanceof TServiceTemplate ) {
+ //TServiceTemplate representing Composite Component
+ return new DeleteGroupFeature( this );
+ }
+ else if (bo instanceof TNodeTemplate){
+ return new DeleteApplicationComponentFeature( this );
+ }
+ else if ( bo instanceof TDeploymentArtifact){
+ return new DeleteDeploymentArtifactFeature( this );
+ }else if (bo instanceof TArtifactTemplate){
+ if (((TArtifactTemplate)bo).getName()!=null && ((TArtifactTemplate)bo).getName().contains( "SD" ))
+ return new DeleteArtifactTemplateFeature( this );
+ }
+
+ return super.getDeleteFeature( context );
+ }
+
+ // Enables direct editing
+ @Override
+ public IDirectEditingFeature getDirectEditingFeature( final IDirectEditingContext context )
+ {
+ PictogramElement pe = context.getPictogramElement();
+ Object bo = getBusinessObjectForPictogramElement( pe );
+ if( bo instanceof TNodeTemplate ) {
+ return new DirectEditApplicationComponentFeature( this );
+ }
+ else if( bo instanceof TServiceTemplate ) {
+ return new DirectEditCompositeComponentFeature( this );
+ }
+ return super.getDirectEditingFeature( context );
+ }
- createKPFeature.setContextObject(deploymentArtifact);
+ // Returns layout features
+ @Override
+ public ILayoutFeature getLayoutFeature( final ILayoutContext context ) {
+ PictogramElement pictogramElement = context.getPictogramElement();
+ Object bo = getBusinessObjectForPictogramElement( pictogramElement );
+ if( bo instanceof TNodeTemplate ) {
+ return new LayoutApplicationComponentFeature( this );
+ }
+ if ( bo instanceof TServiceTemplate ){
+ return new LayoutServiceTemplateFeature( this );
+ }
+ return super.getLayoutFeature( context );
+ }
- if (createKPFeature.canCreate(createContext)) {
- createKPFeature.create(createContext);
- }
+ // Enables update features
+ @Override
+ public IUpdateFeature getUpdateFeature( final IUpdateContext context ) {
+ PictogramElement pictogramElement = context.getPictogramElement();
+ if( pictogramElement instanceof ContainerShape ) {
+ Object bo = getBusinessObjectForPictogramElement( pictogramElement );
+ if( bo instanceof TNodeTemplate ) {
+ return new UpdateApplicationComponentFeature( this );
+ }
+ else if( bo instanceof TServiceTemplate ) {
+ return new UpdateCompositeComponentFeature( this );
+ }
+ }
+ return super.getUpdateFeature( context );
+ }
- } else if (extension.equals("sh")) {
- CreateSoftwareDependencyFeature createSDFeature = new CreateSoftwareDependencyFeature(
- new ToscaFeatureProvider(getDiagramTypeProvider()));
+ // Enables moving of figures
+ @Override
+ public IMoveShapeFeature getMoveShapeFeature( final IMoveShapeContext context )
+ {
+ Shape shape = context.getShape();
+ Object bo = getBusinessObjectForPictogramElement( shape );
+ if( bo instanceof TNodeTemplate ) {
+ return new MoveApplicationComponentFeature( this );
+ }
+ if ( bo instanceof TServiceTemplate ){
+ return new MoveCompositeComponentFeature( this );
+ }
+ return super.getMoveShapeFeature( context );
+ }
- deploymentArtifact.setName(element.getName());
- deploymentArtifact.setArtifactType(new QName("SD"));
- createSDFeature.setContextObject(deploymentArtifact);
-
+ // Feature for renaming application components
+ @Override
+ public ICustomFeature[] getCustomFeatures( ICustomContext context ) {
+ return new ICustomFeature[]{
+ new RenameApplicationComponentFeature( this ),
+ new RenameCompositeComponentFeature( this ),
+ };
+ }
- if (createSDFeature.canCreate(createContext)) {
- createSDFeature.create(createContext);
- }
- }
-
- return result;
+ // Initializes relationships' create features
+ @Override
+ public ICreateConnectionFeature[] getCreateConnectionFeatures() {
+ return new ICreateConnectionFeature[]{
+ new CreateDirectedRelationFeature( this )
+// ,
+// new CreateBidirectionalRelationFeature( this )
+ };
+ }
+
+ @Override
+ public IResizeShapeFeature getResizeShapeFeature(IResizeShapeContext context) {
+ Shape shape = context.getShape();
+ Object bo = getBusinessObjectForPictogramElement(shape);
+ if (bo instanceof TNodeTemplate) {
+ return new ResizeApplicationComponentFeature(this);
+ }
+ if (bo instanceof TServiceTemplate){
+ return new ResizeCompositeComponentFeature(this);
+ }
+ return super.getResizeShapeFeature(context);
+ }
}
-
-
- // Initializes all create features
- @Override
- public ICreateFeature[] getCreateFeatures() {
- return new ICreateFeature[]{
- new CreateApplicationComponentFeature( this ),
- new CreateVMIFeature( this ),
- new CreateNetworkFeature( this ),
- new CreateSoftwareDependencyFeature( this ),
- new CreateMonitorProbeFeature( this ),
- new CreateServiceTemplateFeature( this ),
- new CreateResizeActionFeature( this ),
- new CreateUserApplicationFeature( this ),
- new CreateGroupFeature( this ),
- new CreateKeyPairFeature( this )
- };
- }
-
- // Custom delete feature for application components and composite components
- @Override
- public IDeleteFeature getDeleteFeature(IDeleteContext context){
- PictogramElement pictogramElement = context.getPictogramElement();
- Object bo = getBusinessObjectForPictogramElement( pictogramElement );
- if( bo instanceof TServiceTemplate ) {
- //TServiceTemplate representing Composite Component
- return new DeleteGroupFeature( this );
- }
- else if (bo instanceof TNodeTemplate){
- return new DeleteApplicationComponentFeature( this );
- }
- else if ( bo instanceof TDeploymentArtifact){
- return new DeleteDeploymentArtifactFeature( this );
- }
-
- return super.getDeleteFeature( context );
- }
-
- // Enables direct editing
- @Override
- public IDirectEditingFeature getDirectEditingFeature( final IDirectEditingContext context )
- {
- PictogramElement pe = context.getPictogramElement();
- Object bo = getBusinessObjectForPictogramElement( pe );
- if( bo instanceof TNodeTemplate ) {
- return new DirectEditApplicationComponentFeature( this );
- }
- else if( bo instanceof TServiceTemplate ) {
- return new DirectEditCompositeComponentFeature( this );
- }
- return super.getDirectEditingFeature( context );
- }
-
- // Returns layout features
- @Override
- public ILayoutFeature getLayoutFeature( final ILayoutContext context ) {
- PictogramElement pictogramElement = context.getPictogramElement();
- Object bo = getBusinessObjectForPictogramElement( pictogramElement );
- if( bo instanceof TNodeTemplate ) {
- return new LayoutApplicationComponentFeature( this );
- }
- if ( bo instanceof TServiceTemplate ){
- return new LayoutServiceTemplateFeature( this );
- }
- return super.getLayoutFeature( context );
- }
-
- // Enables update features
- @Override
- public IUpdateFeature getUpdateFeature( final IUpdateContext context ) {
- PictogramElement pictogramElement = context.getPictogramElement();
- if( pictogramElement instanceof ContainerShape ) {
- Object bo = getBusinessObjectForPictogramElement( pictogramElement );
- if( bo instanceof TNodeTemplate ) {
- return new UpdateApplicationComponentFeature( this );
- }
- else if( bo instanceof TServiceTemplate ) {
- return new UpdateCompositeComponentFeature( this );
- }
- }
- return super.getUpdateFeature( context );
- }
-
- // Enables moving of figures
- @Override
- public IMoveShapeFeature getMoveShapeFeature( final IMoveShapeContext context )
- {
- Shape shape = context.getShape();
- Object bo = getBusinessObjectForPictogramElement( shape );
- if( bo instanceof TNodeTemplate ) {
- return new MoveApplicationComponentFeature( this );
- }
- if ( bo instanceof TServiceTemplate ){
- return new MoveCompositeComponentFeature( this );
- }
- return super.getMoveShapeFeature( context );
- }
-
- // Feature for renaming application components
- @Override
- public ICustomFeature[] getCustomFeatures( ICustomContext context ) {
- return new ICustomFeature[]{
- new RenameApplicationComponentFeature( this ),
- new RenameCompositeComponentFeature( this ),
- };
- }
-
- // Initializes relationships' create features
- @Override
- public ICreateConnectionFeature[] getCreateConnectionFeatures() {
- return new ICreateConnectionFeature[]{
- new CreateDirectedRelationFeature( this )
-// ,
-// new CreateBidirectionalRelationFeature( this )
- };
- }
-
- @Override
- public IResizeShapeFeature getResizeShapeFeature(IResizeShapeContext context) {
- Shape shape = context.getShape();
- Object bo = getBusinessObjectForPictogramElement(shape);
- if (bo instanceof TNodeTemplate) {
- return new ResizeApplicationComponentFeature(this);
- }
- if (bo instanceof TServiceTemplate){
- return new ResizeCompositeComponentFeature(this);
- }
- return super.getResizeShapeFeature(context);
- }
-}
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/diagram/ToscaToolBehaviorProvider.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/diagram/ToscaToolBehaviorProvider.java
index a18e15c..6d913d4 100644
--- a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/diagram/ToscaToolBehaviorProvider.java
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/diagram/ToscaToolBehaviorProvider.java
@@ -36,6 +36,7 @@
import org.eclipse.camf.infosystem.model.base.VirtualMachineImage;
import org.eclipse.camf.infosystem.model.base.VirtualMachineImageType;
import org.eclipse.camf.infosystem.model.base.VirtualNetwork;
+import org.eclipse.camf.tosca.TArtifactTemplate;
import org.eclipse.camf.tosca.TDeploymentArtifact;
import org.eclipse.camf.tosca.TNodeTemplate;
import org.eclipse.camf.tosca.ToscaFactory;
@@ -54,6 +55,7 @@
import org.eclipse.camf.tosca.elasticity.TNodeTemplateExtension;
import org.eclipse.camf.tosca.elasticity.TServiceTemplateExtension;
import org.eclipse.camf.tosca.elasticity.Tosca_Elasticity_ExtensionsFactory;
+import org.eclipse.camf.tosca.elasticity.Tosca_Elasticity_ExtensionsPackage;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
@@ -95,15 +97,25 @@
import org.eclipse.graphiti.tb.IContextMenuEntry;
import org.eclipse.graphiti.tb.IDecorator;
import org.eclipse.graphiti.tb.ImageDecorator;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
public class ToscaToolBehaviorProvider extends DefaultToolBehaviorProvider {
- MockUpInfoSystem mockUpInfoSystemInstance;
-
+ MockUpInfoSystem mockUpInfoSystemInstance;
+
+ private String typesPrefix = Tosca_Elasticity_ExtensionsPackage.eINSTANCE.getNsPrefix();
- public ToscaToolBehaviorProvider( final IDiagramTypeProvider dtp ) {
- super( dtp );
- }
+ private String typesNamespace = Tosca_Elasticity_ExtensionsPackage.eINSTANCE.getNsURI();
+
+ private String imageType = Tosca_Elasticity_ExtensionsPackage.eINSTANCE.getImageArtifactPropertiesType().getName();
+
+ private String scriptArtifactType = Tosca_Elasticity_ExtensionsPackage.eINSTANCE.getScriptArtifactPropertiesType().getName();
+
+ public ToscaToolBehaviorProvider( final IDiagramTypeProvider dtp ) {
+ super( dtp );
+ }
@Override
public IContextButtonPadData getContextButtonPad( IPictogramElementContext context )
@@ -142,31 +154,31 @@
/**
*
*/
- private void fetchResources() {
- Job job = new Job( "Resource Fetching" ) { //$NON-NLS-1$
-
- @Override
- protected IStatus run( final IProgressMonitor monitor ) {
- monitor.beginTask( "Fetching Resources from Cloud Provider", 100 );
- MockUpInfoSystem.getInstance();
- for( int i = 0; i < 5; i++ ) {
- try {
- // sleep a second
- TimeUnit.SECONDS.sleep( 1 );
- monitor.subTask( "Resource bundle #" + i );
- // report that 20 additional units are done
- monitor.worked( 20 );
- } catch( InterruptedException e1 ) {
- e1.printStackTrace();
- return Status.CANCEL_STATUS;
- }
- }
- System.out.println( "Called save" );
- return Status.OK_STATUS;
- }
- };
- job.schedule();
- }
+// private void fetchResources() {
+// Job job = new Job( "Resource Fetching" ) { //$NON-NLS-1$
+//
+// @Override
+// protected IStatus run( final IProgressMonitor monitor ) {
+// monitor.beginTask( "Fetching Resources from Cloud Provider", 100 );
+// MockUpInfoSystem.getInstance();
+// for( int i = 0; i < 5; i++ ) {
+// try {
+// // sleep a second
+// TimeUnit.SECONDS.sleep( 1 );
+// monitor.subTask( "Resource bundle #" + i );
+// // report that 20 additional units are done
+// monitor.worked( 20 );
+// } catch( InterruptedException e1 ) {
+// e1.printStackTrace();
+// return Status.CANCEL_STATUS;
+// }
+// }
+// System.out.println( "Called save" );
+// return Status.OK_STATUS;
+// }
+// };
+// job.schedule();
+// }
// Creates the Palette. Palette entries are retrieved from an SQL database.
@Override
@@ -329,6 +341,7 @@
appCompCF.getCreateLargeImageId(),
appCompCF );
stackEntry.addCreationToolEntry( objectCreationToolEntry );
+ break;
}
}
}
@@ -354,6 +367,7 @@
groupCF.getCreateLargeImageId(),
groupCF );
stackEntry.addCreationToolEntry( objectCreationToolEntry );
+ break;
}
}
}
@@ -399,10 +413,14 @@
if( cf instanceof CreateSoftwareDependencyFeature ) {
CreateSoftwareDependencyFeature sdCF = ( CreateSoftwareDependencyFeature )cf;
- TDeploymentArtifact deploymentArtifact = ToscaFactory.eINSTANCE.createTDeploymentArtifact();
- deploymentArtifact.setName( script.getName() );
- deploymentArtifact.setArtifactType( new QName( "SD" ) );
- sdCF.setContextObject( deploymentArtifact );
+
+ TArtifactTemplate artifactTemplate = ToscaFactory.eINSTANCE.createTArtifactTemplate();
+ artifactTemplate.setName( "SD"+script.getName() );
+ artifactTemplate.setId( script.getName() );
+ artifactTemplate.setType( new QName( typesNamespace, scriptArtifactType, typesPrefix ) );
+ sdCF.setContextObject( artifactTemplate );
+
+
// add new stack entry to new compartment
IToolEntry entry = new ObjectCreationToolEntry( script.getName(),
script.getDescription(),
@@ -410,6 +428,7 @@
null,
sdCF );
compartmentEntry.addToolEntry( entry );
+ break;
}
}
}
@@ -511,9 +530,6 @@
}
}
- // Now check the InfoService for additional KeyPairs
- keyPairList.addAll( this.mockUpInfoSystemInstance.getKeyPairs() );
-
// add new compartment at the end of the existing compartments
PaletteCompartmentEntry compartmentEntry = new PaletteCompartmentEntry( "Key Pairs", null ); //$NON-NLS-1$
ret.add( compartmentEntry );
@@ -537,6 +553,7 @@
null,
kpCF );
compartmentEntry.addToolEntry( entry );
+ break;
}
}
}
@@ -596,9 +613,7 @@
/* ... */
}
String imageId = out.toString();
-
- /////////////////////////////////////////////////////
-
+
VirtualMachineImage vmi = InfoSystemFactory.eINSTANCE.createVirtualMachineImage();
vmi.setUID( imageId );
vmi.setName( tempResource.getName() );
@@ -629,7 +644,8 @@
TDeploymentArtifact deploymentArtifact = ToscaFactory.eINSTANCE.createTDeploymentArtifact();
deploymentArtifact.setName( vmi.getUID() );
deploymentArtifact.setArtifactRef( new QName(vmi.getUID()) );
- deploymentArtifact.setArtifactType( new QName( "VMI" ) );
+ //deploymentArtifact.setArtifactType( new QName( "VMI" ) );
+ deploymentArtifact.setArtifactType( new QName( typesNamespace, imageType, typesPrefix ));
vmiCF.setContextObject( deploymentArtifact );
ObjectCreationToolEntry objectCreationToolEntry = new ObjectCreationToolEntry( vmi.getUID(),
@@ -638,22 +654,158 @@
vmiCF.getCreateLargeImageId(),
vmiCF );
stackEntry.addCreationToolEntry( objectCreationToolEntry );
+ break;
}
}
-
- // add all create-connection-features to the new stack-entry
- ICreateConnectionFeature[] createConnectionFeatures = featureProvider.getCreateConnectionFeatures();
- for( ICreateConnectionFeature connFeat : createConnectionFeatures ) {
- ConnectionCreationToolEntry connectionCreationToolEntry = new ConnectionCreationToolEntry( vmi.getName(),
- connFeat.getName(),
- connFeat.getCreateImageId(),
- connFeat.getCreateLargeImageId() );
- connectionCreationToolEntry.addCreateConnectionFeature( connFeat );
- stackEntry.addCreationToolEntry( connectionCreationToolEntry );
- }
}
}
+//Create Palette compartment for Monitoring Probes
+ private void addJCatascopiaMonitorProbeCompartment( List<IPaletteCompartmentEntry> ret )
+ {
+
+ ArrayList<MonitoringProbe> mps = this.mockUpInfoSystemInstance.getMonitoringProbes();
+
+ @SuppressWarnings("unchecked")
+ ArrayList<MonitoringProbe> mpsCopy = ( ArrayList<MonitoringProbe> )mps.clone();
+
+ // Add custom probes from project explorer
+
+ IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
+ IProject monitoringProbesProject = workspaceRoot.getProject( "MonitoringProbe" );
+
+ if( monitoringProbesProject.exists() ) {
+ IFolder srcFolder = monitoringProbesProject.getFolder( "src" );
+ IResource[] artifactsResource = null;
+ try {
+ artifactsResource = srcFolder.members();
+ } catch( CoreException e ) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ if ( artifactsResource != null ){
+ for( IResource tempResource : artifactsResource ) {
+ if( tempResource instanceof IFile ) {
+ MonitoringProbe mp = InfoSystemFactory.eINSTANCE.createMonitoringProbe();
+ mp.setUID( tempResource.getName().replaceFirst( ".java", "" ));
+ mp.setName( tempResource.getName().replaceFirst( ".java", "" ));
+ mp.setDescription( "" );
+ // add new probe to monitoring list
+ mpsCopy.add( 0, mp );
+ }
+ }
+ }
+ }
+
+ // add new compartment at the end of the existing compartments
+ PaletteCompartmentEntry compartmentEntry = new PaletteCompartmentEntry( "Monitor Probes", null ); //$NON-NLS-1$
+ compartmentEntry.setInitiallyOpen( false );
+ ret.add( compartmentEntry );
+
+ for( MonitoringProbe mp : mpsCopy ) {
+
+ String metricsString = mp.getMetrics();
+ if ( metricsString.equals( "" ) == false ){
+ // add new Metric Probe entry to probes compartment
+ StackEntry stackEntry = new StackEntry( mp.getName(), mp.getDescription(), null );
+ compartmentEntry.addToolEntry( stackEntry );
+ compartmentEntry.setInitiallyOpen( false );
+
+ IFeatureProvider featureProvider = getFeatureProvider();
+ ICreateFeature[] createFeatures = featureProvider.getCreateFeatures();
+ for( ICreateFeature cf : createFeatures ) {
+ if( cf instanceof CreateMonitorProbeFeature ) {
+ CreateMonitorProbeFeature mpCF = ( CreateMonitorProbeFeature )cf;
+
+ TDeploymentArtifact deploymentArtifact = ToscaFactory.eINSTANCE.createTDeploymentArtifact();
+ deploymentArtifact.setName( mp.getName() );
+ deploymentArtifact.setArtifactType( new QName( "MonitoringProbe" ) );
+ mpCF.setContextObject( deploymentArtifact );
+
+ ObjectCreationToolEntry objectCreationToolEntry = new ObjectCreationToolEntry( mp.getName(),
+ mp.getDescription(),
+ mpCF.getCreateImageId(),
+ mpCF.getCreateLargeImageId(),
+ mpCF );
+ stackEntry.addCreationToolEntry( objectCreationToolEntry );
+ break;
+ }
+ }
+
+ String metrics = "{\"metrics\":" + metricsString + "}";
+ JSONObject obj = null;
+ JSONArray metrics_array = null;
+ try {
+ obj = new JSONObject( metrics );
+ metrics_array = obj.getJSONArray( "metrics" );
+ } catch( JSONException e ) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } //$NON-NLS-1$
+
+ for ( int i=0; i < metrics_array.length(); i++){
+ String metricLabel = null;
+ String metricDescription = null;
+ try {
+ metricLabel = metrics_array.getJSONObject( i ).getString( "name" );
+ metricDescription = metrics_array.getJSONObject( i ).getString( "desc" );
+ } catch( JSONException e ) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ // add all create-features to the new stack-entry
+ featureProvider = getFeatureProvider();
+ createFeatures = featureProvider.getCreateFeatures();
+ for( ICreateFeature cf : createFeatures ) {
+ if( cf instanceof CreateMonitorProbeFeature ) {
+ CreateMonitorProbeFeature mpCF = ( CreateMonitorProbeFeature )cf;
+
+ TDeploymentArtifact deploymentArtifact = ToscaFactory.eINSTANCE.createTDeploymentArtifact();
+ deploymentArtifact.setName( metricLabel );
+ deploymentArtifact.setArtifactType( new QName( "MonitoringProbe" ) );
+ mpCF.setContextObject( deploymentArtifact );
+
+ ObjectCreationToolEntry objectCreationToolEntry = new ObjectCreationToolEntry( metricLabel,
+ metricDescription,
+ mpCF.getCreateImageId(),
+ mpCF.getCreateLargeImageId(),
+ mpCF );
+
+ stackEntry.addCreationToolEntry( objectCreationToolEntry );
+ break;
+ }
+ }
+
+ }
+ }
+ else{
+ // Custom Monitoring Probes
+ // add all create-features to the new stack-entry
+ IFeatureProvider featureProvider = getFeatureProvider();
+ ICreateFeature[] createFeatures = featureProvider.getCreateFeatures();
+ for( ICreateFeature cf : createFeatures ) {
+ if( cf instanceof CreateMonitorProbeFeature ) {
+ CreateMonitorProbeFeature mpCF = ( CreateMonitorProbeFeature )cf;
+
+ TDeploymentArtifact deploymentArtifact = ToscaFactory.eINSTANCE.createTDeploymentArtifact();
+ deploymentArtifact.setName( mp.getName() );
+ deploymentArtifact.setArtifactType( new QName( "MonitoringProbe" ) );
+ mpCF.setContextObject( deploymentArtifact );
+
+ // add new stack entry to new compartment
+ IToolEntry entry = new ObjectCreationToolEntry( mp.getName(),
+ mp.getDescription(),
+ null,
+ null,
+ mpCF );
+ compartmentEntry.addToolEntry( entry );
+
+ }
+ }
+ }
+ }
+ }
+
// Create Palette compartment for Monitoring Probes
private void addMonitorProbeCompartment( List<IPaletteCompartmentEntry> ret )
{
@@ -721,6 +873,7 @@
mpCF.getCreateLargeImageId(),
mpCF );
stackEntry.addCreationToolEntry( objectCreationToolEntry );
+ break;
}
}
@@ -746,7 +899,8 @@
mpCF );
stackEntry.addCreationToolEntry( objectCreationToolEntry );
- }
+ break;
+ }
}
}
@@ -772,7 +926,7 @@
null,
mpCF );
compartmentEntry.addToolEntry( entry );
-
+ break;
}
}
}
@@ -785,6 +939,7 @@
{
ArrayList<ResizingAction> ras = this.mockUpInfoSystemInstance.getResizingActions();
+ @SuppressWarnings("unchecked")
ArrayList<ResizingAction> rasCopy = ( ArrayList<ResizingAction> )ras.clone();
// Add custom images from project explorer
IProject activeProject = ToscaDiagramEditor.getActiveProject();
@@ -831,6 +986,7 @@
raCF.getCreateLargeImageId(),
raCF );
stackEntry.addCreationToolEntry( objectCreationToolEntry );
+ break;
}
}
}
@@ -904,7 +1060,12 @@
public GraphicsAlgorithm[] getClickArea( final PictogramElement pe ) {
IFeatureProvider featureProvider = getFeatureProvider();
Object bo = featureProvider.getBusinessObjectForPictogramElement( pe );
- if( bo instanceof TNodeTemplate ) {
+
+ if (bo instanceof TNodeTemplate)
+ if ( ((TNodeTemplate) bo)==null || ((TNodeTemplate) bo).getType() == null)
+ return null;
+
+ if( bo instanceof TNodeTemplate && ((TNodeTemplate) bo).getType().toString().contains("substituteNode")==false) {
GraphicsAlgorithm invisible = pe.getGraphicsAlgorithm();
GraphicsAlgorithm rectangle = invisible.getGraphicsAlgorithmChildren()
.get( 0 );
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/dialog/ElasticityConditionDialog.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/dialog/ElasticityConditionDialog.java
index 422996d..e897783 100644
--- a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/dialog/ElasticityConditionDialog.java
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/dialog/ElasticityConditionDialog.java
@@ -68,394 +68,394 @@
public class ElasticityConditionDialog extends Dialog {
- private Label lblCondition;
- private CCombo cmbCondition;
- private boolean conditionSelected;
- private Label lblCondition2;
- private CCombo cmbCondition2;
- private boolean conditionSelected2;
- private ToscaModelLayer model;
- private String condition;
+ private Label lblCondition;
+ private CCombo cmbCondition;
+ private boolean conditionSelected;
+ private Label lblCondition2;
+ private CCombo cmbCondition2;
+ private boolean conditionSelected2;
+ private ToscaModelLayer model;
+ private String condition;
-
- protected Text typeText;
- protected Text valueText;
- protected boolean editMode = false;
- protected boolean addMode = false;
- protected String newType;
- protected String elasticityRequirement;
- private CCombo cmbGlobalElasticityReq;
- private CCombo cmbOperator;
- private String component;
- private Label unitLabel;
-
- private String unit;
-
- private String strategyName;
- private Label strategyLabel;
-
- private String conditionLeft;
- private String conditionRight;
- private String conditionOperator;
-
- /**
- * @param parentShell
- * @param pe
- * @param existingDataStage
- */
- public ElasticityConditionDialog( final Shell parentShell, String component,
- ToscaModelLayer model, String strategyName
- )
- {
- super( parentShell );
- this.conditionSelected = false;
- this.conditionSelected2 = false;
- this.model = model;
- this.component = component;
- this.strategyName = strategyName;
- }
-
- @Override
- protected void configureShell( final Shell shell ) {
- super.configureShell( shell );
- shell.setText( "Apply Strategy Under Condition" );
- shell.setSize( 330, 400 );
-
- }
-
- @Override
- protected Control createDialogArea( final Composite parent ) {
- Composite composite = ( Composite )super.createDialogArea( parent );
- composite.setLayout( new GridLayout( 1, false ) );
- composite.setLayoutData( new GridData( GridData.FILL_BOTH ) );
-
- this.strategyLabel = new Label( composite, SWT.NONE );
- this.strategyLabel.setText( this.strategyName );
-
- GridData gd = new GridData( GridData.FILL_BOTH );
- gd.verticalIndent = 7;
- gd.heightHint = 10;
- this.strategyLabel.setLayoutData( gd );
-
-
-
- ////////////////////////////////////////////////////////////////////////////////////////////////
-
- Group newConstraintGroup = new Group( composite, SWT.NONE );
- newConstraintGroup.setLayout( new GridLayout( 1, false ) );
- newConstraintGroup.setText( "&Specify New Condition" );
- GridData gData = new GridData( SWT.FILL, SWT.FILL, true, true );
- newConstraintGroup.setLayoutData( gData );
-
-
-
- Composite newConstraintComposite = new Composite( newConstraintGroup, SWT.NONE );
- newConstraintComposite.setLayout( new GridLayout( 1, false ) );
- //GridLayout gLayout = new GridLayout( 2, false );
- newConstraintComposite.setLayout( new GridLayout( 1, false ) );
- gData = new GridData( GridData.FILL_BOTH );
- //gData.grabExcessHorizontalSpace = true;
- //gData.grabExcessVerticalSpace = true;
- newConstraintComposite.setLayoutData( gData );
-
- Composite typeComposite = new Composite( newConstraintComposite, SWT.NONE );
- GridLayout gLayout = new GridLayout( 2, false );
- typeComposite.setLayout( gLayout );
- gData = new GridData( GridData.FILL_HORIZONTAL );
- typeComposite.setLayoutData( gData );
-
- Label typeLabel = new Label( typeComposite, SWT.LEAD );
- typeLabel.setText( "Type" ); //$NON-NLS-1$
- gd = new GridData( 50, 20 );
- typeLabel.setLayoutData( gd );
- // Combo - GlobalElasticityReq
- this.cmbGlobalElasticityReq = new CCombo( typeComposite, SWT.BORDER );
- this.cmbGlobalElasticityReq.setEnabled( true );
- gd = new GridData( 212, 20 );
- this.cmbGlobalElasticityReq.setLayoutData( gd );
-
- ArrayList<MonitoringProbe> mps = getMetrics();
- for (MonitoringProbe mp : mps){
- String metricsString = mp.getDescription();
- if (metricsString.equals( "" )==false){
- metricsString = metricsString.substring( 2, metricsString.length()-2 );
- metricsString = metricsString.replace( "\"", "" );
- String[] metrics = metricsString.split( "," );
- for (String metric : metrics)
- this.cmbGlobalElasticityReq.add(metric);
- }
- else{
- this.cmbGlobalElasticityReq.add(mp.getName());
- }
- }
-
- Composite valueComposite = new Composite( newConstraintComposite, SWT.NONE );
- gLayout = new GridLayout( 3, false );
- valueComposite.setLayout( gLayout );
- gData = new GridData( GridData.FILL_HORIZONTAL );
- valueComposite.setLayoutData( gData );
-
- Label valueLabel = new Label( valueComposite, SWT.LEAD );
- valueLabel.setText( "Value" ); //$NON-NLS-1$
- gd = new GridData( 50, 20 );
- valueLabel.setLayoutData( gd );
-
- // Combo - Operator
- this.cmbOperator = new CCombo( valueComposite, SWT.BORDER );
- this.cmbOperator.setEnabled( true );
- gd = new GridData( 40, 20 );
- this.cmbOperator.setLayoutData( gd );
- this.cmbOperator.add( "=" ); //$NON-NLS-1$
- this.cmbOperator.add( "<" ); //$NON-NLS-1$
- this.cmbOperator.add( ">" ); //$NON-NLS-1$
- this.cmbOperator.setText( this.cmbOperator.getItem( 0 ) );
-
- this.valueText = new Text( valueComposite, SWT.BORDER );
- gd = new GridData( 154, 20 );
- this.valueText.setLayoutData( gd );
-
- this.cmbGlobalElasticityReq.setEditable( false );
- this.cmbGlobalElasticityReq.addModifyListener( new ModifyListener() {
-
- public void modifyText( final ModifyEvent e ) {
-
- ElasticityConditionDialog.this.cmbCondition.setEnabled( true );
- ElasticityConditionDialog.this.cmbCondition2.setEnabled( true );
-
- ElasticityConditionDialog.this.newType = ElasticityConditionDialog.this.cmbGlobalElasticityReq.getText();
-
-
- }
- } );
-
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////
- Group constraintGroup = new Group( composite, SWT.NONE );
- constraintGroup.setLayout( new GridLayout( 1, false ) );
- constraintGroup.setText( "&Select Constraint" );
- gData = new GridData( SWT.FILL, SWT.FILL, true, true );
- constraintGroup.setLayoutData( gData );
-
- Composite constraintComposite = new Composite( constraintGroup, SWT.NONE );
- constraintComposite.setLayout( new GridLayout( 1, false ) );
- gData = new GridData( GridData.GRAB_HORIZONTAL );
- //gData.grabExcessHorizontalSpace = true;
- //gData.grabExcessVerticalSpace = true;
- constraintComposite.setLayoutData( gData );
-
-
- // Condition label
- this.lblCondition = new Label( constraintComposite, SWT.NONE );
- this.lblCondition.setText( "When fulfilled Constraint:" );
- gd = new GridData( GridData.FILL_HORIZONTAL );
- gd.widthHint = 280;
- this.lblCondition.setLayoutData( gd );
-
- // Combo - Condition
- this.cmbCondition = new CCombo( constraintComposite, SWT.BORDER );
- this.cmbCondition.setEnabled( true );
- gd = new GridData( GridData.FILL_HORIZONTAL );
- gd.widthHint = 280;
- this.cmbCondition.setLayoutData( gd );
- this.cmbCondition.setEnabled( false );
-
-
- ArrayList<String> elasticityConstraints = getAllConstraints();
-
- if ( elasticityConstraints.size() > 0 ){
- for ( String constraint : elasticityConstraints ){
- this.cmbCondition.add(constraint);
- }
- }
-
- this.cmbCondition.setText( "" );
-
- this.cmbCondition.addModifyListener( new ModifyListener() {
-
- @Override
- public void modifyText( ModifyEvent e ) {
- if (ElasticityConditionDialog.this.cmbCondition.getText() != ""){
- ElasticityConditionDialog.this.conditionSelected = true;
- }
-
- }
-
- });
-
- // Condition label
- this.lblCondition2 = new Label( constraintComposite, SWT.NONE );
- this.lblCondition2.setText( "When violated Constraint:" );
- gd = new GridData( GridData.FILL_HORIZONTAL );
- gd.widthHint = 280;
- this.lblCondition2.setLayoutData( gd );
-
- // Combo - Condition
- this.cmbCondition2 = new CCombo( constraintComposite, SWT.BORDER );
- this.cmbCondition2.setEnabled( true );
- gd.widthHint = 280;
- gd = new GridData( GridData.FILL_HORIZONTAL );
- this.cmbCondition2.setLayoutData( gd );
-
- if ( elasticityConstraints.size() > 0 ){
- for ( String constraint : elasticityConstraints ){
- this.cmbCondition2.add(constraint);
- }
- }
-
- this.cmbCondition2.setText( "" );
-
- this.cmbCondition2.addModifyListener( new ModifyListener() {
-
- @Override
- public void modifyText( ModifyEvent e ) {
- if (ElasticityConditionDialog.this.cmbCondition2.getText() != ""){
- ElasticityConditionDialog.this.conditionSelected2 = true;
- }
-
- }
-
- });
-
- return composite;
- }
-
- public ArrayList<MonitoringProbe> getMetrics(){
-
- ArrayList<MonitoringProbe> mps = MockUpInfoSystem.getInstance()
- .getMonitoringProbes();
-
- ArrayList<MonitoringProbe> mpsCopy = ( ArrayList<MonitoringProbe> )mps.clone();
-
- IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
- IProject monitoringProbesProject = workspaceRoot.getProject( "MonitoringProbe" );
-
- if( monitoringProbesProject.exists() ) {
- IFolder srcFolder = monitoringProbesProject.getFolder( "src" );
- IResource[] artifactsResource = null;
- try {
- artifactsResource = srcFolder.members();
- } catch( CoreException e ) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- for( IResource tempResource : artifactsResource ) {
- if( tempResource instanceof IFile ) {
- MonitoringProbe mp = InfoSystemFactory.eINSTANCE.createMonitoringProbe();
- mp.setUID( tempResource.getName().replaceFirst( ".java", "" ));
- mp.setName( tempResource.getName().replaceFirst( ".java", "" ));
- mp.setDescription( "" );
- mp.setURL( "" );
- // add new probe to monitoring list
- mpsCopy.add( 0, mp );
- }
- }
- }
-
- return mpsCopy;
- }
-
- // Returns all global, composite and component level elasticity constraints;
- private ArrayList<String> getAllConstraints(){
- ArrayList<String> constraints = new ArrayList<String>();
+ protected Text typeText;
+ protected Text valueText;
+ protected boolean editMode = false;
+ protected boolean addMode = false;
+ protected String newType;
+ protected String elasticityRequirement;
+ private CCombo cmbGlobalElasticityReq;
+ private CCombo cmbOperator;
+ private String component;
+ private Label unitLabel;
+
+ private String unit;
+
+ private String strategyName;
+ private Label strategyLabel;
- DocumentRoot toscaRoot = this.model.getDocumentRoot();
- EList<TServiceTemplate> toscaServiceTemplates = toscaRoot.getDefinitions().getServiceTemplate();
- EList<TNodeTemplate> tempNodeTemplates;
- for ( TServiceTemplate tempServiceTemplate : toscaServiceTemplates ){
-
- //TBoundaryDefinitionsExtension boundaryDef = ( TBoundaryDefinitionsExtension ) tempServiceTemplate.getBoundaryDefinitions();
-
- TBoundaryDefinitions boundaryDef = ( TBoundaryDefinitions ) tempServiceTemplate.getBoundaryDefinitions();
+ private String conditionLeft;
+ private String conditionRight;
+ private String conditionOperator;
+
+ /**
+ * @param parentShell
+ * @param pe
+ * @param existingDataStage
+ */
+ public ElasticityConditionDialog( final Shell parentShell, String component,
+ ToscaModelLayer model, String strategyName
+ )
+ {
+ super( parentShell );
+ this.conditionSelected = false;
+ this.conditionSelected2 = false;
+ this.model = model;
+ this.component = component;
+ this.strategyName = strategyName;
+ }
+
+ @Override
+ protected void configureShell( final Shell shell ) {
+ super.configureShell( shell );
+ shell.setText( "Apply Strategy Under Condition" );
+ shell.setSize( 330, 400 );
+
+ }
+
+ @Override
+ protected Control createDialogArea( final Composite parent ) {
+ Composite composite = ( Composite )super.createDialogArea( parent );
+ composite.setLayout( new GridLayout( 1, false ) );
+ composite.setLayoutData( new GridData( GridData.FILL_BOTH ) );
+
+ this.strategyLabel = new Label( composite, SWT.NONE );
+ this.strategyLabel.setText( this.strategyName );
- if ( boundaryDef != null ){
-
- PoliciesType1 globalPolicies = boundaryDef.getPolicies();
-
- if ( globalPolicies != null ){
-
- for ( int k=0; k<globalPolicies.getPolicy().size(); k++){
-
- if ( globalPolicies.getPolicy().get(k).getPolicyType().toString().contains( "Constraint" ) ){
- constraints.add(globalPolicies.getPolicy().get(k).getName());
- }
- }
+ GridData gd = new GridData( GridData.FILL_BOTH );
+ gd.verticalIndent = 7;
+ gd.heightHint = 10;
+ this.strategyLabel.setLayoutData( gd );
+
- }
- }
+
+ ////////////////////////////////////////////////////////////////////////////////////////////////
+
+ Group newConstraintGroup = new Group( composite, SWT.NONE );
+ newConstraintGroup.setLayout( new GridLayout( 1, false ) );
+ newConstraintGroup.setText( "&Specify New Condition" );
+ GridData gData = new GridData( SWT.FILL, SWT.FILL, true, true );
+ newConstraintGroup.setLayoutData( gData );
+
+
+
+ Composite newConstraintComposite = new Composite( newConstraintGroup, SWT.NONE );
+ newConstraintComposite.setLayout( new GridLayout( 1, false ) );
+ //GridLayout gLayout = new GridLayout( 2, false );
+ newConstraintComposite.setLayout( new GridLayout( 1, false ) );
+ gData = new GridData( GridData.FILL_BOTH );
+ //gData.grabExcessHorizontalSpace = true;
+ //gData.grabExcessVerticalSpace = true;
+ newConstraintComposite.setLayoutData( gData );
+
+ Composite typeComposite = new Composite( newConstraintComposite, SWT.NONE );
+ GridLayout gLayout = new GridLayout( 2, false );
+ typeComposite.setLayout( gLayout );
+ gData = new GridData( GridData.FILL_HORIZONTAL );
+ typeComposite.setLayoutData( gData );
+
+ Label typeLabel = new Label( typeComposite, SWT.LEAD );
+ typeLabel.setText( "Type" ); //$NON-NLS-1$
+ gd = new GridData( 50, 20 );
+ typeLabel.setLayoutData( gd );
+ // Combo - GlobalElasticityReq
+ this.cmbGlobalElasticityReq = new CCombo( typeComposite, SWT.BORDER );
+ this.cmbGlobalElasticityReq.setEnabled( true );
+ gd = new GridData( 212, 20 );
+ this.cmbGlobalElasticityReq.setLayoutData( gd );
+
+ ArrayList<MonitoringProbe> mps = getMetrics();
+ for (MonitoringProbe mp : mps){
+ String metricsString = mp.getDescription();
+ if (metricsString.equals( "" )==false){
+ metricsString = metricsString.substring( 2, metricsString.length()-2 );
+ metricsString = metricsString.replace( "\"", "" );
+ String[] metrics = metricsString.split( "," );
+ for (String metric : metrics)
+ this.cmbGlobalElasticityReq.add(metric);
+ }
+ else{
+ this.cmbGlobalElasticityReq.add(mp.getName());
+ }
+ }
+ this.cmbGlobalElasticityReq.add("Cost");
+
+ Composite valueComposite = new Composite( newConstraintComposite, SWT.NONE );
+ gLayout = new GridLayout( 3, false );
+ valueComposite.setLayout( gLayout );
+ gData = new GridData( GridData.FILL_HORIZONTAL );
+ valueComposite.setLayoutData( gData );
+
+ Label valueLabel = new Label( valueComposite, SWT.LEAD );
+ valueLabel.setText( "Value" ); //$NON-NLS-1$
+ gd = new GridData( 50, 20 );
+ valueLabel.setLayoutData( gd );
+
+ // Combo - Operator
+ this.cmbOperator = new CCombo( valueComposite, SWT.BORDER );
+ this.cmbOperator.setEnabled( true );
+ gd = new GridData( 40, 20 );
+ this.cmbOperator.setLayoutData( gd );
+ this.cmbOperator.add( "=" ); //$NON-NLS-1$
+ this.cmbOperator.add( "<" ); //$NON-NLS-1$
+ this.cmbOperator.add( ">" ); //$NON-NLS-1$
+ this.cmbOperator.setText( this.cmbOperator.getItem( 0 ) );
+
+ this.valueText = new Text( valueComposite, SWT.BORDER );
+ gd = new GridData( 154, 20 );
+ this.valueText.setLayoutData( gd );
+
+ this.cmbGlobalElasticityReq.setEditable( false );
+ this.cmbGlobalElasticityReq.addModifyListener( new ModifyListener() {
+
+ public void modifyText( final ModifyEvent e ) {
+
+ ElasticityConditionDialog.this.cmbCondition.setEnabled( true );
+ ElasticityConditionDialog.this.cmbCondition2.setEnabled( true );
+
+ ElasticityConditionDialog.this.newType = ElasticityConditionDialog.this.cmbGlobalElasticityReq.getText();
+
+
+ }
+ } );
+
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ Group constraintGroup = new Group( composite, SWT.NONE );
+ constraintGroup.setLayout( new GridLayout( 1, false ) );
+ constraintGroup.setText( "&Select Constraint" );
+ gData = new GridData( SWT.FILL, SWT.FILL, true, true );
+ constraintGroup.setLayoutData( gData );
+
+ Composite constraintComposite = new Composite( constraintGroup, SWT.NONE );
+ constraintComposite.setLayout( new GridLayout( 1, false ) );
+ gData = new GridData( GridData.GRAB_HORIZONTAL );
+ //gData.grabExcessHorizontalSpace = true;
+ //gData.grabExcessVerticalSpace = true;
+ constraintComposite.setLayoutData( gData );
+
+
+ // Condition label
+ this.lblCondition = new Label( constraintComposite, SWT.NONE );
+ this.lblCondition.setText( "When fulfilled Constraint:" );
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ gd.widthHint = 280;
+ this.lblCondition.setLayoutData( gd );
+
+ // Combo - Condition
+ this.cmbCondition = new CCombo( constraintComposite, SWT.BORDER );
+ this.cmbCondition.setEnabled( true );
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ gd.widthHint = 280;
+ this.cmbCondition.setLayoutData( gd );
+ this.cmbCondition.setEnabled( false );
+
+
+ ArrayList<String> elasticityConstraints = getAllConstraints();
+
+ if ( elasticityConstraints.size() > 0 ){
+ for ( String constraint : elasticityConstraints ){
+ this.cmbCondition.add(constraint);
+ }
+ }
+
+ this.cmbCondition.setText( "" );
+
+ this.cmbCondition.addModifyListener( new ModifyListener() {
+
+ @Override
+ public void modifyText( ModifyEvent e ) {
+ if (ElasticityConditionDialog.this.cmbCondition.getText() != ""){
+ ElasticityConditionDialog.this.conditionSelected = true;
+ }
+
+ }
+
+ });
+
+ // Condition label
+ this.lblCondition2 = new Label( constraintComposite, SWT.NONE );
+ this.lblCondition2.setText( "When violated Constraint:" );
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ gd.widthHint = 280;
+ this.lblCondition2.setLayoutData( gd );
+
+ // Combo - Condition
+ this.cmbCondition2 = new CCombo( constraintComposite, SWT.BORDER );
+ this.cmbCondition2.setEnabled( true );
+ gd.widthHint = 280;
+ gd = new GridData( GridData.FILL_HORIZONTAL );
+ this.cmbCondition2.setLayoutData( gd );
+
+ if ( elasticityConstraints.size() > 0 ){
+ for ( String constraint : elasticityConstraints ){
+ this.cmbCondition2.add(constraint);
+ }
+ }
+
+ this.cmbCondition2.setText( "" );
+
+ this.cmbCondition2.addModifyListener( new ModifyListener() {
+
+ @Override
+ public void modifyText( ModifyEvent e ) {
+ if (ElasticityConditionDialog.this.cmbCondition2.getText() != ""){
+ ElasticityConditionDialog.this.conditionSelected2 = true;
+ }
+
+ }
+
+ });
+
+ return composite;
+ }
+
+ public ArrayList<MonitoringProbe> getMetrics(){
+
+ ArrayList<MonitoringProbe> mps = MockUpInfoSystem.getInstance()
+ .getMonitoringProbes();
+
+ ArrayList<MonitoringProbe> mpsCopy = ( ArrayList<MonitoringProbe> )mps.clone();
+
+ IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
+ IProject monitoringProbesProject = workspaceRoot.getProject( "MonitoringProbe" );
+
+ if( monitoringProbesProject.exists() ) {
+ IFolder srcFolder = monitoringProbesProject.getFolder( "src" );
+ IResource[] artifactsResource = null;
+ try {
+ artifactsResource = srcFolder.members();
+ } catch( CoreException e ) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ for( IResource tempResource : artifactsResource ) {
+ if( tempResource instanceof IFile ) {
+ MonitoringProbe mp = InfoSystemFactory.eINSTANCE.createMonitoringProbe();
+ mp.setUID( tempResource.getName().replaceFirst( ".java", "" ));
+ mp.setName( tempResource.getName().replaceFirst( ".java", "" ));
+ mp.setDescription( "" );
+ // add new probe to monitoring list
+ mpsCopy.add( 0, mp );
+ }
+ }
+ }
+
+ return mpsCopy;
+ }
+
+ // Returns all global, composite and component level elasticity constraints;
+ private ArrayList<String> getAllConstraints(){
- if ( tempServiceTemplate.getTopologyTemplate() != null && tempServiceTemplate.getTopologyTemplate().getNodeTemplate() != null ){
+ ArrayList<String> constraints = new ArrayList<String>();
+
+ DocumentRoot toscaRoot = this.model.getDocumentRoot();
+ EList<TServiceTemplate> toscaServiceTemplates = toscaRoot.getDefinitions().getServiceTemplate();
+ EList<TNodeTemplate> tempNodeTemplates;
+ for ( TServiceTemplate tempServiceTemplate : toscaServiceTemplates ){
- tempNodeTemplates = tempServiceTemplate.getTopologyTemplate().getNodeTemplate();
-
- for ( final TNodeTemplate tempNodeTemplate : tempNodeTemplates ){
+ //TBoundaryDefinitionsExtension boundaryDef = ( TBoundaryDefinitionsExtension ) tempServiceTemplate.getBoundaryDefinitions();
+
+ TBoundaryDefinitions boundaryDef = ( TBoundaryDefinitions ) tempServiceTemplate.getBoundaryDefinitions();
+
+ if ( boundaryDef != null ){
+
+ PoliciesType1 globalPolicies = boundaryDef.getPolicies();
- if ( tempNodeTemplate.getPolicies() != null && tempNodeTemplate.getPolicies().getPolicy() != null ){
- for ( int j=0; j<tempNodeTemplate.getPolicies().getPolicy().size(); j++){
-
- if (tempNodeTemplate.getPolicies().getPolicy().get(j).getPolicyType().toString().contains( "Constraint" ) ){
- constraints.add(tempNodeTemplate.getPolicies().getPolicy().get(j).getName());
+ if ( globalPolicies != null ){
+
+ for ( int k=0; k<globalPolicies.getPolicy().size(); k++){
+
+ if ( globalPolicies.getPolicy().get(k).getPolicyType().toString().contains( "Constraint" ) ){
+ constraints.add(globalPolicies.getPolicy().get(k).getName());
+ }
+ }
+
+ }
+ }
+
+ if ( tempServiceTemplate.getTopologyTemplate() != null && tempServiceTemplate.getTopologyTemplate().getNodeTemplate() != null ){
+
+ tempNodeTemplates = tempServiceTemplate.getTopologyTemplate().getNodeTemplate();
+
+ for ( final TNodeTemplate tempNodeTemplate : tempNodeTemplates ){
+
+ if ( tempNodeTemplate.getPolicies() != null && tempNodeTemplate.getPolicies().getPolicy() != null ){
+ for ( int j=0; j<tempNodeTemplate.getPolicies().getPolicy().size(); j++){
+
+ if (tempNodeTemplate.getPolicies().getPolicy().get(j).getPolicyType().toString().contains( "Constraint" ) ){
+ constraints.add(tempNodeTemplate.getPolicies().getPolicy().get(j).getName());
+ }
}
}
}
+
+
}
-
}
+
+ return constraints;
}
+
- return constraints;
+ /**
+ * Access to the List of Data Stage-In elements.
+ *
+ * @return DataStage-In list set by the user.
+ */
+ public String getSelectedCondition() {
+ return ElasticityConditionDialog.this.condition;
+ }
+
+ public ConditionType getSYBLCondition() {
+
+ ConditionType strategyCondition = SyblFactory.eINSTANCE.createConditionType();
+ BinaryRestriction br = SyblFactory.eINSTANCE.createBinaryRestriction();
+ br.setType( this.conditionOperator );
+ LeftHandSideType conditionLeft = SyblFactory.eINSTANCE.createLeftHandSideType();
+ conditionLeft.setMetric( this.conditionLeft );
+ br.setLeftHandSide( conditionLeft );
+ RightHandSideType conditionRight = SyblFactory.eINSTANCE.createRightHandSideType();
+ conditionRight.setNumber( this.conditionRight );
+ br.setRightHandSide( conditionRight );
+ UnaryRestriction ur = SyblFactory.eINSTANCE.createUnaryRestriction();
+ ur.setType( "hi4" );
+ strategyCondition.getBinaryRestrictionsConjunction().add( br );
+ strategyCondition.getUnaryRestrictionsConjunction().add( ur );
+
+ return strategyCondition;
- }
+ }
-
- /**
- * Access to the List of Data Stage-In elements.
- *
- * @return DataStage-In list set by the user.
- */
- public String getSelectedCondition() {
- return ElasticityConditionDialog.this.condition;
- }
-
- public ConditionType getSYBLCondition() {
-
- ConditionType strategyCondition = SyblFactory.eINSTANCE.createConditionType();
- BinaryRestriction br = SyblFactory.eINSTANCE.createBinaryRestriction();
- br.setType( this.conditionOperator );
- LeftHandSideType conditionLeft = SyblFactory.eINSTANCE.createLeftHandSideType();
- conditionLeft.setMetric( this.conditionLeft );
- br.setLeftHandSide( conditionLeft );
- RightHandSideType conditionRight = SyblFactory.eINSTANCE.createRightHandSideType();
- conditionRight.setNumber( this.conditionRight );
- br.setRightHandSide( conditionRight );
- UnaryRestriction ur = SyblFactory.eINSTANCE.createUnaryRestriction();
- ur.setType( "hi4" );
- strategyCondition.getBinaryRestrictionsConjunction().add( br );
- strategyCondition.getUnaryRestrictionsConjunction().add( ur );
-
- return strategyCondition;
-
- }
-
- @SuppressWarnings("boxing")
- @Override
- protected void okPressed() {
-
- ElasticityConditionDialog.this.conditionLeft = this.cmbGlobalElasticityReq.getText();
- ElasticityConditionDialog.this.conditionRight = this.valueText.getText();
- ElasticityConditionDialog.this.conditionOperator = this.cmbOperator.getText();
- if ( this.conditionSelected ){
- ElasticityConditionDialog.this.condition = "CASE fulfilled(" + this.cmbCondition.getText().split( ":" )[0] + "):";
- }
- else if ( this.conditionSelected2 ){
- ElasticityConditionDialog.this.condition = "CASE violated(" + this.cmbCondition2.getText().split( ":" )[0] + "):";
- }
- else {
- ElasticityConditionDialog.this.condition = "CASE " + this.cmbGlobalElasticityReq.getText() + this.cmbOperator.getText() + this.valueText.getText();
- }
-
- super.okPressed();
- }
-}
+ @SuppressWarnings("boxing")
+ @Override
+ protected void okPressed() {
+
+ ElasticityConditionDialog.this.conditionLeft = this.cmbGlobalElasticityReq.getText();
+ ElasticityConditionDialog.this.conditionRight = this.valueText.getText();
+ ElasticityConditionDialog.this.conditionOperator = this.cmbOperator.getText();
+ if ( this.conditionSelected ){
+ ElasticityConditionDialog.this.condition = "CASE fulfilled(" + this.cmbCondition.getText().split( ":" )[0] + "):";
+ }
+ else if ( this.conditionSelected2 ){
+ ElasticityConditionDialog.this.condition = "CASE violated(" + this.cmbCondition2.getText().split( ":" )[0] + "):";
+ }
+ else {
+ ElasticityConditionDialog.this.condition = "CASE " + this.cmbGlobalElasticityReq.getText() + this.cmbOperator.getText() + this.valueText.getText();
+ }
+
+ super.okPressed();
+ }
+ }
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/dialog/ElasticityConstraintDialog.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/dialog/ElasticityConstraintDialog.java
index fc252ef..b808e32 100644
--- a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/dialog/ElasticityConstraintDialog.java
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/dialog/ElasticityConstraintDialog.java
@@ -52,19 +52,14 @@
public class ElasticityConstraintDialog extends Dialog {
- protected Text typeText;
- protected Text valueText;
- protected boolean editMode = false;
- protected boolean addMode = false;
- protected String newType;
- protected String elasticityRequirement;
- private CCombo cmbGlobalElasticityReq;
- private CCombo cmbOperator;
- private String component;
- private String constraintLeft;
- private String constraintRight;
- private String constraintOperator;
-
+ protected Text typeText;
+ protected Text valueText;
+ protected boolean editMode = false;
+ protected boolean addMode = false;
+ protected String newType;
+ protected String elasticityRequirement;
+ private CCombo cmbGlobalElasticityReq;
+ private CCombo cmbOperator;
/**
* @param parentShell
@@ -74,7 +69,6 @@
super( parentShell );
this.elasticityRequirement = null;
this.addMode = true;
- this.component = component;
}
@Override
@@ -101,33 +95,28 @@
this.cmbGlobalElasticityReq.setEnabled( true );
gd = new GridData( 212, 20 );
this.cmbGlobalElasticityReq.setLayoutData( gd );
-
ArrayList<MonitoringProbe> mps = getMetrics();
-
- for (MonitoringProbe mp : mps){
+ for( MonitoringProbe mp : mps ) {
String metricsString = mp.getDescription();
- if (metricsString.equals( "" )==false){
- metricsString = metricsString.substring( 2, metricsString.length()-2 );
+ if( metricsString.equals( "" ) == false ) {
+ metricsString = metricsString.substring( 2, metricsString.length() - 2 );
metricsString = metricsString.replace( "\"", "" );
- String[] metrics = metricsString.split( "," );
- for (String metric : metrics)
- this.cmbGlobalElasticityReq.add(metric);
- }
- else{
- this.cmbGlobalElasticityReq.add(mp.getName());
+ String[] metrics = metricsString.split( "," );
+ for( String metric : metrics )
+ this.cmbGlobalElasticityReq.add( metric );
+ } else {
+ this.cmbGlobalElasticityReq.add( mp.getName() );
}
}
this.cmbGlobalElasticityReq.add( "CostPerHour ($)" );
-
+ this.cmbGlobalElasticityReq.add( "Response Time" );
Composite valueComposite = new Composite( composite, SWT.NONE );
gLayout = new GridLayout( 3, false );
valueComposite.setLayout( gLayout );
-
Label valueLabel = new Label( valueComposite, SWT.LEAD );
valueLabel.setText( "Value" ); //$NON-NLS-1$
gd = new GridData( 50, 20 );
valueLabel.setLayoutData( gd );
-
// Combo - Operator
this.cmbOperator = new CCombo( valueComposite, SWT.BORDER );
this.cmbOperator.setEnabled( true );
@@ -135,92 +124,55 @@
this.cmbOperator.setLayoutData( gd );
this.cmbOperator.add( "=" ); //$NON-NLS-1$
this.cmbOperator.add( "<" ); //$NON-NLS-1$
- this.cmbOperator.add( ">" ); //$NON-NLS-1$
- this.cmbOperator.setText( this.cmbOperator.getItem( 0 ) );
-
+ this.cmbOperator.add( ">" ); //$NON-NLS-1$
+ this.cmbOperator.setText( this.cmbOperator.getItem( 0 ) );
this.valueText = new Text( valueComposite, SWT.BORDER );
gd = new GridData( 154, 20 );
- this.valueText.setLayoutData( gd );
-
+ this.valueText.setLayoutData( gd );
return composite;
}
- public ArrayList<MonitoringProbe> getMetrics(){
-
- ArrayList<MonitoringProbe> mps = MockUpInfoSystem.getInstance()
- .getMonitoringProbes();
-
- ArrayList<MonitoringProbe> mpsCopy = ( ArrayList<MonitoringProbe> )mps.clone();
-
- IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
- IProject monitoringProbesProject = workspaceRoot.getProject( "MonitoringProbe" );
+ public ArrayList<MonitoringProbe> getMetrics() {
+ ArrayList<MonitoringProbe> mps = MockUpInfoSystem.getInstance()
+ .getMonitoringProbes();
+ @SuppressWarnings("unchecked")
+ ArrayList<MonitoringProbe> mpsCopy = ( ArrayList<MonitoringProbe> )mps.clone();
+ IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
+ IProject monitoringProbesProject = workspaceRoot.getProject( "MonitoringProbe" );
+ if( monitoringProbesProject.exists() ) {
+ IFolder srcFolder = monitoringProbesProject.getFolder( "src" );
+ IResource[] artifactsResource = null;
+ try {
+ artifactsResource = srcFolder.members();
+ } catch( CoreException e ) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ for( IResource tempResource : artifactsResource ) {
+ if( tempResource instanceof IFile ) {
+ MonitoringProbe mp = InfoSystemFactory.eINSTANCE.createMonitoringProbe();
+ mp.setUID( tempResource.getName().replaceFirst( ".java", "" ) );
+ mp.setName( tempResource.getName().replaceFirst( ".java", "" ) );
+ mp.setDescription( "" );
+ // add new probe to monitoring list
+ mpsCopy.add( 0, mp );
+ }
+ }
+ }
+ return mpsCopy;
+ }
- if( monitoringProbesProject.exists() ) {
- IFolder srcFolder = monitoringProbesProject.getFolder( "src" );
- IResource[] artifactsResource = null;
- try {
- artifactsResource = srcFolder.members();
- } catch( CoreException e ) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- for( IResource tempResource : artifactsResource ) {
- if( tempResource instanceof IFile ) {
- MonitoringProbe mp = InfoSystemFactory.eINSTANCE.createMonitoringProbe();
- mp.setUID( tempResource.getName().replaceFirst( ".java", "" ));
- mp.setName( tempResource.getName().replaceFirst( ".java", "" ));
- mp.setDescription( "" );
- mp.setURL( "" );
- // add new probe to monitoring list
- mpsCopy.add( 0, mp );
- }
- }
- }
-
- return mpsCopy;
- }
-
- public String getElasticityConstraint() {
- return ElasticityConstraintDialog.this.elasticityRequirement;
- }
-
- public SyblElasticityRequirementsDescription getSYBLConstraint(){
+ public String getElasticityConstraint() {
+ return ElasticityConstraintDialog.this.elasticityRequirement;
+ }
- SyblElasticityRequirementsDescription serd = SyblFactory.eINSTANCE.createSyblElasticityRequirementsDescription();
-
- Constraint propertiesConstraint = SyblFactory.eINSTANCE.createConstraint();
- ToEnforceType1 constraintToEnforce = SyblFactory.eINSTANCE.createToEnforceType1();
- propertiesConstraint.setId( "hi" );
- propertiesConstraint.setToEnforce( constraintToEnforce );
-
- BinaryRestriction br = SyblFactory.eINSTANCE.createBinaryRestriction();
- br.setType( this.constraintOperator );
- LeftHandSideType constraintLeft = SyblFactory.eINSTANCE.createLeftHandSideType();
- constraintLeft.setMetric( this.constraintLeft );
- br.setLeftHandSide( constraintLeft );
- RightHandSideType constraintRight = SyblFactory.eINSTANCE.createRightHandSideType();
- constraintRight.setNumber( this.constraintRight );
- br.setRightHandSide( constraintRight );
- constraintToEnforce.getBinaryRestrictionsConjunction().add( br );
-
- SYBLSpecificationType sst = SyblFactory.eINSTANCE.createSYBLSpecificationType();
- sst.getConstraint().add( propertiesConstraint );
- serd.getSYBLSpecification().add( sst );
-
- return serd;
- }
-
- @SuppressWarnings("boxing")
- @Override
- protected void okPressed() {
-
- ElasticityConstraintDialog.this.constraintLeft = this.cmbGlobalElasticityReq.getText();
- ElasticityConstraintDialog.this.constraintRight = this.valueText.getText();
- ElasticityConstraintDialog.this.constraintOperator = this.cmbOperator.getText();
-
- ElasticityConstraintDialog.this.elasticityRequirement = this.cmbGlobalElasticityReq.getText() + this.cmbOperator.getText() + this.valueText.getText();
-
- super.okPressed();
- }
+ @SuppressWarnings("boxing")
+ @Override
+ protected void okPressed() {
+ ElasticityConstraintDialog.this.elasticityRequirement = this.cmbGlobalElasticityReq.getText()
+ + this.cmbOperator.getText()
+ + this.valueText.getText();
+ super.okPressed();
+ }
}
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/dialog/ElasticityStrategyDialog.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/dialog/ElasticityStrategyDialog.java
index bd46d88..31332f5 100644
--- a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/dialog/ElasticityStrategyDialog.java
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/dialog/ElasticityStrategyDialog.java
@@ -39,7 +39,7 @@
public class ElasticityStrategyDialog extends Dialog {
- protected Text typeText;
+ protected Text typeText;
protected Text valueText;
protected boolean editMode = false;
protected boolean addMode = false;
@@ -48,19 +48,17 @@
private CCombo cmbStrategy;
private CCombo cmbMetric;
private CCombo cmbElasticityAction;
- private String component;
-
+ private String nodeName;
+
/**
* @param parentShell
*/
- public ElasticityStrategyDialog( final Shell parentShell, String component )
- {
+ public ElasticityStrategyDialog( final Shell parentShell, String component, String nodeName ) {
super( parentShell );
this.addMode = true;
- this.component = component;
+ this.nodeName = nodeName;
}
-
@Override
protected void configureShell( final Shell shell ) {
super.configureShell( shell );
@@ -73,69 +71,47 @@
Composite composite = ( Composite )super.createDialogArea( parent );
composite.setLayout( new GridLayout( 1, false ) );
composite.setLayoutData( new GridData( GridData.FILL_BOTH ) );
-
// Choose from Supported Elasticity Actions Group
Group elasticityActionsGroup = new Group( composite, SWT.NONE );
elasticityActionsGroup.setLayout( new GridLayout( 1, false ) );
elasticityActionsGroup.setText( "&Select Strategy" );
GridData gData = new GridData( SWT.FILL, SWT.FILL, true, true );
elasticityActionsGroup.setLayoutData( gData );
-
// Combo - GlobalElasticityReq
this.cmbElasticityAction = new CCombo( elasticityActionsGroup, SWT.BORDER );
this.cmbElasticityAction.setEnabled( true );
GridData gd = new GridData( GridData.FILL_HORIZONTAL );
this.cmbElasticityAction.setLayoutData( gd );
-
- this.cmbElasticityAction.add( "AddVM" );
- this.cmbElasticityAction.add( "RemoveVM" );
- this.cmbElasticityAction.setText( this.cmbElasticityAction.getItem( 0 ) );
-
+// this.cmbElasticityAction.add( "AddVM" );
+// this.cmbElasticityAction.add( "RemoveVM" );
+ this.cmbElasticityAction.add( "scaleIn" );
+ this.cmbElasticityAction.add( "scaleOut" );
+ this.cmbElasticityAction.setText( this.cmbElasticityAction.getItem( 0 ) );
this.cmbElasticityAction.setEditable( false );
-
- //Create New Strategy Group
+ // Create New Strategy Group
Group customStrategyGroup = new Group( composite, SWT.NONE );
customStrategyGroup.setLayout( new GridLayout( 1, false ) );
customStrategyGroup.setText( "&Specify New Strategy" );
gData = new GridData( SWT.FILL, SWT.FILL, true, true );
customStrategyGroup.setLayoutData( gData );
-
// Combo - GlobalElasticityReq
this.cmbStrategy = new CCombo( customStrategyGroup, SWT.BORDER );
this.cmbStrategy.setEnabled( true );
gd = new GridData( GridData.FILL_HORIZONTAL );
this.cmbStrategy.setLayoutData( gd );
-
this.cmbStrategy.add( "Maximize" );
this.cmbStrategy.add( "Minimize" );
- this.cmbStrategy.setText( this.cmbStrategy.getItem( 0 ) );
-
+ this.cmbStrategy.setText( this.cmbStrategy.getItem( 0 ) );
this.cmbStrategy.setEditable( false );
-
// Combo - Metric
-
this.cmbMetric = new CCombo( customStrategyGroup, SWT.BORDER );
this.cmbMetric.setEnabled( true );
this.cmbMetric.setEditable( false );
GridData gdMetric = new GridData( GridData.FILL_HORIZONTAL );
this.cmbMetric.setLayoutData( gdMetric );
-
-// if( this.component.compareTo( "Application" ) == 0 ) {
-// List<ElasticityRequirementCategory> categories = ElasticityRequirementCategory.VALUES;
-// for( ElasticityRequirementCategory tempCat : categories ) {
-// this.cmbMetric.add( tempCat.toString() );
-// }
-// }
-// else if( this.component.compareTo( "Application Component" ) == 0 ) {
-// List<ApplicationComponentElasticityRequirementCategory> categories = ApplicationComponentElasticityRequirementCategory.VALUES;
-// for( ApplicationComponentElasticityRequirementCategory tempCat : categories )
-// {
-// this.cmbMetric.add( tempCat.toString() );
-// }
-// this.cmbMetric.add( "Latency" );
-// }
-
- this.cmbMetric.add( "Latency" );
+ this.cmbMetric.add( "Cost" );
+ this.cmbMetric.add( "Throughput" );
+ this.cmbMetric.add( "Response Time" );
return composite;
}
@@ -147,35 +123,22 @@
public String getElasticityStrategy() {
return ElasticityStrategyDialog.this.elasticityStrategy;
}
-
- public SyblElasticityRequirementsDescription getSYBLStrategy(){
-
- SyblElasticityRequirementsDescription serd = SyblFactory.eINSTANCE.createSyblElasticityRequirementsDescription();
-
- Strategy propertiesStrategy = SyblFactory.eINSTANCE.createStrategy();
- ToEnforceType strategyToEnforce = SyblFactory.eINSTANCE.createToEnforceType();
- propertiesStrategy.setId( "hi" );
- propertiesStrategy.setToEnforce( strategyToEnforce );
- strategyToEnforce.setActionName( this.elasticityStrategy );
- strategyToEnforce.setParameter( "hi2" );
- SYBLSpecificationType sst = SyblFactory.eINSTANCE.createSYBLSpecificationType();
- sst.getStrategy().add( propertiesStrategy );
- serd.getSYBLSpecification().add( sst );
-
- return serd;
- }
@SuppressWarnings("boxing")
@Override
protected void okPressed() {
-
- if ( !(this.cmbMetric.getText().equals( "" )) ){
- ElasticityStrategyDialog.this.elasticityStrategy = this.cmbStrategy.getText() + " (" + this.cmbMetric.getText() + ")";
- }
- else{
- ElasticityStrategyDialog.this.elasticityStrategy = this.cmbElasticityAction.getText();
+ if( !( this.cmbMetric.getText().equals( "" ) ) ) {
+ ElasticityStrategyDialog.this.elasticityStrategy = this.cmbStrategy.getText()
+ + " ("
+ + this.cmbMetric.getText()
+ + ")";
+ } else {
+ //ElasticityStrategyDialog.this.elasticityStrategy = this.cmbElasticityAction.getText();
+ ElasticityStrategyDialog.this.elasticityStrategy = this.cmbElasticityAction.getText()
+ + " ("
+ + this.nodeName
+ + ")";
}
-
super.okPressed();
}
}
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/AddSoftwareDependencyFeature.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/AddSoftwareDependencyFeature.java
index 65097d2..2b59eb5 100644
--- a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/AddSoftwareDependencyFeature.java
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/AddSoftwareDependencyFeature.java
@@ -16,12 +16,14 @@
*******************************************************************************/
package org.eclipse.camf.tosca.editor.features;
+import org.eclipse.camf.tosca.TArtifactTemplate;
import org.eclipse.camf.tosca.TDeploymentArtifact;
import org.eclipse.camf.tosca.editor.StyleUtil;
import org.eclipse.graphiti.features.IAddFeature;
import org.eclipse.graphiti.features.IFeatureProvider;
import org.eclipse.graphiti.features.context.IAddContext;
import org.eclipse.graphiti.features.context.IContext;
+import org.eclipse.graphiti.features.impl.AbstractAddShapeFeature;
import org.eclipse.graphiti.features.impl.AbstractFeature;
import org.eclipse.graphiti.mm.algorithms.Polyline;
import org.eclipse.graphiti.mm.algorithms.Rectangle;
@@ -38,8 +40,7 @@
import org.eclipse.graphiti.util.ColorConstant;
import org.eclipse.graphiti.util.IColorConstant;
-public class AddSoftwareDependencyFeature extends AbstractFeature
- implements IAddFeature
+public class AddSoftwareDependencyFeature extends AbstractAddShapeFeature
{
private static final IColorConstant E_CLASS_TEXT_FOREGROUND = IColorConstant.BLACK;
@@ -59,14 +60,16 @@
public boolean canAdd( final IAddContext context ) {
boolean result = false;
- boolean diagraminstance = context.getTargetContainer() instanceof Diagram;
-
- if( context.getNewObject() instanceof TDeploymentArtifact
- && !diagraminstance )
- {
- if (((TDeploymentArtifact)context.getNewObject()).getArtifactType().toString().compareTo( "SD" )==0)
- result = true;
- }
+ boolean diagraminstance = context.getTargetContainer() instanceof Diagram;
+
+ if( context.getNewObject() instanceof TArtifactTemplate
+ && !diagraminstance )
+ {
+ if (((TArtifactTemplate)context.getNewObject()).getName().contains( "SD" ))
+ result = true;
+ }
+
+
return result;
}
@@ -75,7 +78,7 @@
@Override
public PictogramElement add( final IAddContext context ) {
- TDeploymentArtifact addedClass = ( TDeploymentArtifact )context.getNewObject();
+ TArtifactTemplate addedClass = ( TArtifactTemplate )context.getNewObject();
ContainerShape targetDiagram = context.getTargetContainer();
Object[] targetDiagrams = targetDiagram.getChildren().toArray();
@@ -135,7 +138,9 @@
// create shape for text
Shape shape = peCreateService.createShape( containerShape, false );
// create and set text graphics algorithm
- Text text = gaService.createText( shape, addedClass.getName() );
+ // 2 is the size of "SD"
+ Text text = gaService.createText( shape, addedClass.getName().substring( 2 ) );
+ //Text text = gaService.createText( shape, findImplementationArtifactName(addedClass.getId()) );
text.setForeground( manageColor( E_CLASS_TEXT_FOREGROUND ) );
text.setHorizontalAlignment( Orientation.ALIGNMENT_CENTER );
// vertical alignment has as default value "center"
@@ -151,13 +156,23 @@
return containerShape;
}
- @Override
- public boolean canExecute( final IContext context ) {
- return false;
- }
-
- @Override
- public void execute( final IContext context ) {
- // TODO Auto-generated method stub
- }
+
+// private String findImplementationArtifactName(String artifactId){
+// ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+// DocumentRoot dr = model.getDocumentRoot();
+// DefinitionsType dt = dr.getDefinitions();
+// EList<TArtifactTemplate> artifactTemplates =
+// dt.getArtifactTemplate();
+//
+// for (TArtifactTemplate tempArtifactTemplate : artifactTemplates){
+// if (tempArtifactTemplate.getId().equals( artifactId )){
+// TArtifactReference artifactRef = tempArtifactTemplate.getArtifactReferences().getArtifactReference().get( 0 );
+// String artifactReference = artifactRef.getReference();
+// String artifactName = artifactReference.substring( artifactReference.indexOf( "\\" ) +1);
+// return artifactName;
+// }
+// }
+//
+// return null;
+// }
}
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/AddVirtualMachineFeature.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/AddVirtualMachineFeature.java
index 66c4650..428f20e 100644
--- a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/AddVirtualMachineFeature.java
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/AddVirtualMachineFeature.java
@@ -18,6 +18,7 @@
import org.eclipse.camf.tosca.TDeploymentArtifact;
import org.eclipse.camf.tosca.editor.StyleUtil;
+import org.eclipse.camf.tosca.elasticity.Tosca_Elasticity_ExtensionsPackage;
import org.eclipse.graphiti.features.IFeatureProvider;
import org.eclipse.graphiti.features.context.IAddContext;
import org.eclipse.graphiti.features.impl.AbstractAddShapeFeature;
@@ -37,100 +38,102 @@
public class AddVirtualMachineFeature extends AbstractAddShapeFeature {
- private static final IColorConstant E_CLASS_TEXT_FOREGROUND = IColorConstant.BLACK;
- private static final IColorConstant E_CLASS_FOREGROUND = new ColorConstant( 98,
- 131,
- 167 );
- private static final IColorConstant E_CLASS_BACKGROUND = new ColorConstant( 32,
- 178,
- 170 );
+ private static final IColorConstant E_CLASS_TEXT_FOREGROUND = IColorConstant.BLACK;
+ private static final IColorConstant E_CLASS_FOREGROUND = new ColorConstant( 98,
+ 131,
+ 167 );
+ private static final IColorConstant E_CLASS_BACKGROUND = new ColorConstant( 32,
+ 178,
+ 170 );
+ private String imageType = Tosca_Elasticity_ExtensionsPackage.eINSTANCE.getImageArtifactPropertiesType().getName();
+
+ public AddVirtualMachineFeature( final IFeatureProvider fp ) {
+ super( fp );
+ }
- public AddVirtualMachineFeature( final IFeatureProvider fp ) {
- super( fp );
- }
+ // Checks whether a VM Image can be added to the target object
+ @Override
+ public boolean canAdd( final IAddContext context ) {
+ boolean result = false;
+ boolean diagraminstance = context.getTargetContainer() instanceof Diagram;
+// if( context.getNewObject() instanceof VirtualMachineImage
+// && !diagraminstance )
+// {
+// result = true;
+// }
+ if( context.getNewObject() instanceof TDeploymentArtifact
+ && !diagraminstance )
+ {
+ //if (((TDeploymentArtifact)context.getNewObject()).getArtifactType().toString().compareTo( "VMI" )==0)
+ if (((TDeploymentArtifact)context.getNewObject()).getArtifactType().getLocalPart().compareTo( imageType )==0)
+ result = true;
+ }
+ return result;
+ }
- // Checks whether a VM Image can be added to the target object
- @Override
- public boolean canAdd( final IAddContext context ) {
- boolean result = false;
- boolean diagraminstance = context.getTargetContainer() instanceof Diagram;
-// if( context.getNewObject() instanceof VirtualMachineImage
-// && !diagraminstance )
-// {
-// result = true;
-// }
- if( context.getNewObject() instanceof TDeploymentArtifact
- && !diagraminstance )
- {
- if (((TDeploymentArtifact)context.getNewObject()).getArtifactType().toString().compareTo( "VMI" )==0)
- result = true;
- }
- return result;
- }
+ // Adds a VM Image figure to the target object
+ @Override
+ public PictogramElement add( final IAddContext context ) {
- // Adds a VM Image figure to the target object
- @Override
- public PictogramElement add( final IAddContext context ) {
-
- TDeploymentArtifact addedClass = ( TDeploymentArtifact )context.getNewObject();
-
-
- ContainerShape targetDiagram = ( ContainerShape )context.getTargetContainer();
- int targetContainerHeight = targetDiagram.getGraphicsAlgorithm().getHeight();
- int targetContainerWidth = targetDiagram.getGraphicsAlgorithm().getWidth();
-
- // CONTAINER SHAPE WITH ROUNDED RECTANGLE
- IPeCreateService peCreateService = Graphiti.getPeCreateService();
- ContainerShape containerShape = peCreateService.createContainerShape( targetDiagram,
- true );
- final int width = targetContainerWidth;
- final int height = 20;
- IGaService gaService = Graphiti.getGaService();
- RoundedRectangle roundedRectangle;
- {
- // create and set graphics algorithm
- roundedRectangle = gaService.createRoundedRectangle( containerShape, 5, 5 );
- roundedRectangle.setForeground( manageColor( E_CLASS_FOREGROUND ) );
- roundedRectangle.setBackground( manageColor( E_CLASS_BACKGROUND ) );
- roundedRectangle.setLineWidth( 2 );
- gaService.setLocationAndSize( roundedRectangle,
- 0,
- targetContainerHeight - 20,
- width,
- height );
- if( addedClass.eResource() == null ) {
- getDiagram().eResource().getContents().add( addedClass );
- }
- // create link and wire it
- link( containerShape, addedClass );
- }
- // SHAPE WITH LINE
- {
- // create shape for line
- Shape shape = peCreateService.createShape( containerShape, false );
- // create and set graphics algorithm
- Polyline polyline = gaService.createPolyline( shape, new int[]{
- 0, 20, width, 20
- } );
- polyline.setForeground( manageColor( E_CLASS_FOREGROUND ) );
- polyline.setLineWidth( 2 );
- }
- // SHAPE WITH TEXT
- {
- // create shape for text
- Shape shape = peCreateService.createShape( containerShape, false );
- // create and set text graphics algorithm
- Text text = gaService.createText( shape, addedClass.getName() );
- text.setForeground( manageColor( E_CLASS_TEXT_FOREGROUND ) );
- text.setHorizontalAlignment( Orientation.ALIGNMENT_CENTER );
- // vertical alignment has as default value "center"
- text.setFont( gaService.manageDefaultFont( getDiagram(), false, true ) );
- gaService.setLocationAndSize( text, 0, 0, width, 20 );
- // create link and wire it
- link( shape, addedClass );
- }
- // call the layout feature
- layoutPictogramElement( containerShape );
- return containerShape;
- }
-}
+ TDeploymentArtifact addedClass = ( TDeploymentArtifact )context.getNewObject();
+
+
+ ContainerShape targetDiagram = ( ContainerShape )context.getTargetContainer();
+ int targetContainerHeight = targetDiagram.getGraphicsAlgorithm().getHeight();
+ int targetContainerWidth = targetDiagram.getGraphicsAlgorithm().getWidth();
+
+ // CONTAINER SHAPE WITH ROUNDED RECTANGLE
+ IPeCreateService peCreateService = Graphiti.getPeCreateService();
+ ContainerShape containerShape = peCreateService.createContainerShape( targetDiagram,
+ true );
+ final int width = targetContainerWidth;
+ final int height = 20;
+ IGaService gaService = Graphiti.getGaService();
+ RoundedRectangle roundedRectangle;
+ {
+ // create and set graphics algorithm
+ roundedRectangle = gaService.createRoundedRectangle( containerShape, 5, 5 );
+ roundedRectangle.setForeground( manageColor( E_CLASS_FOREGROUND ) );
+ roundedRectangle.setBackground( manageColor( E_CLASS_BACKGROUND ) );
+ roundedRectangle.setLineWidth( 2 );
+ gaService.setLocationAndSize( roundedRectangle,
+ 0,
+ targetContainerHeight - 20,
+ width,
+ height );
+ if( addedClass.eResource() == null ) {
+ getDiagram().eResource().getContents().add( addedClass );
+ }
+ // create link and wire it
+ link( containerShape, addedClass );
+ }
+ // SHAPE WITH LINE
+ {
+ // create shape for line
+ Shape shape = peCreateService.createShape( containerShape, false );
+ // create and set graphics algorithm
+ Polyline polyline = gaService.createPolyline( shape, new int[]{
+ 0, 20, width, 20
+ } );
+ polyline.setForeground( manageColor( E_CLASS_FOREGROUND ) );
+ polyline.setLineWidth( 2 );
+ }
+ // SHAPE WITH TEXT
+ {
+ // create shape for text
+ Shape shape = peCreateService.createShape( containerShape, false );
+ // create and set text graphics algorithm
+ Text text = gaService.createText( shape, addedClass.getName() );
+ text.setForeground( manageColor( E_CLASS_TEXT_FOREGROUND ) );
+ text.setHorizontalAlignment( Orientation.ALIGNMENT_CENTER );
+ // vertical alignment has as default value "center"
+ text.setFont( gaService.manageDefaultFont( getDiagram(), false, true ) );
+ gaService.setLocationAndSize( text, 0, 0, width, 20 );
+ // create link and wire it
+ link( shape, addedClass );
+ }
+ // call the layout feature
+ layoutPictogramElement( containerShape );
+ return containerShape;
+ }
+ }
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/CreateApplicationComponentFeature.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/CreateApplicationComponentFeature.java
index 520101f..688cdcb 100644
--- a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/CreateApplicationComponentFeature.java
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/CreateApplicationComponentFeature.java
@@ -44,7 +44,6 @@
//-1 means not specified by user
private static int DEFAULT_MAX_INSTANCES = -1;
- private static int DEFAULT_INIT_INSTANCES = 1;
private Object contextObject = null;
@@ -73,64 +72,63 @@
// Creates the business object for the application component
@Override
public Object[] create( final ICreateContext context ) {
-
- if (this.contextObject == null) {
- return null;
- }
- // create Application Component
- TNodeTemplateExtension newClass = Tosca_Elasticity_ExtensionsFactory.eINSTANCE.createTNodeTemplateExtension();
-
- //newClass.setYcsbmulti( 1 );
- //newClass.setCasmulti( 1 );
-
- // initialize Application Component
- // Max or Min instances == 0 => nothing specified by user
- newClass.setInitInstances( DEFAULT_INIT_INSTANCES );
- newClass.setMinInstances( DEFAULT_MIN_INSTANCES );
- newClass.setMaxInstances( BigInteger.valueOf( DEFAULT_MAX_INSTANCES ) );
- newClass.setId( ( "C" + ( Integer )newClass.hashCode() ).toString() );
- //newClass.setType(((TNodeTemplateExtension) this.contextObject ).getType());
-
- //Set X and Y required for reloading tosca model in tosca editor
- newClass.setX(context.getX());
- newClass.setY(context.getY());
- // create the node template
- ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
- model.getDocumentRoot()
- .getDefinitions()
- .getServiceTemplate()
- .get( 0 )
- .getTopologyTemplate()
- .getNodeTemplate()
- .add( newClass );
- Object parentObject = getFeatureProvider().getBusinessObjectForPictogramElement( context.getTargetContainer() );
- TServiceTemplate serviceTemplate = null;
- if( parentObject == null )
- return null;
- if( parentObject instanceof TServiceTemplate ) {
- serviceTemplate = ( TServiceTemplate )parentObject;
- }
- TTopologyTemplate topology = null;
- if( serviceTemplate.getTopologyTemplate() == null ) {
- topology = ToscaFactory.eINSTANCE.createTTopologyTemplate();
- serviceTemplate.setTopologyTemplate( topology );
- } else {
- topology = serviceTemplate.getTopologyTemplate();
- }
-
- // Add object to domain model
- topology.getNodeTemplate().add( newClass );
-
- // Add object to diagram model
- //getDiagram().eResource().getContents().add(newClass);
-
- // do the add
- addGraphicalRepresentation( context, newClass );
- // activate direct editing after object creation
- getFeatureProvider().getDirectEditingInfo().setActive( true );
- // return newly created business object(s)
- return new Object[]{
- newClass
- };
- }
+
+ if (this.contextObject == null) {
+ return null;
+ }
+ // create Application Component
+ TNodeTemplateExtension newClass = Tosca_Elasticity_ExtensionsFactory.eINSTANCE.createTNodeTemplateExtension();
+
+ //newClass.setYcsbmulti( 1 );
+ //newClass.setCasmulti( 1 );
+
+ // initialize Application Component
+ // Max or Min instances == 0 => nothing specified by user
+ newClass.setMinInstances( DEFAULT_MIN_INSTANCES );
+ newClass.setMaxInstances( BigInteger.valueOf( DEFAULT_MAX_INSTANCES ) );
+ newClass.setId( ( "C" + ( Integer )newClass.hashCode() ).toString() );
+ //newClass.setType(((TNodeTemplateExtension) this.contextObject ).getType());
+
+ //Set X and Y required for reloading tosca model in tosca editor
+ newClass.setX(context.getX());
+ newClass.setY(context.getY());
+ // create the node template
+ ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+ model.getDocumentRoot()
+ .getDefinitions()
+ .getServiceTemplate()
+ .get( 0 )
+ .getTopologyTemplate()
+ .getNodeTemplate()
+ .add( newClass );
+ Object parentObject = getFeatureProvider().getBusinessObjectForPictogramElement( context.getTargetContainer() );
+ TServiceTemplate serviceTemplate = null;
+ if( parentObject == null )
+ return null;
+ if( parentObject instanceof TServiceTemplate ) {
+ serviceTemplate = ( TServiceTemplate )parentObject;
+ }
+ TTopologyTemplate topology = null;
+ if( serviceTemplate.getTopologyTemplate() == null ) {
+ topology = ToscaFactory.eINSTANCE.createTTopologyTemplate();
+ serviceTemplate.setTopologyTemplate( topology );
+ } else {
+ topology = serviceTemplate.getTopologyTemplate();
+ }
+
+ // Add object to domain model
+ topology.getNodeTemplate().add( newClass );
+
+ // Add object to diagram model
+ //getDiagram().eResource().getContents().add(newClass);
+
+ // do the add
+ addGraphicalRepresentation( context, newClass );
+ // activate direct editing after object creation
+ getFeatureProvider().getDirectEditingInfo().setActive( true );
+ // return newly created business object(s)
+ return new Object[]{
+ newClass
+ };
+ }
}
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/CreateResizeActionFeature.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/CreateResizeActionFeature.java
index cc27002..222ecc3 100644
--- a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/CreateResizeActionFeature.java
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/CreateResizeActionFeature.java
@@ -30,6 +30,7 @@
import org.eclipse.camf.tosca.editor.ModelHandler;
import org.eclipse.camf.tosca.editor.ToscaModelLayer;
import org.eclipse.camf.tosca.elasticity.TBoundaryDefinitionsExtension;
+import org.eclipse.camf.tosca.elementCreators.CreateArtifactTemplate;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.transaction.RecordingCommand;
@@ -46,257 +47,245 @@
public class CreateResizeActionFeature extends AbstractCreateFeature {
- private Object contextObject = null;
+ private Object contextObject = null;
- public CreateResizeActionFeature( final IFeatureProvider fp ) {
- // set name and description of the creation feature
- super( fp, "Resizing Action", "Resizing Action" ); //$NON-NLS-1$ //$NON-NLS-2$
- }
+ public CreateResizeActionFeature( final IFeatureProvider fp ) {
+ // set name and description of the creation feature
+ super( fp, "Resizing Action", "Resizing Action" ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
- public void setContextObject( final Object obj ) {
- this.contextObject = obj;
- }
+ public void setContextObject( final Object obj ) {
+ this.contextObject = obj;
+ }
- // Checks if user can create an elasticity action object in the target
- // business object
- @Override
- public boolean canCreate( final ICreateContext context ) {
- Object parentBo = getFeatureProvider().getBusinessObjectForPictogramElement( context.getTargetContainer() );
- if( parentBo instanceof TNodeTemplate || parentBo instanceof TServiceTemplate ) {
- return true;
- }
- return false;
- }
+ // Checks if user can create an elasticity action object in the target
+ // business object
+ @Override
+ public boolean canCreate( final ICreateContext context ) {
+ Object parentBo = getFeatureProvider().getBusinessObjectForPictogramElement( context.getTargetContainer() );
+ if( parentBo instanceof TNodeTemplate || parentBo instanceof TServiceTemplate ) {
+ return true;
+ }
+ return false;
+ }
- // Creates the business object for the elasticity action
- @Override
- public Object[] create( final ICreateContext context ) {
- // MessageConsole myConsole = findConsole("MyConsole");
- // MessageConsoleStream out = myConsole.newMessageStream();
- if( this.contextObject == null )
- return null;
-
- String level = null;
-
- ResizingAction ra = ( ResizingAction )this.contextObject;
-
- Object parentObject = getFeatureProvider().getBusinessObjectForPictogramElement( context.getTargetContainer() );
+ // Creates the business object for the elasticity action
+ @Override
+ public Object[] create( final ICreateContext context ) {
+ // MessageConsole myConsole = findConsole("MyConsole");
+ // MessageConsoleStream out = myConsole.newMessageStream();
+ if( this.contextObject == null )
+ return null;
+
+ String level = null;
+
+ ResizingAction ra = ( ResizingAction )this.contextObject;
+
+ CreateArtifactTemplate artTempl = new CreateArtifactTemplate(ra.getName(), new QName("RA"), ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) ));
+
+ Object parentObject = getFeatureProvider().getBusinessObjectForPictogramElement( context.getTargetContainer() );
- if( parentObject == null )
- return null;
-
- TNodeTemplate tNode = null;
- TServiceTemplate tService = null;
-
- // Application Component
- if( parentObject instanceof TNodeTemplate ) {
- level = "C";
- tNode = ( TNodeTemplate )parentObject;
-
- if (tNode.getName()==null){
- MessageDialog.openError(null, "Error", "Give a Name to the selected Component and try again.");
- return null;
- }
- }
-
- else if ( parentObject instanceof TServiceTemplate ){
- level = "G";
- tService = ( TServiceTemplate )parentObject;
- if (tService.getSubstitutableNodeType() != null){
- // Composite Application Component
-
- // Find the substitute TNodeTemplate
- TNodeTemplate substituteNode = null;
- ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
- for (TNodeTemplate tempNodeTemplate : model.getDocumentRoot()
- .getDefinitions()
- .getServiceTemplate()
- .get( 0 )
- .getTopologyTemplate()
- .getNodeTemplate()){
-
- if ( tempNodeTemplate.getId().toString().equals( tService.getId().toString()) )
- {
- substituteNode = tempNodeTemplate;
- break;
- }
-
- }
-
- tNode = substituteNode;
-
+ if( parentObject == null )
+ return null;
+
+ TNodeTemplate tNode = null;
+ TServiceTemplate tService = null;
+
+ // Application Component
+ if( parentObject instanceof TNodeTemplate ) {
+ level = "C";
+ tNode = ( TNodeTemplate )parentObject;
+
+ if (tNode.getName()==null){
+ MessageDialog.openError(null, "Error", "Give a Name to the selected Component and try again.");
+ return null;
+ }
+ }
+
+ else if ( parentObject instanceof TServiceTemplate ){
+ level = "G";
+ tService = ( TServiceTemplate )parentObject;
+ if (tService.getSubstitutableNodeType() != null){
+ // Composite Application Component
+
+ // Find the substitute TNodeTemplate
+ TNodeTemplate substituteNode = null;
+ ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+ for (TNodeTemplate tempNodeTemplate : model.getDocumentRoot()
+ .getDefinitions()
+ .getServiceTemplate()
+ .get( 0 )
+ .getTopologyTemplate()
+ .getNodeTemplate()){
+
+ if ( tempNodeTemplate.getId().toString().equals( tService.getId().toString()) )
+ {
+ substituteNode = tempNodeTemplate;
+ break;
+ }
+
+ }
+
+ tNode = substituteNode;
+
-
- }
- else{
- // Application
-
- level = "A";
- final TBoundaryDefinitionsExtension boundaryDef = ( TBoundaryDefinitionsExtension )( ( ( TServiceTemplate )parentObject ).getBoundaryDefinitions() );
-
-
- if ( boundaryDef.getPolicies() == null ){
-
- final PoliciesType1 boundaryPolicies = ToscaFactory.eINSTANCE.createPoliciesType1();
-
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( parentObject );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
+
+ }
+ else{
+ // Application
+
+ level = "A";
+ final TBoundaryDefinitionsExtension boundaryDef = ( TBoundaryDefinitionsExtension )( ( ( TServiceTemplate )parentObject ).getBoundaryDefinitions() );
+
+
+ if ( boundaryDef.getPolicies() == null ){
+
+ final PoliciesType1 boundaryPolicies = ToscaFactory.eINSTANCE.createPoliciesType1();
+
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( parentObject );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
- @Override
- protected void doExecute() {
- boundaryDef.setPolicies( boundaryPolicies );
- }
- } );
-
-
- }
-
- PoliciesType1 nodePolicyList = boundaryDef.getPolicies();
-
- final EList<TPolicy> policy = nodePolicyList.getPolicy();
-
- final TPolicy newPolicy = createNewPolicy(level, ra.getName());
-
-// final TPolicy newPolicy = ToscaFactory.eINSTANCE.createTPolicy();
-//
-// final String policyUniqueName = "G" + policy.size();
-//
-// newPolicy.setPolicyType( new QName("SYBLStrategy") );
-//
-//// newPolicy.setName( "S" + policyUniqueName + ":STRATEGY " + ra.getName() );
-//
-// newPolicy.setName( "STRATEGY " + ra.getName() );
-
-
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( parentObject );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
+ @Override
+ protected void doExecute() {
+ boundaryDef.setPolicies( boundaryPolicies );
+ }
+ } );
+
+
+ }
+
+ PoliciesType1 nodePolicyList = boundaryDef.getPolicies();
+
+ final EList<TPolicy> policy = nodePolicyList.getPolicy();
+
+ final TPolicy newPolicy = createNewPolicy(level, ra.getName());
+
+// final TPolicy newPolicy = ToscaFactory.eINSTANCE.createTPolicy();
+//
+// final String policyUniqueName = "G" + policy.size();
+//
+// newPolicy.setPolicyType( new QName("SYBLStrategy") );
+//
+//// newPolicy.setName( "S" + policyUniqueName + ":STRATEGY " + ra.getName() );
+ //
+// newPolicy.setName( "STRATEGY " + ra.getName() );
+
+
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( parentObject );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
- @Override
- protected void doExecute() {
- policy.add( newPolicy );
- }
- } );
-
- return new Object[]{
- newPolicy
- };
- }
-
- }
+ @Override
+ protected void doExecute() {
+ policy.add( newPolicy );
+ }
+ } );
+
+ return new Object[]{
+ newPolicy
+ };
+ }
+
+ }
-
- final TNodeTemplate nodeTemplate = tNode;
-
- if ( nodeTemplate.getPolicies() == null ){
- final PoliciesType nodePolicyList = ToscaFactory.eINSTANCE.createPoliciesType();
-
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( parentObject );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
+
+ final TNodeTemplate nodeTemplate = tNode;
+
+ if ( nodeTemplate.getPolicies() == null ){
+ final PoliciesType nodePolicyList = ToscaFactory.eINSTANCE.createPoliciesType();
+
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( parentObject );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
- @Override
- protected void doExecute() {
- nodeTemplate.setPolicies( nodePolicyList );
- }
- } );
-
-
- }
-
- final EList<TPolicy> policy = nodeTemplate.getPolicies().getPolicy();
-
- final TPolicy newPolicy = createNewPolicy(level, ra.getName());
-
-// final TPolicy newPolicy = ToscaFactory.eINSTANCE.createTPolicy();
-//
-// final String policyUniqueName = nodeTemplate.getId() + policy.size();
-//
-// newPolicy.setPolicyType( new QName("SYBLStrategy") );
-//
-//// newPolicy.setName( "S" + policyUniqueName + ":STRATEGY " + ra.getName() );
-// newPolicy.setName( "STRATEGY " + ra.getName() );
-
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( parentObject );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
+ @Override
+ protected void doExecute() {
+ nodeTemplate.setPolicies( nodePolicyList );
+ }
+ } );
+
+
+ }
+
+ final EList<TPolicy> policy = nodeTemplate.getPolicies().getPolicy();
+
+ final TPolicy newPolicy = createNewPolicy(level, ra.getName());
+
+// final TPolicy newPolicy = ToscaFactory.eINSTANCE.createTPolicy();
+ //
+// final String policyUniqueName = nodeTemplate.getId() + policy.size();
+ //
+// newPolicy.setPolicyType( new QName("SYBLStrategy") );
+ //
+//// newPolicy.setName( "S" + policyUniqueName + ":STRATEGY " + ra.getName() );
+// newPolicy.setName( "STRATEGY " + ra.getName() );
+
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( parentObject );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
- @Override
- protected void doExecute() {
- policy.add( newPolicy );
- }
- } );
-
-
- // do the add
- addGraphicalRepresentation( context, ra );
- // activate direct editing after object creation
- getFeatureProvider().getDirectEditingInfo().setActive( true );
- // return newly created business object(s)
- return new Object[]{
- newPolicy
- };
- }
+ @Override
+ protected void doExecute() {
+ policy.add( newPolicy );
+ }
+ } );
+
+
+ // do the add
+ addGraphicalRepresentation( context, ra );
+ // activate direct editing after object creation
+ getFeatureProvider().getDirectEditingInfo().setActive( true );
+ // return newly created business object(s)
+ return new Object[]{
+ newPolicy
+ };
+ }
- //level can be "C" for Application Component, "G" for Composite Component, "A" for Application
- TPolicy createNewPolicy(String level, String policyName){
+ //level can be "C" for Application Component, "G" for Composite Component, "A" for Application
+ TPolicy createNewPolicy(String level, String policyName){
- // Create Policy Template
-
- final TPolicyTemplate newPolicyTemplate = ToscaFactory.eINSTANCE.createTPolicyTemplate();
-
- QName policyTypeName = new QName( "http://www.example.org/SYBL", "Strategy" );
-
- newPolicyTemplate.setType( policyTypeName );
-
- String id = level + ( ( Integer )newPolicyTemplate.hashCode() ).toString();
-
- newPolicyTemplate.setId( id );
-
- // Add the new Policy Template to the TOSCA Definitions element
-
- final ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
-
- DefinitionsType definitions = model.getDocumentRoot().getDefinitions();
-
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( definitions );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
+ // Create Policy Template
+
+ final TPolicyTemplate newPolicyTemplate = ToscaFactory.eINSTANCE.createTPolicyTemplate();
+
+ QName policyTypeName = new QName( "http://www.example.org/SYBL", "Strategy" );
+
+ newPolicyTemplate.setType( policyTypeName );
+
+ String id = level + ( ( Integer )newPolicyTemplate.hashCode() ).toString();
+
+ newPolicyTemplate.setId( id );
+
+ // Add the new Policy Template to the TOSCA Definitions element
+
+ final ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+
+ DefinitionsType definitions = model.getDocumentRoot().getDefinitions();
+
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( definitions );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
- @Override
- protected void doExecute() {
- model.getDocumentRoot().getDefinitions().getPolicyTemplate().add( newPolicyTemplate );
- }
- } );
-
- // Assign the created Policy Template to the new Policy
-
- TPolicy newPolicy = ToscaFactory.eINSTANCE.createTPolicy();
-
- QName qnamePolicyTemplate = new QName( newPolicyTemplate.getId() );
-
- newPolicy.setPolicyType( policyTypeName );
-
- newPolicy.setPolicyRef( qnamePolicyTemplate );
-
- newPolicy.setName( "STRATEGY " + policyName );
-
- return newPolicy;
- }
-
- private MessageConsole findConsole( String name ) {
- ConsolePlugin plugin = ConsolePlugin.getDefault();
- IConsoleManager conMan = plugin.getConsoleManager();
- IConsole[] existing = conMan.getConsoles();
- for( int i = 0; i < existing.length; i++ )
- if( name.equals( existing[ i ].getName() ) )
- return ( MessageConsole )existing[ i ];
- // no console found, so create a new one
- MessageConsole myConsole = new MessageConsole( name, null );
- conMan.addConsoles( new IConsole[]{
- myConsole
- } );
- return myConsole;
- }
-}
+ @Override
+ protected void doExecute() {
+ model.getDocumentRoot().getDefinitions().getPolicyTemplate().add( newPolicyTemplate );
+ }
+ } );
+
+ // Assign the created Policy Template to the new Policy
+
+ TPolicy newPolicy = ToscaFactory.eINSTANCE.createTPolicy();
+
+ QName qnamePolicyTemplate = new QName( newPolicyTemplate.getId() );
+
+ newPolicy.setPolicyType( policyTypeName );
+
+ newPolicy.setPolicyRef( qnamePolicyTemplate );
+
+ newPolicy.setName( "STRATEGY " + policyName );
+
+ return newPolicy;
+ }
+
+ }
\ No newline at end of file
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/CreateSoftwareDependencyFeature.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/CreateSoftwareDependencyFeature.java
index 5043b93..f0db42b 100644
--- a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/CreateSoftwareDependencyFeature.java
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/CreateSoftwareDependencyFeature.java
@@ -37,6 +37,7 @@
import org.eclipse.camf.tosca.elasticity.ScriptArtifactPropertiesType;
import org.eclipse.camf.tosca.elasticity.Tosca_Elasticity_ExtensionsFactory;
import org.eclipse.camf.tosca.elasticity.Tosca_Elasticity_ExtensionsPackage;
+import org.eclipse.camf.tosca.elementCreators.CreateArtifactTemplate;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.util.FeatureMapUtil;
import org.eclipse.emf.ecore.util.FeatureMap.Entry;
@@ -52,221 +53,121 @@
public class CreateSoftwareDependencyFeature extends AbstractCreateFeature {
- private Object contextObject = null;
+ private Object contextObject = null;
- public CreateSoftwareDependencyFeature( final IFeatureProvider fp ) {
- // set name and description of the creation feature
- super( fp, "Software Dependency", "Software Dependency" ); //$NON-NLS-1$ //$NON-NLS-2$
- }
+ public CreateSoftwareDependencyFeature( final IFeatureProvider fp ) {
+ // set name and description of the creation feature
+ super( fp, "Software Dependency", "Software Dependency" ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
- public void setContextObject( final Object obj ) {
- this.contextObject = obj;
- }
+ public void setContextObject( final Object obj ) {
+ this.contextObject = obj;
+ }
- // Checks if user can create a software dependency object in the target
- // business object
- @Override
- public boolean canCreate( final ICreateContext context ) {
- return !( context.getTargetContainer() instanceof Diagram );
- }
+ // Checks if user can create a software dependency object in the target
+ // business object
+ @Override
+ public boolean canCreate( final ICreateContext context ) {
+ return !( context.getTargetContainer() instanceof Diagram );
+ }
- // Creates the business object for the software dependency
- @Override
- public Object[] create( final ICreateContext context ) {
-
+ // Creates the business object for the software dependency
+ @Override
+ public Object[] create( final ICreateContext context ) {
if( this.contextObject == null )
- return null;
-
- Object parentObject = getFeatureProvider().getBusinessObjectForPictogramElement( context.getTargetContainer() );
- TNodeTemplate tNode = null;
- if( parentObject == null )
- return null;
- if( parentObject instanceof TNodeTemplate ) {
- tNode = ( TNodeTemplate )parentObject;
- }
-
- if (tNode.getName()==null){
- MessageDialog.openError(null, "Error", "Give a Name to the selected Component and try again.");
- return null;
- }
-
-
- if( tNode.getDeploymentArtifacts() == null ) {
-
- final TNodeTemplate node = tNode;
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( parentObject );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- protected void doExecute() {
- node.setDeploymentArtifacts( ToscaFactory.eINSTANCE.createTDeploymentArtifacts() );
- }
- } );
-
- }
+ return null;
+ Object parentObject = getFeatureProvider().getBusinessObjectForPictogramElement( context.getTargetContainer() );
+ TNodeTemplate tNode = null;
+ if( parentObject == null )
+ return null;
+ if( parentObject instanceof TNodeTemplate ) {
+ tNode = ( TNodeTemplate )parentObject;
+ }
+ if( tNode.getName() == null ) {
+ MessageDialog.openError( null,
+ "Error",
+ "Give a Name to the selected Component and try again." );
+ return null;
+ }
+ TArtifactTemplate artifactTemplate = ( TArtifactTemplate )this.contextObject;
+ // Create Script Artifact Template
+ CreateArtifactTemplate artTempl = new CreateArtifactTemplate(artifactTemplate.getId(), artifactTemplate.getType(), ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) ));
+ TArtifactTemplate newArtifactTemplate = artTempl.getNewArtifactTemplate();
+
+ // Create Implementation Artifact
+ createImplementationArtifact( new QName( tNode.getName() ), artifactTemplate.getType(),
+ new QName( artifactTemplate.getId()) );
+ //addGraphicalRepresentation( context, artifactTemplate );
+ addGraphicalRepresentation( context, newArtifactTemplate );
+
+ // activate direct editing after object creation
+ getFeatureProvider().getDirectEditingInfo().setActive( true );
+ // return newly created business object(s)
+ return new Object[]{
+ newArtifactTemplate
+ };
+ }
+
+ // Creates the install implementation artifact
+ private void createImplementationArtifact( QName nodeType, QName artifactType,
+ QName artifactID )
+ {
+
+ final ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+ DefinitionsType definitions = model.getDocumentRoot().getDefinitions();
+
+ TNodeTypeImplementation nodeTypeImplementation = null;
+ // Test if NodeTypeImplementation for nodeType already exists
+ for( TNodeTypeImplementation tempNodeTypeImplementation : definitions.getNodeTypeImplementation() )
+ {
+ if( tempNodeTypeImplementation.getNodeType()
+ .toString()
+ .equals( nodeType.toString() ) )
+ {
+ // NodeTypeImplementation already exists
+ // We are going to add the artifact to the existing implementation
+ nodeTypeImplementation = tempNodeTypeImplementation;
+ }
+ }
+ if( nodeTypeImplementation == null ) {
+ // NodeTypeImplementation does not exists
+ final TNodeTypeImplementation newNodeTypeImplementation = ToscaFactory.eINSTANCE.createTNodeTypeImplementation();
+ newNodeTypeImplementation.setNodeType( nodeType );
+ newNodeTypeImplementation.setName( "name" );
+ TImplementationArtifacts implementationArtifacts = ToscaFactory.eINSTANCE.createTImplementationArtifacts();
+ newNodeTypeImplementation.setImplementationArtifacts( implementationArtifacts );
- // Add the new deployment artifact to the list
- final TDeploymentArtifacts deploymentArtifacts = tNode.getDeploymentArtifacts();
- TDeploymentArtifact tempDeploymentArtifact = ( TDeploymentArtifact )this.contextObject;
-
- TDeploymentArtifact deploymentArtifact = ToscaFactory.eINSTANCE.createTDeploymentArtifact();
- deploymentArtifact.setName( tempDeploymentArtifact.getName() );
- deploymentArtifact.setArtifactType( tempDeploymentArtifact.getArtifactType() );
- deploymentArtifact.setArtifactRef( new QName (tNode.getName() + "Script" ));
-
- final TDeploymentArtifact tempArtifact = deploymentArtifact;
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( parentObject );
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( definitions );
editingDomain.getCommandStack()
.execute( new RecordingCommand( editingDomain ) {
+ @Override
protected void doExecute() {
- deploymentArtifacts.getDeploymentArtifact().add( tempArtifact );
+ model.getDocumentRoot().getDefinitions().getNodeTypeImplementation()
+ .add( newNodeTypeImplementation );
}
} );
-// ImplementationArtifactType tempImplementationArtifact = (ImplementationArtifactType) this.contextObject;
-//
-// //Create Image Artifact Template
-// createArtifactTemplate(tNode.getName(), tempImplementationArtifact.getArtifactType().toString());
-//
-// //Create Implementation Artifact
-// ImplementationArtifactType implementationArtifact = createImplementationArtifact( tNode.getName()+"Script", tempImplementationArtifact.getArtifactType(), new QName(tNode.getName()+"Script"));
-//
-// addGraphicalRepresentation( context, implementationArtifact );
-//
-//
-// // activate direct editing after object creation
-// getFeatureProvider().getDirectEditingInfo().setActive( true );
-// // return newly created business object(s)
-// return new Object[]{
-// implementationArtifact
-// };
-
- addGraphicalRepresentation( context, deploymentArtifact );
+ nodeTypeImplementation = newNodeTypeImplementation;
+ }
+ // Create Implementation Artifact
+ final ImplementationArtifactType installArtifactType = ToscaFactory.eINSTANCE.createImplementationArtifactType();
+ installArtifactType.setArtifactType( artifactType );
+ installArtifactType.setArtifactRef( artifactID );
+ installArtifactType.setInterfaceName( "Lifecycle" );
+ installArtifactType.setOperationName( "execute" );
+ final TNodeTypeImplementation nodeImplementation = nodeTypeImplementation;
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( nodeTypeImplementation );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
- //Create Image Artifact Template
- createArtifactTemplate(tNode.getName(), tempDeploymentArtifact.getName());
-
- //Create Implementation Artifact
- createImplementationArtifact( tempDeploymentArtifact.getName(), new QName(tNode.getName()), new QName(tNode.getName()+"Script"));
-
- // activate direct editing after object creation
- getFeatureProvider().getDirectEditingInfo().setActive( true );
- // return newly created business object(s)
- return new Object[]{
- deploymentArtifact
- };
-
- }
-
- private void createArtifactTemplate(String nodeName, String artifactName){
-
- //Create Artifact Template
- final TArtifactTemplate artifactTemplate = ToscaFactory.eINSTANCE.createTArtifactTemplate();
-
- //Create Script Artifact Properties
- ScriptArtifactPropertiesType scriptProperties = Tosca_Elasticity_ExtensionsFactory.eINSTANCE.createScriptArtifactPropertiesType();
- scriptProperties.setLanguage( "Shell" );
-
- // Set the Properties of the Policy Template
- PropertiesType properties = ToscaFactory.eINSTANCE.createPropertiesType();
-
- // Add the SYBL Policy to the FeatureMap of the Policy's Properties element
- Entry e = FeatureMapUtil.createEntry( Tosca_Elasticity_ExtensionsPackage.eINSTANCE.getDocumentRoot_ScriptArtifactProperties(), scriptProperties );
- properties.getAny().add( e );
-
- artifactTemplate.setProperties( properties );
-
- artifactTemplate.setId( nodeName + "Script" );
-
-
- // Set artifact ref
- TArtifactReference artifactRef = ToscaFactory.eINSTANCE.createTArtifactReference();
- artifactRef.setReference( "Scripts"+ File.separator + artifactName);
-
- ArtifactReferencesType artifactRefType = ToscaFactory.eINSTANCE.createArtifactReferencesType();
- artifactRefType.getArtifactReference().add( artifactRef );
-
- artifactTemplate.setArtifactReferences( artifactRefType );
-
- // Add the new Artifact Template to the TOSCA Definitions element
-
- final ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
-
- DefinitionsType definitions = model.getDocumentRoot().getDefinitions();
-
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( definitions );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- @Override
- protected void doExecute() {
- model.getDocumentRoot().getDefinitions().getArtifactTemplate().add( artifactTemplate );
-
- }
- } );
-
- }
-
-
- //Creates the install implementation artifact
- private ImplementationArtifactType createImplementationArtifact(String artifactName, QName nodeType, QName artifactID){
-
- final ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
-
- final DefinitionsType definitions = model.getDocumentRoot().getDefinitions();
-
- TNodeTypeImplementation nodeTypeImplementation = null;
-
- //Test if NodeTypeImplementation for nodeType already exists
- for ( TNodeTypeImplementation tempNodeTypeImplementation : definitions.getNodeTypeImplementation() ){
- if ( tempNodeTypeImplementation.getNodeType().toString().equals(nodeType.toString()) ){
- //NodeTypeImplementation already exists
- //We are going to add the artifact to the existing implementation
- nodeTypeImplementation = tempNodeTypeImplementation;
- }
- }
-
- if ( nodeTypeImplementation == null ){
- //NodeTypeImplementation does not exists
- final TNodeTypeImplementation newNodeTypeImplementation = ToscaFactory.eINSTANCE.createTNodeTypeImplementation();
- newNodeTypeImplementation.setNodeType( nodeType );
- TImplementationArtifacts implementationArtifacts = ToscaFactory.eINSTANCE.createTImplementationArtifacts();
- newNodeTypeImplementation.setImplementationArtifacts( implementationArtifacts );
-
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( definitions );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- @Override
- protected void doExecute() {
- definitions.getNodeTypeImplementation().add( newNodeTypeImplementation );
-
- }
- } );
- nodeTypeImplementation = newNodeTypeImplementation;
- }
-
- //Create Implementation Artifact
- final ImplementationArtifactType installArtifactType = ToscaFactory.eINSTANCE.createImplementationArtifactType();
- installArtifactType.setArtifactType( new QName("ScriptArtifact") );
- installArtifactType.setArtifactRef( artifactID );
- installArtifactType.setInterfaceName( "Lifecycle" );
- installArtifactType.setOperationName( "execute" );
-
- final TNodeTypeImplementation nodeImplementation = nodeTypeImplementation;
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( nodeTypeImplementation );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- @Override
- protected void doExecute() {
- nodeImplementation.getImplementationArtifacts().getImplementationArtifact().add( installArtifactType );
-
- }
- } );
-
- return installArtifactType;
- }
-}
+ @Override
+ protected void doExecute() {
+ nodeImplementation.getImplementationArtifacts()
+ .getImplementationArtifact()
+ .add( installArtifactType );
+ }
+ } );
+ }
+ }
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/CreateVMIFeature.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/CreateVMIFeature.java
index 3ca02ec..3083843 100644
--- a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/CreateVMIFeature.java
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/CreateVMIFeature.java
@@ -157,46 +157,54 @@
};
}
- private void createArtifactTemplate(String nodeName, String description, String imageId){
-
- //Create Artifact Template
- final TArtifactTemplate artifactTemplate = ToscaFactory.eINSTANCE.createTArtifactTemplate();
-
- //Create Image Artifact Properties
- ImageArtifactPropertiesType imageProperties = Tosca_Elasticity_ExtensionsFactory.eINSTANCE.createImageArtifactPropertiesType();
- imageProperties.setDescription( description );
-
- if (imageId!=null){
- imageProperties.setId( imageId );
- }
-
- // Set the Properties of the Policy Template
- PropertiesType properties = ToscaFactory.eINSTANCE.createPropertiesType();
-
- // Add the SYBL Policy to the FeatureMap of the Policy's Properties element
- Entry e = FeatureMapUtil.createEntry( Tosca_Elasticity_ExtensionsPackage.eINSTANCE.getDocumentRoot_ImageArtifactProperties(), imageProperties );
- properties.getAny().add( e );
-
- artifactTemplate.setProperties( properties );
-
- artifactTemplate.setId( nodeName + "Image" );
-
- // Add the new Artifact Template to the TOSCA Definitions element
-
- final ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
-
- DefinitionsType definitions = model.getDocumentRoot().getDefinitions();
-
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( definitions );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
+ private void createArtifactTemplate(String description, String artifactRef, String imageId){
+
+ final ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+
+ for (TArtifactTemplate tempArtifactTemplate : model.getDocumentRoot()
+ .getDefinitions()
+ .getArtifactTemplate()){
+ if (tempArtifactTemplate.getId().equals( imageId ))
+ return;
+ }
+
+ //Create Artifact Template
+ final TArtifactTemplate artifactTemplate = ToscaFactory.eINSTANCE.createTArtifactTemplate();
+
+ //Create Image Artifact Properties
+ ImageArtifactPropertiesType imageProperties = Tosca_Elasticity_ExtensionsFactory.eINSTANCE.createImageArtifactPropertiesType();
+ imageProperties.setDescription( description );
+
+ if (imageId!=null){
+ imageProperties.setId( imageId );
+ }
+
+ // Set the Properties of the Policy Template
+ PropertiesType properties = ToscaFactory.eINSTANCE.createPropertiesType();
+
+ // Add the SYBL Policy to the FeatureMap of the Policy's Properties element
+ Entry e = FeatureMapUtil.createEntry( Tosca_Elasticity_ExtensionsPackage.eINSTANCE.getDocumentRoot_ImageArtifactProperties(), imageProperties );
+ properties.getAny().add( e );
+
+ artifactTemplate.setProperties( properties );
+
+ //artifactTemplate.setId( imageId );
+ artifactTemplate.setId( artifactRef );
+
+ // Add the new Artifact Template to the TOSCA Definitions element
+
+ DefinitionsType definitions = model.getDocumentRoot().getDefinitions();
+
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( definitions );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
- @Override
- protected void doExecute() {
- model.getDocumentRoot().getDefinitions().getArtifactTemplate().add( artifactTemplate );
-
- }
- } );
+ @Override
+ protected void doExecute() {
+ model.getDocumentRoot().getDefinitions().getArtifactTemplate().add( artifactTemplate );
+
+ }
+ } );
- }
+ }
}
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/DeleteApplicationComponentFeature.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/DeleteApplicationComponentFeature.java
index 7c189e5..b678806 100644
--- a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/DeleteApplicationComponentFeature.java
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/DeleteApplicationComponentFeature.java
@@ -19,6 +19,7 @@
import javax.xml.namespace.QName;
import org.eclipse.camf.tosca.TArtifactTemplate;
+import org.eclipse.camf.tosca.TDeploymentArtifact;
import org.eclipse.camf.tosca.TImplementationArtifact;
import org.eclipse.camf.tosca.TNodeTemplate;
import org.eclipse.camf.tosca.TNodeTypeImplementation;
@@ -35,102 +36,109 @@
public class DeleteApplicationComponentFeature extends DefaultDeleteFeature {
- public DeleteApplicationComponentFeature( IFeatureProvider fp ) {
- super( fp );
- // TODO Auto-generated constructor stub
- }
+ public DeleteApplicationComponentFeature( IFeatureProvider fp ) {
+ super( fp );
+ // TODO Auto-generated constructor stub
+ }
- @Override
- public void preDelete( IDeleteContext context ) {
- // Removes the relationships related to the deleted application component
- Object deletedObject = getFeatureProvider().getBusinessObjectForPictogramElement( context.getPictogramElement() );
-
-
- TNodeTemplate deletedNodeTemplate = ( TNodeTemplate )deletedObject;
- ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
- // Delete Policy Templates
- if ( deletedNodeTemplate.getPolicies() != null )
- {
- for( TPolicy tempPolicy : deletedNodeTemplate.getPolicies().getPolicy() )
- for( TPolicyTemplate tempPolicyTemplate : model.getDocumentRoot()
- .getDefinitions()
- .getPolicyTemplate() )
- {
- if( tempPolicy.getPolicyRef()
- .toString()
- .compareTo( tempPolicyTemplate.getId() ) == 0 )
- {
- model.getDocumentRoot()
- .getDefinitions()
- .getPolicyTemplate()
- .remove( tempPolicyTemplate );
- }
- }
- }
- // Delete Relationships
- for( TServiceTemplate tempServiceTemplate : model.getDocumentRoot()
- .getDefinitions()
- .getServiceTemplate() )
- {
- if ( tempServiceTemplate.getTopologyTemplate() != null ){
- for( TRelationshipTemplate tempRelationshipTemplate : tempServiceTemplate.getTopologyTemplate()
- .getRelationshipTemplate() )
- {
- if( tempRelationshipTemplate.getSourceElement()
- .getRef()
- .compareTo( deletedNodeTemplate.getId() ) == 0
- || tempRelationshipTemplate.getTargetElement()
- .getRef()
- .compareTo( deletedNodeTemplate.getId() ) == 0 )
- {
- tempServiceTemplate.getTopologyTemplate()
- .getRelationshipTemplate()
- .remove( tempRelationshipTemplate );
- }
- }
- }
- }
- //Delete NodeTypeImplementations
- if (model.getDocumentRoot()
- .getDefinitions()
- .getNodeTypeImplementation() != null){
- QName[] artifactTemplatesIDs = new QName[1];
- for( TNodeTypeImplementation tempNodeTypeImplementation : model.getDocumentRoot()
- .getDefinitions()
- .getNodeTypeImplementation() )
- {
- if ( tempNodeTypeImplementation.getNodeType().toString().equals( deletedNodeTemplate.getName()) ){
- //Find Artifact Templates to be Deleted
- {
- for (TImplementationArtifact tempImplementationArtifact: tempNodeTypeImplementation.getImplementationArtifacts().getImplementationArtifact()){
- artifactTemplatesIDs[artifactTemplatesIDs.length-1]=tempImplementationArtifact.getArtifactRef();
- }
- }
- //Delete NodeTypeImplementation
- {
- model.getDocumentRoot()
- .getDefinitions()
- .getNodeTypeImplementation()
- .remove( tempNodeTypeImplementation );
- }
- }
- }
-
- //Delete ArtifactTemplates
- for( TArtifactTemplate tempArtifactTemplate : model.getDocumentRoot()
- .getDefinitions().getArtifactTemplate()){
- for (QName tempArtifactTemplateID : artifactTemplatesIDs){
- if (tempArtifactTemplate.getId().equals( tempArtifactTemplateID.toString() )){
- //Delete Artifact Template
- {
- model.getDocumentRoot()
- .getDefinitions()
- .getArtifactTemplate()
- .remove( tempArtifactTemplate );
- }
- }
- }
- }
- }
- }
-}
+ @Override
+ public void preDelete( IDeleteContext context ) {
+ // Removes the relationships related to the deleted application component
+ Object deletedObject = getFeatureProvider().getBusinessObjectForPictogramElement( context.getPictogramElement() );
+
+
+ TNodeTemplate deletedNodeTemplate = ( TNodeTemplate )deletedObject;
+ ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+ // Delete Policy Templates
+ if ( deletedNodeTemplate.getPolicies() != null )
+ {
+ for( TPolicy tempPolicy : deletedNodeTemplate.getPolicies().getPolicy() )
+ for( TPolicyTemplate tempPolicyTemplate : model.getDocumentRoot()
+ .getDefinitions()
+ .getPolicyTemplate() )
+ {
+ if( tempPolicy.getPolicyRef()
+ .toString()
+ .compareTo( tempPolicyTemplate.getId() ) == 0 )
+ {
+ model.getDocumentRoot()
+ .getDefinitions()
+ .getPolicyTemplate()
+ .remove( tempPolicyTemplate );
+ }
+ }
+ }
+ // Delete Relationships
+ for( TServiceTemplate tempServiceTemplate : model.getDocumentRoot()
+ .getDefinitions()
+ .getServiceTemplate() )
+ {
+ if ( tempServiceTemplate.getTopologyTemplate() != null ){
+ for( TRelationshipTemplate tempRelationshipTemplate : tempServiceTemplate.getTopologyTemplate()
+ .getRelationshipTemplate() )
+ {
+ if( tempRelationshipTemplate.getSourceElement()
+ .getRef()
+ .compareTo( deletedNodeTemplate.getId() ) == 0
+ || tempRelationshipTemplate.getTargetElement()
+ .getRef()
+ .compareTo( deletedNodeTemplate.getId() ) == 0 )
+ {
+ tempServiceTemplate.getTopologyTemplate()
+ .getRelationshipTemplate()
+ .remove( tempRelationshipTemplate );
+ }
+ }
+ }
+ }
+ //Delete NodeTypeImplementations
+ if (model.getDocumentRoot()
+ .getDefinitions()
+ .getNodeTypeImplementation() != null){
+ QName[] artifactTemplatesIDs = new QName[1];
+ for( TNodeTypeImplementation tempNodeTypeImplementation : model.getDocumentRoot()
+ .getDefinitions()
+ .getNodeTypeImplementation() )
+ {
+ if ( tempNodeTypeImplementation.getNodeType().toString().equals( deletedNodeTemplate.getName()) ){
+ //Find Artifact Templates to be Deleted
+ {
+ for (TImplementationArtifact tempImplementationArtifact: tempNodeTypeImplementation.getImplementationArtifacts().getImplementationArtifact()){
+ artifactTemplatesIDs[artifactTemplatesIDs.length-1]=tempImplementationArtifact.getArtifactRef();
+ }
+ }
+ //Delete NodeTypeImplementation
+ {
+ model.getDocumentRoot()
+ .getDefinitions()
+ .getNodeTypeImplementation()
+ .remove( tempNodeTypeImplementation );
+ }
+ }
+ }
+
+ //Find DeploymentArtifacts to be deleted
+ if (deletedNodeTemplate.getDeploymentArtifacts() != null){
+ for (TDeploymentArtifact tempDeploymentArtifact: deletedNodeTemplate.getDeploymentArtifacts().getDeploymentArtifact()){
+ artifactTemplatesIDs[artifactTemplatesIDs.length-1]=tempDeploymentArtifact.getArtifactRef();
+ }
+ }
+
+ //Delete ArtifactTemplates
+ for( TArtifactTemplate tempArtifactTemplate : model.getDocumentRoot()
+ .getDefinitions().getArtifactTemplate()){
+ for (QName tempArtifactTemplateID : artifactTemplatesIDs){
+ if (tempArtifactTemplateID != null && tempArtifactTemplate.getId().equals( tempArtifactTemplateID.toString() )){
+ //Delete Artifact Template
+ {
+ model.getDocumentRoot()
+ .getDefinitions()
+ .getArtifactTemplate()
+ .remove( tempArtifactTemplate );
+ }
+ }
+ }
+ }
+ }
+ }
+ }
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/DeleteArtifactTemplateFeature.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/DeleteArtifactTemplateFeature.java
new file mode 100644
index 0000000..cc95589
--- /dev/null
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/DeleteArtifactTemplateFeature.java
@@ -0,0 +1,86 @@
+package org.eclipse.camf.tosca.editor.features;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.transaction.RecordingCommand;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.graphiti.features.IFeatureProvider;
+import org.eclipse.graphiti.features.context.IDeleteContext;
+import org.eclipse.graphiti.mm.pictograms.PictogramElement;
+import org.eclipse.graphiti.services.Graphiti;
+import org.eclipse.graphiti.ui.features.DefaultDeleteFeature;
+
+import org.eclipse.camf.tosca.TArtifactTemplate;
+import org.eclipse.camf.tosca.TImplementationArtifact;
+import org.eclipse.camf.tosca.TNodeTemplate;
+import org.eclipse.camf.tosca.TNodeTypeImplementation;
+import org.eclipse.camf.tosca.editor.ModelHandler;
+import org.eclipse.camf.tosca.editor.ToscaModelLayer;
+
+
+public class DeleteArtifactTemplateFeature extends DefaultDeleteFeature{
+
+ private TNodeTypeImplementation parentNodeTypeImplementation;
+
+ public DeleteArtifactTemplateFeature( IFeatureProvider fp ) {
+ super( fp );
+ }
+
+ @Override
+ public void preDelete(IDeleteContext context) {
+
+ //TArtifactTemplate
+ Object deletedObject = getFeatureProvider().getBusinessObjectForPictogramElement( context.getPictogramElement() );
+
+ TArtifactTemplate deletedArtifactTemplate = (TArtifactTemplate) deletedObject;
+
+ String deletedArtifactTemplateId = deletedArtifactTemplate.getId();
+
+ //TNodeTemplate parent of TArtifactTemplate
+ PictogramElement parentPE = Graphiti.getPeService().getPictogramElementParent( context.getPictogramElement() );
+
+ TNodeTemplate parentNodeTemplate = ( TNodeTemplate ) getFeatureProvider().getBusinessObjectForPictogramElement( parentPE );
+
+ final ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+
+ final EList<TNodeTypeImplementation> nodeTypeImplementations = model.getDocumentRoot().getDefinitions().getNodeTypeImplementation();
+
+ this.parentNodeTypeImplementation = null;
+ for (final TNodeTypeImplementation tempNodeTypeImplementation : nodeTypeImplementations){
+ if (tempNodeTypeImplementation.getNodeType().toString().compareTo( parentNodeTemplate.getName() )==0){
+ this.parentNodeTypeImplementation = tempNodeTypeImplementation;
+ break;
+ }
+ }
+
+ if (this.parentNodeTypeImplementation == null)
+ return;
+
+ final TNodeTypeImplementation nodeTypeImplementation = parentNodeTypeImplementation;
+ //for (final TImplementationArtifact tempImplementationArtifact : nodeTypeImplementation.getImplementationArtifacts().getImplementationArtifact()){
+ for (int i=0; i<nodeTypeImplementation.getImplementationArtifacts().getImplementationArtifact().size(); i++){
+ final TImplementationArtifact tempImplementationArtifact = nodeTypeImplementation.getImplementationArtifacts().getImplementationArtifact().get( i );
+ if (tempImplementationArtifact.getArtifactRef().toString().compareTo( deletedArtifactTemplateId )==0){
+ //Implementation artifact refers to the TArtifactTemplate to be deleted
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( nodeTypeImplementation );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
+
+ @Override
+ protected void doExecute() {
+ nodeTypeImplementation.getImplementationArtifacts().getImplementationArtifact().remove( tempImplementationArtifact );
+ }
+ } );
+
+ }
+ }
+
+ //if there are no more implementation artifacts, delete implementation artifacts element
+ if (nodeTypeImplementation.getImplementationArtifacts().getImplementationArtifact().size()==0){
+ nodeTypeImplementations.remove( nodeTypeImplementation );
+ }
+
+ }
+
+}
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/DeleteDeploymentArtifactFeature.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/DeleteDeploymentArtifactFeature.java
index 9454fe2..c04a4cd 100644
--- a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/DeleteDeploymentArtifactFeature.java
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/DeleteDeploymentArtifactFeature.java
@@ -16,7 +16,12 @@
*******************************************************************************/
package org.eclipse.camf.tosca.editor.features;
+import org.eclipse.camf.tosca.TArtifactTemplate;
+import org.eclipse.camf.tosca.TDeploymentArtifact;
import org.eclipse.camf.tosca.TNodeTemplate;
+import org.eclipse.camf.tosca.editor.ModelHandler;
+import org.eclipse.camf.tosca.editor.ToscaModelLayer;
+import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.graphiti.features.IFeatureProvider;
import org.eclipse.graphiti.features.context.IDeleteContext;
import org.eclipse.graphiti.mm.pictograms.PictogramElement;
@@ -24,35 +29,47 @@
import org.eclipse.graphiti.ui.features.DefaultDeleteFeature;
public class DeleteDeploymentArtifactFeature extends DefaultDeleteFeature{
-
- private boolean deleteDeploymentArtifact = false;
- private TNodeTemplate parentNodeTemplate;
+
+ private boolean deleteDeploymentArtifact = false;
+ private TNodeTemplate parentNodeTemplate;
- public DeleteDeploymentArtifactFeature( IFeatureProvider fp ) {
- super( fp );
- // TODO Auto-generated constructor stub
- }
-
- @Override
- public void preDelete(IDeleteContext context) {
- // Checks whether the node template contained only the deleted deployment artifact
-
- PictogramElement parentPE = Graphiti.getPeService().getPictogramElementParent( context.getPictogramElement() );
-
- TNodeTemplate parentNodeTemplate = ( TNodeTemplate ) getFeatureProvider().getBusinessObjectForPictogramElement( parentPE );
-
- if ( parentNodeTemplate.getDeploymentArtifacts().getDeploymentArtifact().size() == 1 ){
- this.deleteDeploymentArtifact = true;
- this.parentNodeTemplate = parentNodeTemplate;
- }
- }
-
- @Override
- public void postDelete(IDeleteContext context) {
- // Removes the deployment artifacts element if no more artifacts left
-
- if ( this.deleteDeploymentArtifact == true )
- this.parentNodeTemplate.setDeploymentArtifacts( null );
- }
+ public DeleteDeploymentArtifactFeature( IFeatureProvider fp ) {
+ super( fp );
+ }
+
+ @Override
+ public void preDelete(IDeleteContext context) {
+ // Checks whether the node template contained only the deleted deployment artifact
+
+ PictogramElement parentPE = Graphiti.getPeService().getPictogramElementParent( context.getPictogramElement() );
+
+ TNodeTemplate parentNodeTemplate = ( TNodeTemplate ) getFeatureProvider().getBusinessObjectForPictogramElement( parentPE );
+
+ if ( parentNodeTemplate.getDeploymentArtifacts().getDeploymentArtifact().size() == 1 ){
+ this.deleteDeploymentArtifact = true;
+ this.parentNodeTemplate = parentNodeTemplate;
+ }
+
+ //Delete corresponding TArtifactTemplate
+ Object deletedObject = getFeatureProvider().getBusinessObjectForPictogramElement( context.getPictogramElement() );
+ TDeploymentArtifact deletedDeploymentArtifact = (TDeploymentArtifact) deletedObject;
+ String deletedDeploymentArtifactId = deletedDeploymentArtifact.getArtifactRef().toString();
+
+ final ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+
+ for ( TArtifactTemplate tempArtifactTemplate : model.getDocumentRoot().getDefinitions().getArtifactTemplate() ){
+ if (tempArtifactTemplate.getId().compareTo( deletedDeploymentArtifactId )==0){
+ model.getDocumentRoot().getDefinitions().getArtifactTemplate().remove( tempArtifactTemplate );
+ }
+ }
+ }
+
+ @Override
+ public void postDelete(IDeleteContext context) {
+ // Removes the deployment artifacts element if no more artifacts left
+
+ if ( this.deleteDeploymentArtifact == true )
+ this.parentNodeTemplate.setDeploymentArtifacts( null );
+ }
-}
+ }
\ No newline at end of file
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/RenameCompositeComponentFeature.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/RenameCompositeComponentFeature.java
index d3d2bc0..37ba308 100644
--- a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/RenameCompositeComponentFeature.java
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/features/RenameCompositeComponentFeature.java
@@ -91,7 +91,6 @@
this.hasDoneChanges = true;
tServiceTemplate.setName( newName );
- /////////////////////////////////////////////////////////////////////////////////////////////////////
tServiceTemplate.setSubstitutableNodeType(new QName("substituteNode_"+newName));
// Find the substitute TNodeTemplate
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/property/ApplicationComponentElasticityRequirementsSection.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/property/ApplicationComponentElasticityRequirementsSection.java
index 0fb3a93..3b7683d 100644
--- a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/property/ApplicationComponentElasticityRequirementsSection.java
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/property/ApplicationComponentElasticityRequirementsSection.java
@@ -58,6 +58,7 @@
import org.eclipse.camf.tosca.elasticity.TNodeTemplateExtension;
import org.eclipse.camf.tosca.elasticity.Tosca_Elasticity_ExtensionsFactory;
import org.eclipse.camf.tosca.elasticity.Tosca_Elasticity_ExtensionsPackage;
+import org.eclipse.camf.tosca.elementCreators.CreateArtifactTemplate;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
@@ -106,613 +107,625 @@
* Application Component Properties - Elasticity Tab
*/
public class ApplicationComponentElasticityRequirementsSection
- extends GFPropertySection implements ITabbedPropertyConstants
+extends GFPropertySection implements ITabbedPropertyConstants
{
- Composite client;
- Section section;
- private Table table;
- private Button addButton;
- private Button removeButton;
- private Button addExecutableButton;
- TableViewer tableViewer;
- List<TPolicy> appComponentElasticityRequirements = new ArrayList<TPolicy>();
- Section sectionRA;
- private Table tableResizingActions;
- private Button removeButtonRA;
- private Button addButtonRA;
- private Button conditionButtonRA;
- TableViewer tableResizingActionsViewer;
- List<TPolicy> appComponentResizingActions = new ArrayList<TPolicy>();
- protected Tosca_Elasticity_ExtensionsFactory elasticityFactory = Tosca_Elasticity_ExtensionsFactory.eINSTANCE;
+Composite client;
+Section section;
+private Table table;
+private Button addButton;
+private Button removeButton;
+private Button addExecutableButton;
+TableViewer tableViewer;
+List<TPolicy> appComponentElasticityRequirements = new ArrayList<TPolicy>();
+Section sectionRA;
+private Table tableResizingActions;
+private Button removeButtonRA;
+private Button addButtonRA;
+private Button conditionButtonRA;
+TableViewer tableResizingActionsViewer;
+List<TPolicy> appComponentResizingActions = new ArrayList<TPolicy>();
+protected Tosca_Elasticity_ExtensionsFactory elasticityFactory = Tosca_Elasticity_ExtensionsFactory.eINSTANCE;
- @Override
- public void createControls( final Composite parent,
- TabbedPropertySheetPage tabbedPropertySheetPage )
- {
- super.createControls( parent, tabbedPropertySheetPage );
- FormToolkit toolkit = new FormToolkit( parent.getDisplay() );
- // Application Component Elasticity Requirements Section
- this.section = toolkit.createSection( parent, Section.TITLE_BAR );
- this.section.setText( "Application Component Elasticity Constraints" ); //$NON-NLS-1$
- Composite client = toolkit.createComposite( this.section, SWT.WRAP );
- Composite client1 = toolkit.createComposite( client, SWT.WRAP );
- Composite client2 = toolkit.createComposite( client, SWT.WRAP );
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- layout.marginTop = 15;
- layout.verticalSpacing = 15;
- layout.marginWidth = 2;
- layout.marginHeight = 2;
- client.setLayout( layout );
- layout = new GridLayout();
- layout.numColumns = 1;
- client1.setLayout( layout );
- layout = new GridLayout();
- layout.numColumns = 1;
- client2.setLayout( layout );
- GridData gd;
- this.table = new Table( client1, SWT.BORDER
- | SWT.VIRTUAL
- | SWT.MULTI
- | SWT.FULL_SELECTION );
- this.table.setHeaderVisible( true );
- this.table.setLinesVisible( false );
- this.table.getHorizontalBar().setEnabled( false );
- gd = new GridData( 300, this.table.getItemHeight() * 4 );
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
- this.table.setLayoutData( gd );
- TableLayout tableLayout = new TableLayout();
- this.table.setLayout( tableLayout );
- TableColumn nameColumn = new TableColumn( this.table, SWT.CENTER );
- ColumnLayoutData data = new ColumnWeightData( 100 );
- tableLayout.addColumnData( data );
- data = new ColumnWeightData( 100 );
- tableLayout.addColumnData( data );
- data = new ColumnWeightData( 150 );
- tableLayout.addColumnData( data );
- nameColumn.setText( "Constraint" ); //$NON-NLS-1$
- this.tableViewer = new TableViewer( this.table );
- ElasticityConstraintsProvider ERProvider = new ElasticityConstraintsProvider();
- IStructuredContentProvider contentProvider = ERProvider.ERContentProvider;
- this.tableViewer.setContentProvider( contentProvider );
- this.tableViewer.setLabelProvider( ERProvider.ERContentLabelProvider );
- this.tableViewer.setInput( this.appComponentElasticityRequirements );
- this.addButton = new Button( client2, SWT.PUSH );
- this.addButton.setText( "Add" ); //$NON-NLS-1$
- gd = new GridData();
- gd.widthHint = 60;
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- this.addButton.setLayoutData( gd );
- // Listener for Add button
- this.addButton.addSelectionListener( new SelectionListener() {
+@Override
+public void createControls( final Composite parent,
+ TabbedPropertySheetPage tabbedPropertySheetPage )
+{
+ super.createControls( parent, tabbedPropertySheetPage );
+ FormToolkit toolkit = new FormToolkit( parent.getDisplay() );
+ // Application Component Elasticity Requirements Section
+ this.section = toolkit.createSection( parent, Section.TITLE_BAR );
+ this.section.setText( "Application Component Elasticity Constraints" ); //$NON-NLS-1$
+ Composite client = toolkit.createComposite( this.section, SWT.WRAP );
+ Composite client1 = toolkit.createComposite( client, SWT.WRAP );
+ Composite client2 = toolkit.createComposite( client, SWT.WRAP );
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 2;
+ layout.marginTop = 15;
+ layout.verticalSpacing = 15;
+ layout.marginWidth = 2;
+ layout.marginHeight = 2;
+ client.setLayout( layout );
+ layout = new GridLayout();
+ layout.numColumns = 1;
+ client1.setLayout( layout );
+ layout = new GridLayout();
+ layout.numColumns = 1;
+ client2.setLayout( layout );
+ GridData gd;
+ this.table = new Table( client1, SWT.BORDER
+ | SWT.VIRTUAL
+ | SWT.MULTI
+ | SWT.FULL_SELECTION );
+ this.table.setHeaderVisible( true );
+ this.table.setLinesVisible( false );
+ this.table.getHorizontalBar().setEnabled( false );
+ gd = new GridData( 300, this.table.getItemHeight() * 4 );
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
+ this.table.setLayoutData( gd );
+ TableLayout tableLayout = new TableLayout();
+ this.table.setLayout( tableLayout );
+ TableColumn nameColumn = new TableColumn( this.table, SWT.CENTER );
+ ColumnLayoutData data = new ColumnWeightData( 100 );
+ tableLayout.addColumnData( data );
+ data = new ColumnWeightData( 100 );
+ tableLayout.addColumnData( data );
+ data = new ColumnWeightData( 150 );
+ tableLayout.addColumnData( data );
+ nameColumn.setText( "Constraint" ); //$NON-NLS-1$
+ this.tableViewer = new TableViewer( this.table );
+ ElasticityConstraintsProvider ERProvider = new ElasticityConstraintsProvider();
+ IStructuredContentProvider contentProvider = ERProvider.ERContentProvider;
+ this.tableViewer.setContentProvider( contentProvider );
+ this.tableViewer.setLabelProvider( ERProvider.ERContentLabelProvider );
+ this.tableViewer.setInput( this.appComponentElasticityRequirements );
+ this.addButton = new Button( client2, SWT.PUSH );
+ this.addButton.setText( "Add" ); //$NON-NLS-1$
+ gd = new GridData();
+ gd.widthHint = 60;
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ this.addButton.setLayoutData( gd );
+ // Listener for Add button
+ this.addButton.addSelectionListener( new SelectionListener() {
- @Override
- public void widgetSelected( SelectionEvent e ) {
- editDataStagingEntry( null );
- }
+ @Override
+ public void widgetSelected( SelectionEvent e ) {
+ editDataStagingEntry( null );
+ }
- @Override
- public void widgetDefaultSelected( final SelectionEvent e ) {
- // TODO Auto-generated method stub
- }
- } );
-
- this.removeButton = new Button( client2, SWT.PUSH );
- this.removeButton.setText( "Remove" ); //$NON-NLS-1$
- gd = new GridData();
- gd.widthHint = 60;
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- this.removeButton.setLayoutData( gd );
- // Listener for Remove button
- this.removeButton.addSelectionListener( new SelectionListener() {
+ @Override
+ public void widgetDefaultSelected( final SelectionEvent e ) {
+ // TODO Auto-generated method stub
+ }
+ } );
+ this.removeButton = new Button( client2, SWT.PUSH );
+ this.removeButton.setText( "Remove" ); //$NON-NLS-1$
+ gd = new GridData();
+ gd.widthHint = 60;
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ this.removeButton.setLayoutData( gd );
+ // Listener for Remove button
+ this.removeButton.addSelectionListener( new SelectionListener() {
- @Override
- public void widgetSelected( final SelectionEvent e ) {
- removeApplicationComponentElasticityRequirement( getSelectedObject() );
- }
+ @Override
+ public void widgetSelected( final SelectionEvent e ) {
+ removeApplicationComponentElasticityRequirement( getSelectedObject() );
+ }
- @Override
- public void widgetDefaultSelected( final SelectionEvent e ) {
- // TODO Auto-generated method stub
- }
- } );
- // Add section components to the toolkit
- toolkit.adapt( this.table, true, true );
- toolkit.adapt( this.addButton, true, true );
- toolkit.adapt( this.removeButton, true, true );
- this.section.setClient( client );
- // Application Component Elasticity Actions Section
- this.sectionRA = toolkit.createSection( parent, Section.TITLE_BAR );
- this.sectionRA.setText( "Elasticity Strategies" ); //$NON-NLS-1$
- Composite clientRA = toolkit.createComposite( this.sectionRA, SWT.WRAP );
- Composite clientRA1 = toolkit.createComposite( clientRA, SWT.WRAP );
- Composite clientRA2 = toolkit.createComposite( clientRA, SWT.WRAP );
- GridLayout layoutRA;
- layoutRA = new GridLayout();
- layoutRA.numColumns = 2;
- layoutRA.marginTop = 15;
- layoutRA.verticalSpacing = 15;
- layoutRA.marginWidth = 2;
- layoutRA.marginHeight = 2;
- clientRA.setLayout( layoutRA );
- layoutRA = new GridLayout();
- layoutRA.numColumns = 1;
- clientRA1.setLayout( layoutRA );
- layoutRA = new GridLayout();
- layoutRA.numColumns = 1;
- clientRA2.setLayout( layoutRA );
- this.tableResizingActions = new Table( clientRA1, SWT.BORDER
- | SWT.VIRTUAL
- | SWT.MULTI
- | SWT.FULL_SELECTION );
- this.tableResizingActions.setHeaderVisible( true );
- this.tableResizingActions.setLinesVisible( false );
- this.tableResizingActions.getHorizontalBar().setEnabled( false );
- GridData gdRA;
- gdRA = new GridData( 300, this.tableResizingActions.getItemHeight() * 4 );
- gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gdRA.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
- this.tableResizingActions.setLayoutData( gdRA );
- TableLayout tableLayoutRA = new TableLayout();
- this.tableResizingActions.setLayout( tableLayoutRA );
- TableColumn nameColumnRA = new TableColumn( this.tableResizingActions,
- SWT.CENTER );
- nameColumnRA.setText( "Strategy" ); //$NON-NLS-1$
- nameColumnRA.setWidth( 100 );
- ColumnWeightData dataRA = new ColumnWeightData( 100 );
- tableLayoutRA.addColumnData( dataRA );
- // Set the Elasticity Actions table viewer
- ResizingActionsProvider RAProvider = new ResizingActionsProvider();
- this.tableResizingActionsViewer = new TableViewer( this.tableResizingActions );
- IStructuredContentProvider contentProviderRA = RAProvider.RAContentProvider;
- this.tableResizingActionsViewer.setContentProvider( contentProviderRA );
- this.tableResizingActionsViewer.setLabelProvider( RAProvider.RAContentLabelProvider );
- this.tableResizingActionsViewer.setInput( this.appComponentResizingActions );
- // Add Elasticity Strategy button
- this.addButtonRA = new Button( clientRA2, SWT.PUSH );
- this.addButtonRA.setText( "Add" ); //$NON-NLS-1$
- // Listener for Adding Elasticity Strategy button
- this.addButtonRA.addSelectionListener( new SelectionListener() {
+ @Override
+ public void widgetDefaultSelected( final SelectionEvent e ) {
+ // TODO Auto-generated method stub
+ }
+ } );
+ // Add section components to the toolkit
+ toolkit.adapt( this.table, true, true );
+ toolkit.adapt( this.addButton, true, true );
+ toolkit.adapt( this.removeButton, true, true );
+ this.section.setClient( client );
+ // Application Component Elasticity Actions Section
+ this.sectionRA = toolkit.createSection( parent, Section.TITLE_BAR );
+ this.sectionRA.setText( "Elasticity Strategies" ); //$NON-NLS-1$
+ Composite clientRA = toolkit.createComposite( this.sectionRA, SWT.WRAP );
+ Composite clientRA1 = toolkit.createComposite( clientRA, SWT.WRAP );
+ Composite clientRA2 = toolkit.createComposite( clientRA, SWT.WRAP );
+ GridLayout layoutRA;
+ layoutRA = new GridLayout();
+ layoutRA.numColumns = 2;
+ layoutRA.marginTop = 15;
+ layoutRA.verticalSpacing = 15;
+ layoutRA.marginWidth = 2;
+ layoutRA.marginHeight = 2;
+ clientRA.setLayout( layoutRA );
+ layoutRA = new GridLayout();
+ layoutRA.numColumns = 1;
+ clientRA1.setLayout( layoutRA );
+ layoutRA = new GridLayout();
+ layoutRA.numColumns = 1;
+ clientRA2.setLayout( layoutRA );
+ this.tableResizingActions = new Table( clientRA1, SWT.BORDER
+ | SWT.VIRTUAL
+ | SWT.MULTI
+ | SWT.FULL_SELECTION );
+ this.tableResizingActions.setHeaderVisible( true );
+ this.tableResizingActions.setLinesVisible( false );
+ this.tableResizingActions.getHorizontalBar().setEnabled( false );
+ GridData gdRA;
+ gdRA = new GridData( 300, this.tableResizingActions.getItemHeight() * 4 );
+ gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ gdRA.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
+ this.tableResizingActions.setLayoutData( gdRA );
+ TableLayout tableLayoutRA = new TableLayout();
+ this.tableResizingActions.setLayout( tableLayoutRA );
+ TableColumn nameColumnRA = new TableColumn( this.tableResizingActions,
+ SWT.CENTER );
+ nameColumnRA.setText( "Strategy" ); //$NON-NLS-1$
+ nameColumnRA.setWidth( 100 );
+ ColumnWeightData dataRA = new ColumnWeightData( 100 );
+ tableLayoutRA.addColumnData( dataRA );
+ // Set the Elasticity Actions table viewer
+ ResizingActionsProvider RAProvider = new ResizingActionsProvider();
+ this.tableResizingActionsViewer = new TableViewer( this.tableResizingActions );
+ IStructuredContentProvider contentProviderRA = RAProvider.RAContentProvider;
+ this.tableResizingActionsViewer.setContentProvider( contentProviderRA );
+ this.tableResizingActionsViewer.setLabelProvider( RAProvider.RAContentLabelProvider );
+ this.tableResizingActionsViewer.setInput( this.appComponentResizingActions );
+ // Add Elasticity Strategy button
+ this.addButtonRA = new Button( clientRA2, SWT.PUSH );
+ this.addButtonRA.setText( "Add" ); //$NON-NLS-1$
+ // Listener for Adding Elasticity Strategy button
+ this.addButtonRA.addSelectionListener( new SelectionListener() {
- @Override
- public void widgetSelected( final SelectionEvent e ) {
- editDataStagingEntryRA( getSelectedObject() );
- }
+ @Override
+ public void widgetSelected( final SelectionEvent e ) {
+ editDataStagingEntryRA( getSelectedObject() );
+ }
- @Override
- public void widgetDefaultSelected( final SelectionEvent e ) {
- // TODO Auto-generated method stub
- }
- } );
- gdRA = new GridData();
- gdRA.widthHint = 80;
- gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- this.addButtonRA.setLayoutData( gdRA );
-
- ////////////////////////////////////////////////////////////////////
-
- // Add Elasticity Strategy Executable button
- this.addExecutableButton = new Button( clientRA2, SWT.PUSH );
- this.addExecutableButton.setText( "Exectutable" ); //$NON-NLS-1$
- // Listener for Adding Elasticity Strategy button
- this.addExecutableButton.addSelectionListener( new SelectionListener() {
+ @Override
+ public void widgetDefaultSelected( final SelectionEvent e ) {
+ // TODO Auto-generated method stub
+ }
+ } );
+ gdRA = new GridData();
+ gdRA.widthHint = 80;
+ gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ this.addButtonRA.setLayoutData( gdRA );
+ // //////////////////////////////////////////////////////////////////
+ // Add Elasticity Strategy Executable button
+ this.addExecutableButton = new Button( clientRA2, SWT.PUSH );
+ this.addExecutableButton.setText( "Exectutable" ); //$NON-NLS-1$
+ // Listener for Adding Elasticity Strategy button
+ this.addExecutableButton.addSelectionListener( new SelectionListener() {
- @Override
- public void widgetSelected( final SelectionEvent e ) {
- addResizingActionExecutable( parent, getSelectedElasticityStrategy() );
- }
+ @Override
+ public void widgetSelected( final SelectionEvent e ) {
+ addResizingActionExecutable( parent, getSelectedElasticityStrategy() );
+ }
- @Override
- public void widgetDefaultSelected( final SelectionEvent e ) {
- // TODO Auto-generated method stub
- }
- } );
- gdRA = new GridData();
- gdRA.widthHint = 80;
- gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- this.addExecutableButton.setLayoutData( gdRA );
-
+ @Override
+ public void widgetDefaultSelected( final SelectionEvent e ) {
+ // TODO Auto-generated method stub
+ }
+ } );
+ gdRA = new GridData();
+ gdRA.widthHint = 80;
+ gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ this.addExecutableButton.setLayoutData( gdRA );
+ // /////////////////////////////////////////////////////////////////
+ this.removeButtonRA = new Button( clientRA2, SWT.PUSH );
+ this.removeButtonRA.setText( "Remove" ); //$NON-NLS-1$
+ // Listener for Remove Elasticity Strategy button
+ this.removeButtonRA.addSelectionListener( new SelectionListener() {
- ///////////////////////////////////////////////////////////////////
-
-
- this.removeButtonRA = new Button( clientRA2, SWT.PUSH );
- this.removeButtonRA.setText( "Remove" ); //$NON-NLS-1$
- // Listener for Remove Elasticity Strategy button
- this.removeButtonRA.addSelectionListener( new SelectionListener() {
+ @Override
+ public void widgetSelected( final SelectionEvent e ) {
+ removeApplicationComponentResizingAction( getSelectedElasticityStrategy() );
+ }
- @Override
- public void widgetSelected( final SelectionEvent e ) {
- removeApplicationComponentResizingAction( getSelectedElasticityStrategy() );
- }
+ @Override
+ public void widgetDefaultSelected( final SelectionEvent e ) {
+ // TODO Auto-generated method stub
+ }
+ } );
+ gdRA = new GridData();
+ gdRA.widthHint = 80;
+ gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ this.removeButtonRA.setLayoutData( gdRA );
+ this.conditionButtonRA = new Button( clientRA2, SWT.PUSH );
+ this.conditionButtonRA.setText( "Condition" ); //$NON-NLS-1$
+ // Listener for Remove Elasticity Strategy button
+ this.conditionButtonRA.addSelectionListener( new SelectionListener() {
- @Override
- public void widgetDefaultSelected( final SelectionEvent e ) {
- // TODO Auto-generated method stub
- }
- } );
- gdRA = new GridData();
- gdRA.widthHint = 80;
- gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- this.removeButtonRA.setLayoutData( gdRA );
- this.conditionButtonRA = new Button( clientRA2, SWT.PUSH );
- this.conditionButtonRA.setText( "Condition" ); //$NON-NLS-1$
- // Listener for Remove Elasticity Strategy button
- this.conditionButtonRA.addSelectionListener( new SelectionListener() {
+ @Override
+ public void widgetSelected( final SelectionEvent e ) {
+ addStrategyCondition( getSelectedElasticityStrategy() );
+ }
- @Override
- public void widgetSelected( final SelectionEvent e ) {
- addStrategyCondition( getSelectedElasticityStrategy() );
- }
+ @Override
+ public void widgetDefaultSelected( final SelectionEvent e ) {
+ // TODO Auto-generated method stub
+ }
+ } );
+ gdRA = new GridData();
+ gdRA.widthHint = 80;
+ gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ this.conditionButtonRA.setLayoutData( gdRA );
+ // Add section components to the toolkit
+ toolkit.adapt( this.tableResizingActions, true, true );
+ toolkit.adapt( this.removeButtonRA, true, true );
+ toolkit.adapt( this.addButtonRA, true, true );
+ // toolkit.adapt( this.uploadButtonRA, true, true );
+ toolkit.adapt( this.conditionButtonRA, true, true );
+ toolkit.adapt( this.addExecutableButton, true, true );
+ this.sectionRA.setClient( clientRA );
+}
- @Override
- public void widgetDefaultSelected( final SelectionEvent e ) {
- // TODO Auto-generated method stub
- }
- } );
- gdRA = new GridData();
- gdRA.widthHint = 80;
- gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- this.conditionButtonRA.setLayoutData( gdRA );
- // Add section components to the toolkit
- toolkit.adapt( this.tableResizingActions, true, true );
- toolkit.adapt( this.removeButtonRA, true, true );
- toolkit.adapt( this.addButtonRA, true, true );
- // toolkit.adapt( this.uploadButtonRA, true, true );
- toolkit.adapt( this.conditionButtonRA, true, true );
-
- toolkit.adapt( this.addExecutableButton, true, true);
- this.sectionRA.setClient( clientRA );
- }
+// Add Application Component Elasticity Requirement
+void editDataStagingEntry( final TPolicy selectedObject ) {
+ ElasticityConstraintDialog dialog;
+ if( selectedObject == null ) {
+ // Add button is pressed
+ dialog = new ElasticityConstraintDialog( this.section.getShell(),
+ "Application Component" ); //$NON-NLS-1$
+ if( dialog.open() == Window.OK ) {
+ String newElasticityConstraint = dialog.getElasticityConstraint();
- // Add Application Component Elasticity Requirement
- void editDataStagingEntry( final TPolicy selectedObject ) {
- ElasticityConstraintDialog dialog;
- if( selectedObject == null ) {
- // Add button is pressed
- dialog = new ElasticityConstraintDialog( this.section.getShell(),
- "Application Component" ); //$NON-NLS-1$
- if( dialog.open() == Window.OK ) {
- String newElasticityConstraint = dialog.getElasticityConstraint();
-
+ if( newElasticityConstraint != null ) {
- if (newElasticityConstraint.contains( "<" )){
+ if( newElasticityConstraint.contains( "<" ) ) {
String[] cond = newElasticityConstraint.split( "<" );
- newElasticityConstraint = cond[0] + "<" + cond[1];
- }
- else if (newElasticityConstraint.contains( ">" )){
+ newElasticityConstraint = cond[ 0 ] + "<" + cond[ 1 ];
+ } else if( newElasticityConstraint.contains( ">" ) ) {
String[] cond = newElasticityConstraint.split( ">" );
- newElasticityConstraint = cond[0] + ">" + cond[1];
+ newElasticityConstraint = cond[ 0 ] + ">" + cond[ 1 ];
}
-
- SyblElasticityRequirementsDescription newSYBLConstraint = dialog.getSYBLConstraint();
- if( newElasticityConstraint != null ) {
- // Add Application Component Elasticity Requirement to TOSCA
- PictogramElement pe = getSelectedPictogramElement();
- Object bo = null;
- if( pe != null ) {
- bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- }
- final TNodeTemplateExtension nodeTemplate;
- if( bo instanceof TDeploymentArtifact ) {
- PictogramElement parentPE = Graphiti.getPeService()
- .getPictogramElementParent( pe );
- nodeTemplate = ( TNodeTemplateExtension )Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( parentPE );
- } else { // bo instanceof TNodeTemplate
- nodeTemplate = ( TNodeTemplateExtension )bo;
- }
- if( nodeTemplate.getPolicies() == null ) {
- final PoliciesType nodePolicyList = ToscaFactory.eINSTANCE.createPoliciesType();
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( nodeTemplate );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- @Override
- protected void doExecute() {
- nodeTemplate.setPolicies( nodePolicyList );
- }
- } );
- }
- PoliciesType nodePolicyList = nodeTemplate.getPolicies();
- final EList<TPolicy> policy = nodePolicyList.getPolicy();
- final TPolicy newPolicy = createNewPolicy( "Constraint",
- newElasticityConstraint, newSYBLConstraint );
+ // Add Application Component Elasticity Requirement to TOSCA
+ PictogramElement pe = getSelectedPictogramElement();
+ Object bo = null;
+ if( pe != null ) {
+ bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ }
+ final TNodeTemplateExtension nodeTemplate;
+ if( bo instanceof TDeploymentArtifact ) {
+ PictogramElement parentPE = Graphiti.getPeService()
+ .getPictogramElementParent( pe );
+ nodeTemplate = ( TNodeTemplateExtension )Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( parentPE );
+ } else { // bo instanceof TNodeTemplate
+ nodeTemplate = ( TNodeTemplateExtension )bo;
+ }
+ if( nodeTemplate.getPolicies() == null ) {
+ final PoliciesType nodePolicyList = ToscaFactory.eINSTANCE.createPoliciesType();
TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( nodeTemplate );
editingDomain.getCommandStack()
.execute( new RecordingCommand( editingDomain ) {
@Override
protected void doExecute() {
- policy.add( newPolicy );
+ nodeTemplate.setPolicies( nodePolicyList );
}
} );
- // Add Application Component Elasticity Requirement to temp list
- this.appComponentElasticityRequirements.add( newPolicy );
- this.tableViewer.refresh();
- } else {
}
+ PoliciesType nodePolicyList = nodeTemplate.getPolicies();
+ final EList<TPolicy> policy = nodePolicyList.getPolicy();
+ final TPolicy newPolicy = ToscaFactory.eINSTANCE.createTPolicy();
+ String type = "Constraint";
+ QName policyTypeName = new QName( "http://www.example.org/SYBL",
+ type,
+ null );
+ newPolicy.setPolicyType( policyTypeName );
+ newPolicy.setName( type.toUpperCase() + " " + newElasticityConstraint );
+
+ String id = "C" + ( ( Integer )nodeTemplate.hashCode() ).toString() + nodePolicyList.getPolicy().size();
+ QName qnamePolicyTemplate = new QName( id );
+ newPolicy.setPolicyRef( qnamePolicyTemplate );
+
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( nodeTemplate );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
+
+ @Override
+ protected void doExecute() {
+ policy.add( newPolicy );
+ }
+ } );
+ // Add Application Component Elasticity Requirement to temp list
+ this.appComponentElasticityRequirements.add( newPolicy );
+ this.tableViewer.refresh();
}
}
}
+}
- void editDataStagingEntryRA( final TPolicy selectedObject ) {
- ElasticityStrategyDialog dialog;
- if( selectedObject == null ) {
- // Add button is pressed
- dialog = new ElasticityStrategyDialog( this.section.getShell(),
- "Application Component" ); //$NON-NLS-1$
- if( dialog.open() == Window.OK ) {
- String newElasticityStrategy = dialog.getElasticityStrategy();
- SyblElasticityRequirementsDescription newSYBLStrategy = dialog.getSYBLStrategy();
- if( newElasticityStrategy != null ) {
- // Add Application Component Elasticity Strategy to TOSCA
- PictogramElement pe = getSelectedPictogramElement();
- Object bo = null;
- if( pe != null ) {
- bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- }
- final TNodeTemplateExtension nodeTemplate;
- if( bo instanceof TDeploymentArtifact ) {
- PictogramElement parentPE = Graphiti.getPeService()
- .getPictogramElementParent( pe );
- nodeTemplate = ( TNodeTemplateExtension )Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( parentPE );
- } else { // bo instanceof TNodeTemplate
- nodeTemplate = ( TNodeTemplateExtension )bo;
- }
- if( nodeTemplate.getPolicies() == null ) {
- final PoliciesType nodePolicyList = ToscaFactory.eINSTANCE.createPoliciesType();
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
+void editDataStagingEntryRA( final TPolicy selectedObject ) {
+ ElasticityStrategyDialog dialog;
+ if( selectedObject == null ) {
+ // Add button is pressed
+
+ PictogramElement pe = getSelectedPictogramElement();
+ Object bo = null;
+ if( pe != null ) {
+ bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ }
+ final TNodeTemplateExtension nodeTemplate;
+ if( bo instanceof TDeploymentArtifact ) {
+ PictogramElement parentPE = Graphiti.getPeService()
+ .getPictogramElementParent( pe );
+ nodeTemplate = ( TNodeTemplateExtension )Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( parentPE );
+ } else { // bo instanceof TNodeTemplate
+ nodeTemplate = ( TNodeTemplateExtension )bo;
+ }
+
+ dialog = new ElasticityStrategyDialog( this.section.getShell(),
+ "Application Component", nodeTemplate.getName() ); //$NON-NLS-1$
+ if( dialog.open() == Window.OK ) {
+ String newElasticityStrategy = dialog.getElasticityStrategy();
+ if( newElasticityStrategy != null ) {
+ // Add Application Component Elasticity Strategy to TOSCA
- @Override
- protected void doExecute() {
- nodeTemplate.setPolicies( nodePolicyList );
- }
- } );
- }
- PoliciesType nodePolicyList = nodeTemplate.getPolicies();
- final EList<TPolicy> policy = nodePolicyList.getPolicy();
- final TPolicy newPolicy = createNewPolicy( "Strategy",
- newElasticityStrategy, newSYBLStrategy );
+ if( nodeTemplate.getPolicies() == null ) {
+ final PoliciesType nodePolicyList = ToscaFactory.eINSTANCE.createPoliciesType();
TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
editingDomain.getCommandStack()
.execute( new RecordingCommand( editingDomain ) {
@Override
protected void doExecute() {
- policy.add( newPolicy );
+ nodeTemplate.setPolicies( nodePolicyList );
}
} );
- this.appComponentResizingActions.add( newPolicy );
- this.tableResizingActionsViewer.refresh();
- } else {
- // Edit
}
+ PoliciesType nodePolicyList = nodeTemplate.getPolicies();
+ final EList<TPolicy> policy = nodePolicyList.getPolicy();
+ final TPolicy newPolicy = ToscaFactory.eINSTANCE.createTPolicy();
+ String type = "Strategy";
+ QName policyTypeName = new QName( "http://www.example.org/SYBL",
+ type,
+ null );
+ newPolicy.setPolicyType( policyTypeName );
+ newPolicy.setName( type.toUpperCase() + " " + newElasticityStrategy );
+
+ String id = "C" + ( ( Integer )nodeTemplate.hashCode() ).toString() + nodePolicyList.getPolicy().size();
+ QName qnamePolicyTemplate = new QName( id );
+ newPolicy.setPolicyRef( qnamePolicyTemplate );
+
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
+
+ @Override
+ protected void doExecute() {
+ policy.add( newPolicy );
+ }
+ } );
+ this.appComponentResizingActions.add( newPolicy );
+ this.tableResizingActionsViewer.refresh();
+ } else {
+ // Edit
}
}
}
+}
+void addStrategyCondition( final TPolicy selectedObject ) {
+ if( selectedObject == null )
+ return;
+ TNodeTemplate nodeTemplate = null;
+ if( getSelectedPictogramElement() != null )
+ nodeTemplate = ( TNodeTemplate )Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( getSelectedPictogramElement() );
+ ElasticityConditionDialog dialog;
+ ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+ dialog = new ElasticityConditionDialog( this.section.getShell(),
+ "Application Component",
+ model,
+ selectedObject.getName() ); //$NON-NLS-1$
+ String newElasticityCondition = null;
+ if( dialog.open() == Window.OK ) {
+ newElasticityCondition = dialog.getSelectedCondition();
+ }
+ if( newElasticityCondition == null )
+ return;
+ // final String condition = newElasticityCondition;
+ String newCond = newElasticityCondition;
+ if( newCond.contains( "<" ) ) {
+ String[] cond = newCond.split( "<" );
+ newCond = cond[ 0 ] + "<" + cond[ 1 ];
+ } else if( newCond.contains( ">" ) ) {
+ String[] cond = newCond.split( ">" );
+ newCond = cond[ 0 ] + ">" + cond[ 1 ];
+ }
+ final String condition = newCond;
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( nodeTemplate );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
- // type is either "Constraint" or "Strategy"
- TPolicy createNewPolicy(String type, String policyName, SyblElasticityRequirementsDescription syblPolicy){
+ @Override
+ protected void doExecute() {
+ String[] strategy = selectedObject.getName().split( "STRATEGY" );
+ selectedObject.setName( strategy[ 0 ]
+ + "STRATEGY "
+ + condition
+ + " :"
+ + strategy[ 1 ] );
+ }
+ } );
+ this.tableResizingActionsViewer.refresh();
+}
- // Create Policy Template
-
- final TPolicyTemplate newPolicyTemplate = ToscaFactory.eINSTANCE.createTPolicyTemplate();
-
- QName policyTypeName = new QName( "http://www.example.org/SYBL", type, null );
-
- newPolicyTemplate.setType( policyTypeName );
-
- String id = "C" + ( ( Integer )newPolicyTemplate.hashCode() ).toString();
-
- newPolicyTemplate.setId( id );
+// Remove the selected Application Component Elasticity Requirement from TOSCA
+void removeApplicationComponentElasticityRequirement( final TPolicy selectedObject )
+{
+ PictogramElement pe = getSelectedPictogramElement();
+ Object bo = null;
+ if( pe != null ) {
+ bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ }
+ final TNodeTemplateExtension nodeTemplate;
+ if( bo instanceof TDeploymentArtifact ) {
+ PictogramElement parentPE = Graphiti.getPeService()
+ .getPictogramElementParent( pe );
+ nodeTemplate = ( TNodeTemplateExtension )Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( parentPE );
+ } else { // bo instanceof TNodeTemplate
+ nodeTemplate = ( TNodeTemplateExtension )bo;
+ }
+ PoliciesType nodePolicyList = nodeTemplate.getPolicies();
+ final EList<TPolicy> policy = nodePolicyList.getPolicy();
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
-
- // Set the Properties of the Policy Template
-
- PropertiesType properties = ToscaFactory.eINSTANCE.createPropertiesType();
-
- // Add the SYBL Policy to the FeatureMap of the Policy's Properties element
- Entry e = FeatureMapUtil.createEntry( SyblPackage.eINSTANCE.getDocumentRoot_SYBLElasticityRequirementsDescription(), syblPolicy );
- properties.getAny().add( e );
-
- newPolicyTemplate.setProperties( properties );
-
- // Add the new Policy Template to the TOSCA Definitions element
-
- final ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
-
- DefinitionsType definitions = model.getDocumentRoot().getDefinitions();
-
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( definitions );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- @Override
- protected void doExecute() {
- model.getDocumentRoot().getDefinitions().getPolicyTemplate().add( newPolicyTemplate );
-
+ @Override
+ protected void doExecute() {
+ for( TPolicy tempPolicy : policy ) {
+ if( tempPolicy.getPolicyType().toString().contains( "Constraint" ) ) //$NON-NLS-1$
+ if( tempPolicy.getName().compareTo( selectedObject.getName() ) == 0 )
+ {
+ policy.remove( tempPolicy );
+ if( policy.size() == 0 )
+ nodeTemplate.setPolicies( null );
+ break;
+ }
}
- } );
-
- // Assign the created Policy Template to the new Policy
-
- TPolicy newPolicy = ToscaFactory.eINSTANCE.createTPolicy();
-
- QName qnamePolicyTemplate = new QName( newPolicyTemplate.getId() );
-
- newPolicy.setPolicyType( policyTypeName );
-
- newPolicy.setPolicyRef( qnamePolicyTemplate );
-
- newPolicy.setName( type.toUpperCase() + " " + policyName );
-
- return newPolicy;
- }
-
- void addStrategyCondition( final TPolicy selectedObject ) {
- if( selectedObject == null )
- return;
- TNodeTemplate nodeTemplate = null;
- if( getSelectedPictogramElement() != null )
- nodeTemplate = ( TNodeTemplate )Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( getSelectedPictogramElement() );
- ElasticityConditionDialog dialog;
- ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
- dialog = new ElasticityConditionDialog( this.section.getShell(),
- "Application Component",
- model,
- selectedObject.getName() ); //$NON-NLS-1$
- String newElasticityCondition = null;
- ConditionType policyCondition = null;
- if( dialog.open() == Window.OK ) {
- newElasticityCondition = dialog.getSelectedCondition();
- policyCondition = dialog.getSYBLCondition();
- }
- if( newElasticityCondition == null )
- return;
-
- //final String condition = newElasticityCondition;
-
- String newCond = newElasticityCondition;
-
- if (newCond.contains( "<" )){
- String[] cond = newCond.split( "<" );
- newCond = cond[0] + "<" + cond[1];
- }
- else if (newCond.contains( ">" )){
- String[] cond = newCond.split( ">" );
- newCond = cond[0] + ">" + cond[1];
- }
-
- final String condition = newCond;
-
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( nodeTemplate );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
+ }
+ } );
+ this.appComponentElasticityRequirements.remove( selectedObject );
+ this.tableViewer.refresh();
+}
- @Override
- protected void doExecute() {
- String[] strategy = selectedObject.getName().split( "STRATEGY" );
- selectedObject.setName( strategy[ 0 ]
- + "STRATEGY "
- + condition
- + " :" + strategy[ 1 ] );
+// Return the selected Elasticity Requirement
+TPolicy getSelectedObject() {
+ TPolicy result = null;
+ IStructuredSelection selection = ( IStructuredSelection )this.tableViewer.getSelection();
+ Object obj = selection.getFirstElement();
+ result = ( TPolicy )obj;
+ return result;
+}
+
+// Return the selected Elasticity Action
+TPolicy getSelectedElasticityStrategy() {
+ TPolicy result = null;
+ IStructuredSelection selection = ( IStructuredSelection )this.tableResizingActionsViewer.getSelection();
+ Object obj = selection.getFirstElement();
+ result = ( TPolicy )obj;
+ return result;
+}
+
+/**
+ * Get Application Component Elasticity Actions
+ */
+public void getResizingActions() {
+ PictogramElement pe = getSelectedPictogramElement();
+ Object bo = null;
+ if( pe != null ) {
+ bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ }
+ final TNodeTemplateExtension appComponent;
+ if( bo instanceof TDeploymentArtifact ) {
+ PictogramElement parentPE = Graphiti.getPeService()
+ .getPictogramElementParent( pe );
+ appComponent = ( TNodeTemplateExtension )Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( parentPE );
+ } else { // bo instanceof TNodeTemplate
+ appComponent = ( TNodeTemplateExtension )bo;
+ }
+
+ if( appComponent == null || appComponent.getPolicies() == null )
+ return;
+ PoliciesType nodePolicyList = appComponent.getPolicies();
+ for( TPolicy tempPolicy : nodePolicyList.getPolicy() ) {
+ if( tempPolicy.getPolicyType().toString().contains( "Strategy" ) ) //$NON-NLS-1$
+ this.appComponentResizingActions.add( tempPolicy );
+ }
+}
+
+/**
+ * Get Application Component Elasticity Constraints
+ */
+public void getElasticityConstraints() {
+ PictogramElement pe = getSelectedPictogramElement();
+ Object bo = null;
+ if( pe != null ) {
+ bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ }
+ final TNodeTemplateExtension appComponent;
+ if( bo instanceof TDeploymentArtifact ) {
+ PictogramElement parentPE = Graphiti.getPeService()
+ .getPictogramElementParent( pe );
+ appComponent = ( TNodeTemplateExtension )Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( parentPE );
+ } else { // bo instanceof TNodeTemplate
+ appComponent = ( TNodeTemplateExtension )bo;
+ }
+
+ if( appComponent == null || appComponent.getPolicies() == null )
+ return;
+ PoliciesType nodePolicyList = appComponent.getPolicies();
+ for( TPolicy tempPolicy : nodePolicyList.getPolicy() ) {
+ if( tempPolicy.getPolicyType().toString().contains( "Constraint" ) ) //$NON-NLS-1$
+ this.appComponentElasticityRequirements.add( tempPolicy );
+ }
+}
+
+// Remove Application Component Elasticity Action
+void removeApplicationComponentResizingAction( final TPolicy selectedObject )
+{
+ PictogramElement pe = getSelectedPictogramElement();
+ Object bo = null;
+ if( pe != null ) {
+ bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ }
+ final TNodeTemplateExtension nodeTemplate;
+ if( bo instanceof TDeploymentArtifact ) {
+ PictogramElement parentPE = Graphiti.getPeService()
+ .getPictogramElementParent( pe );
+ nodeTemplate = ( TNodeTemplateExtension )Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( parentPE );
+ } else { // bo instanceof TNodeTemplate
+ nodeTemplate = ( TNodeTemplateExtension )bo;
+ }
+ PoliciesType nodePolicyList = nodeTemplate.getPolicies();
+ final EList<TPolicy> policy = nodePolicyList.getPolicy();
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
+
+ @Override
+ protected void doExecute() {
+ for( TPolicy tempPolicy : policy ) {
+ if( tempPolicy.getPolicyType().toString().contains( "Strategy" ) ) //$NON-NLS-1$
+ if( tempPolicy.getName().compareTo( selectedObject.getName() ) == 0 )
+ {
+ policy.remove( tempPolicy );
+ if( policy.size() == 0 )
+ nodeTemplate.setPolicies( null );
+ break;
+ }
}
- } );
- this.tableResizingActionsViewer.refresh();
-
- //addPolicyCondition( selectedObject, policyCondition);
- }
-
-// void addPolicyCondition(final TPolicy selectedPolicy, final ConditionType policyCondition){
-//
-// ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
-// EList<TPolicyTemplate> policyTemplates = model.getDocumentRoot().getDefinitions().getPolicyTemplate();
-// TPolicyTemplate policyTemplate = null;
-// for ( TPolicyTemplate tempPolicyTemplate : policyTemplates ){
-// if (tempPolicyTemplate.getId().toString().equals(selectedPolicy.getPolicyRef().toString())){
-// policyTemplate = tempPolicyTemplate;
-// break;
-// }
-// }
-//
-// final SyblElasticityRequirementsDescription syblPolicy = (SyblElasticityRequirementsDescription) policyTemplate.getProperties().getAny().get(0).getValue();
-// TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( policyTemplate );
-// editingDomain.getCommandStack()
-// .execute( new RecordingCommand( editingDomain ) {
-//
-// @Override
-// protected void doExecute() {
-// syblPolicy.getSYBLSpecification().get( 0 ).getStrategy().get( 0 ).setCondition( policyCondition );
-// }
-// } );
-// }
+ }
+ } );
+ this.appComponentResizingActions.remove( selectedObject );
+ this.tableResizingActionsViewer.refresh();
+}
- // Remove the selected Application Component Elasticity Requirement from TOSCA
- void removeApplicationComponentElasticityRequirement( final TPolicy selectedObject )
- {
- PictogramElement pe = getSelectedPictogramElement();
- Object bo = null;
- if( pe != null ) {
- bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- }
- final TNodeTemplateExtension nodeTemplate;
- if( bo instanceof TDeploymentArtifact ) {
- PictogramElement parentPE = Graphiti.getPeService()
- .getPictogramElementParent( pe );
- nodeTemplate = ( TNodeTemplateExtension )Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( parentPE );
- } else { // bo instanceof TNodeTemplate
- nodeTemplate = ( TNodeTemplateExtension )bo;
- }
- PoliciesType nodePolicyList = nodeTemplate.getPolicies();
- final EList<TPolicy> policy = nodePolicyList.getPolicy();
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- @Override
- protected void doExecute() {
- for( TPolicy tempPolicy : policy ) {
- if( tempPolicy.getPolicyType().toString().contains( "Constraint" ) ) //$NON-NLS-1$
- if( tempPolicy.getName().compareTo( selectedObject.getName() ) == 0 )
- {
- policy.remove( tempPolicy );
- if( policy.size() == 0 )
- nodeTemplate.setPolicies( null );
- // remove corresponding Policy Template
- String removedPolicyId = tempPolicy.getPolicyRef().toString();
- ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
- DefinitionsType toscaDefinitions = model.getDocumentRoot()
- .getDefinitions();
- final EList<TPolicyTemplate> policyTemplate = toscaDefinitions.getPolicyTemplate();
- for( TPolicyTemplate tempPolicyTemplate : policyTemplate ) {
- if( tempPolicyTemplate.getId().equals( removedPolicyId ) ) {
- policyTemplate.remove( tempPolicyTemplate );
- }
- }
- break;
- }
- }
- }
- } );
- this.appComponentElasticityRequirements.remove( selectedObject );
- this.tableViewer.refresh();
- }
-
- // Return the selected Elasticity Requirement
- TPolicy getSelectedObject() {
- TPolicy result = null;
- IStructuredSelection selection = ( IStructuredSelection )this.tableViewer.getSelection();
- Object obj = selection.getFirstElement();
- result = ( TPolicy )obj;
- return result;
- }
-
- // Return the selected Elasticity Action
- TPolicy getSelectedElasticityStrategy() {
- TPolicy result = null;
- IStructuredSelection selection = ( IStructuredSelection )this.tableResizingActionsViewer.getSelection();
- Object obj = selection.getFirstElement();
- result = ( TPolicy )obj;
- return result;
- }
-
- /**
- * Get Application Component Elasticity Actions
- */
- public void getResizingActions() {
+void addResizingActionExecutable( final Composite parent,
+ final TPolicy selectedObject )
+{
+ if( selectedObject == null )
+ return;
+ FileDialog dialog = new FileDialog( parent.getShell(), SWT.OPEN );
+ dialog.setText( "Select Executable File" ); //$NON-NLS-1$
+ String result = dialog.open();
+ if( result != null ) {
PictogramElement pe = getSelectedPictogramElement();
Object bo = null;
if( pe != null ) {
@@ -728,331 +741,205 @@
} else { // bo instanceof TNodeTemplate
appComponent = ( TNodeTemplateExtension )bo;
}
- PoliciesType nodePolicyList = appComponent.getPolicies();
- if( nodePolicyList == null )
- return;
- for( TPolicy tempPolicy : nodePolicyList.getPolicy() ) {
- if( tempPolicy.getPolicyType().toString().contains( "Strategy" ) ) //$NON-NLS-1$
- this.appComponentResizingActions.add( tempPolicy );
- }
- }
-
- /**
- * Get Application Component Elasticity Constraints
- */
- public void getElasticityConstraints() {
- PictogramElement pe = getSelectedPictogramElement();
- Object bo = null;
- if( pe != null ) {
- bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- }
- final TNodeTemplateExtension appComponent;
- if( bo instanceof TDeploymentArtifact ) {
- PictogramElement parentPE = Graphiti.getPeService()
- .getPictogramElementParent( pe );
- appComponent = ( TNodeTemplateExtension )Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( parentPE );
- } else { // bo instanceof TNodeTemplate
- appComponent = ( TNodeTemplateExtension )bo;
- }
- PoliciesType nodePolicyList = appComponent.getPolicies();
- if( nodePolicyList == null )
- return;
- for( TPolicy tempPolicy : nodePolicyList.getPolicy() ) {
- if( tempPolicy.getPolicyType().toString().contains( "Constraint" ) ) //$NON-NLS-1$
- this.appComponentElasticityRequirements.add( tempPolicy );
- }
- }
-
- // Remove Application Component Elasticity Action
- void removeApplicationComponentResizingAction( final TPolicy selectedObject )
- {
- PictogramElement pe = getSelectedPictogramElement();
- Object bo = null;
- if( pe != null ) {
- bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- }
- final TNodeTemplateExtension nodeTemplate;
- if( bo instanceof TDeploymentArtifact ) {
- PictogramElement parentPE = Graphiti.getPeService()
- .getPictogramElementParent( pe );
- nodeTemplate = ( TNodeTemplateExtension )Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( parentPE );
- } else { // bo instanceof TNodeTemplate
- nodeTemplate = ( TNodeTemplateExtension )bo;
- }
- PoliciesType nodePolicyList = nodeTemplate.getPolicies();
- final EList<TPolicy> policy = nodePolicyList.getPolicy();
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- @Override
- protected void doExecute() {
- for( TPolicy tempPolicy : policy ) {
- if( tempPolicy.getPolicyType().toString().contains( "Strategy" ) ) //$NON-NLS-1$
- if( tempPolicy.getName().compareTo( selectedObject.getName() ) == 0 )
- {
- policy.remove( tempPolicy );
- if( policy.size() == 0 )
- nodeTemplate.setPolicies( null );
- // remove corresponding Policy Template
- String removedPolicyId = tempPolicy.getPolicyRef().toString();
- ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
- DefinitionsType toscaDefinitions = model.getDocumentRoot()
- .getDefinitions();
- final EList<TPolicyTemplate> policyTemplate = toscaDefinitions.getPolicyTemplate();
- for( TPolicyTemplate tempPolicyTemplate : policyTemplate ) {
- if( tempPolicyTemplate.getId().equals( removedPolicyId ) ) {
- policyTemplate.remove( tempPolicyTemplate );
- }
- }
- break;
- }
- }
- }
- } );
- this.appComponentResizingActions.remove( selectedObject );
- this.tableResizingActionsViewer.refresh();
- }
-
- void addResizingActionExecutable( final Composite parent, final TPolicy selectedObject ) {
+ // Create Resizing Artifact Template
- if (selectedObject == null)
- return;
+ CreateArtifactTemplate artTempl = new CreateArtifactTemplate(dialog.getFileName(), new QName("RA"), ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) ));
- FileDialog dialog = new FileDialog( parent.getShell(), SWT.OPEN );
- dialog.setText( "Select Executable File" ); //$NON-NLS-1$
+ // Create Implementation Artifact
+ String operationName = selectedObject.getName();
+ // String operationName = "";
+ createImplementationArtifact( operationName,
+ dialog.getFileName(),
+ new QName( appComponent.getName() ),
+ new QName( dialog.getFileName() ) );
- String result = dialog.open();
-
- if( result != null ) {
-
- PictogramElement pe = getSelectedPictogramElement();
- Object bo = null;
- if( pe != null ) {
- bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- }
- final TNodeTemplateExtension appComponent;
- if( bo instanceof TDeploymentArtifact ) {
- PictogramElement parentPE = Graphiti.getPeService()
- .getPictogramElementParent( pe );
- appComponent = ( TNodeTemplateExtension )Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( parentPE );
- } else { // bo instanceof TNodeTemplate
- appComponent = ( TNodeTemplateExtension )bo;
- }
- //Create Resizing Artifact Template
- createArtifactTemplate(appComponent.getName(), dialog.getFileName());
-
- //Create Implementation Artifact
- String operationName = selectedObject.getName();
- //String operationName = "";
- createImplementationArtifact( operationName, dialog.getFileName(), new QName(appComponent.getName()), new QName(appComponent.getName()+"_"+ dialog.getFileName() +"_"+"Script"));
-
- // Add uploaded resizing scripts to Project Artifacts folder
-
- IWorkbenchPage activePage = PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow()
- .getActivePage();
- IEditorInput input = activePage.getActiveEditor().getEditorInput();
- IFile file = null;
- if( input instanceof ToscaDiagramEditorInput ) {
- file = ( ( ToscaDiagramEditorInput )input ).getToscaFile();
- }
- IProject project = file.getProject();
- String targetPath = Platform.getLocation()
- + File.separator + project.getName() + File.separator + "Artifacts" + File.separator + "Reconfiguration Scripts" + File.separator + dialog.getFileName(); //$NON-NLS-1$ //$NON-NLS-2$
-
- File tmp = new File( targetPath );
- try {
- tmp.createNewFile();
- } catch( IOException e1 ) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
-
- copySelectedFileToCloudProject( new File(result), tmp );
-
- IProgressMonitor monitor = null;
- try {
- CloudModel.getRoot().refresh( monitor );
- } catch( ProblemException e2 ) {
- e2.printStackTrace();
- }
- // Refresh Palette Compartments
- getDiagramTypeProvider().getFeatureProvider()
- .getDiagramTypeProvider()
- .getDiagramBehavior()
- .refreshPalette();
+ // Add uploaded resizing scripts to Project Artifacts folder
+ IWorkbenchPage activePage = PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow()
+ .getActivePage();
+ IEditorInput input = activePage.getActiveEditor().getEditorInput();
+ IFile file = null;
+ if( input instanceof ToscaDiagramEditorInput ) {
+ file = ( ( ToscaDiagramEditorInput )input ).getToscaFile();
}
- }
-
- private void copySelectedFileToCloudProject(File source, File destination){
-
- InputStream selection = null;
- OutputStream output = null;
+ IProject project = file.getProject();
+ String targetPath = Platform.getLocation()
+ + System.getProperty( "file.separator" )
+ + project.getName()
+ + System.getProperty( "file.separator" )
+ + "Artifacts" + System.getProperty( "file.separator" ) + "Reconfiguration Scripts" + System.getProperty( "file.separator" ) + dialog.getFileName(); //$NON-NLS-1$ //$NON-NLS-2$
+ File tmp = new File( targetPath );
try {
- try {
- selection = new FileInputStream(source);
- } catch( FileNotFoundException e ) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
+ tmp.createNewFile();
+ } catch( IOException e1 ) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ copySelectedFileToCloudProject( new File( result ), tmp );
+ IProgressMonitor monitor = null;
try {
- output = new FileOutputStream(destination);
+ CloudModel.getRoot().refresh( monitor );
+ } catch( ProblemException e2 ) {
+ e2.printStackTrace();
+ }
+// // Refresh Palette Compartments
+// getDiagramTypeProvider().getFeatureProvider()
+// .getDiagramTypeProvider()
+// .getDiagramBehavior()
+// .refreshPalette();
+ }
+}
+
+private void copySelectedFileToCloudProject( File source, File destination ) {
+ InputStream selection = null;
+ OutputStream output = null;
+ try {
+ try {
+ selection = new FileInputStream( source );
} catch( FileNotFoundException e ) {
// TODO Auto-generated catch block
e.printStackTrace();
}
- byte[] buf = new byte[1024];
+ try {
+ output = new FileOutputStream( destination );
+ } catch( FileNotFoundException e ) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ byte[] buf = new byte[ 1024 ];
int bytesRead;
- try {
- while ((bytesRead = selection.read(buf)) > 0) {
- output.write(buf, 0, bytesRead);
+ try {
+ while( ( bytesRead = selection.read( buf ) ) > 0 ) {
+ output.write( buf, 0, bytesRead );
}
} catch( IOException e ) {
// TODO Auto-generated catch block
e.printStackTrace();
}
- } finally {
- try {
- selection.close();
- output.close();
- } catch( IOException e ) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
+ } finally {
+ try {
+ selection.close();
+ output.close();
+ } catch( IOException e ) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
}
}
-
- private void createArtifactTemplate(String nodeName, String artifactName){
-
- //Create Artifact Template
- final TArtifactTemplate artifactTemplate = ToscaFactory.eINSTANCE.createTArtifactTemplate();
-
- //Create Script Artifact Properties
- ScriptArtifactPropertiesType scriptProperties = Tosca_Elasticity_ExtensionsFactory.eINSTANCE.createScriptArtifactPropertiesType();
- scriptProperties.setLanguage( "Shell" );
-
- // Set the Properties of the Policy Template
- PropertiesType properties = ToscaFactory.eINSTANCE.createPropertiesType();
-
- // Add the SYBL Policy to the FeatureMap of the Policy's Properties element
- Entry e = FeatureMapUtil.createEntry( Tosca_Elasticity_ExtensionsPackage.eINSTANCE.getDocumentRoot_ScriptArtifactProperties(), scriptProperties );
- properties.getAny().add( e );
-
- artifactTemplate.setProperties( properties );
-
- artifactTemplate.setId( nodeName + "_" + artifactName + "_" + "Script" );
-
-
- // Set artifact ref
- TArtifactReference artifactRef = ToscaFactory.eINSTANCE.createTArtifactReference();
- artifactRef.setReference( "Scripts"+ File.separator + artifactName);
+}
- ArtifactReferencesType artifactRefType = ToscaFactory.eINSTANCE.createArtifactReferencesType();
- artifactRefType.getArtifactReference().add( artifactRef );
-
- artifactTemplate.setArtifactReferences( artifactRefType );
-
- // Add the new Artifact Template to the TOSCA Definitions element
-
- final ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
-
- DefinitionsType definitions = model.getDocumentRoot().getDefinitions();
-
+private void createArtifactTemplate( String nodeName, String artifactName ) {
+ // Create Artifact Template
+ final TArtifactTemplate artifactTemplate = ToscaFactory.eINSTANCE.createTArtifactTemplate();
+ // Create Script Artifact Properties
+ ScriptArtifactPropertiesType scriptProperties = Tosca_Elasticity_ExtensionsFactory.eINSTANCE.createScriptArtifactPropertiesType();
+ scriptProperties.setLanguage( "Shell" );
+ // Set the Properties of the Policy Template
+ PropertiesType properties = ToscaFactory.eINSTANCE.createPropertiesType();
+ // Add the SYBL Policy to the FeatureMap of the Policy's Properties element
+ Entry e = FeatureMapUtil.createEntry( Tosca_Elasticity_ExtensionsPackage.eINSTANCE.getDocumentRoot_ScriptArtifactProperties(),
+ scriptProperties );
+ properties.getAny().add( e );
+ artifactTemplate.setProperties( properties );
+ artifactTemplate.setId( nodeName + "_" + artifactName + "_" + "Script" );
+ artifactTemplate.setType( new QName( "ScriptArtifact" ) );
+ // Set artifact ref
+ TArtifactReference artifactRef = ToscaFactory.eINSTANCE.createTArtifactReference();
+ artifactRef.setReference( "Scripts" + System.getProperty( "file.separator" ) + artifactName );
+ ArtifactReferencesType artifactRefType = ToscaFactory.eINSTANCE.createArtifactReferencesType();
+ artifactRefType.getArtifactReference().add( artifactRef );
+ artifactTemplate.setArtifactReferences( artifactRefType );
+ // Add the new Artifact Template to the TOSCA Definitions element
+ final ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+ DefinitionsType definitions = model.getDocumentRoot().getDefinitions();
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( definitions );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
+
+ @Override
+ protected void doExecute() {
+ model.getDocumentRoot()
+ .getDefinitions()
+ .getArtifactTemplate()
+ .add( artifactTemplate );
+ }
+ } );
+}
+
+// Creates the install implementation artifact
+private ImplementationArtifactType createImplementationArtifact( String resizingActionName,
+ String artifactName,
+ QName nodeType,
+ QName artifactID )
+{
+ final ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+ final DefinitionsType definitions = model.getDocumentRoot()
+ .getDefinitions();
+ TNodeTypeImplementation nodeTypeImplementation = null;
+ // Test if NodeTypeImplementation for nodeType already exists
+ for( TNodeTypeImplementation tempNodeTypeImplementation : definitions.getNodeTypeImplementation() )
+ {
+ if( tempNodeTypeImplementation.getNodeType()
+ .toString()
+ .equals( nodeType.toString() ) )
+ {
+ // NodeTypeImplementation already exists
+ // We are going to add the artifact to the existing implementation
+ nodeTypeImplementation = tempNodeTypeImplementation;
+ }
+ }
+ if( nodeTypeImplementation == null ) {
+ // NodeTypeImplementation does not exists
+ final TNodeTypeImplementation newNodeTypeImplementation = ToscaFactory.eINSTANCE.createTNodeTypeImplementation();
+ newNodeTypeImplementation.setNodeType( nodeType );
+ TImplementationArtifacts implementationArtifacts = ToscaFactory.eINSTANCE.createTImplementationArtifacts();
+ newNodeTypeImplementation.setImplementationArtifacts( implementationArtifacts );
TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( definitions );
editingDomain.getCommandStack()
.execute( new RecordingCommand( editingDomain ) {
@Override
protected void doExecute() {
- model.getDocumentRoot().getDefinitions().getArtifactTemplate().add( artifactTemplate );
-
+ definitions.getNodeTypeImplementation()
+ .add( newNodeTypeImplementation );
}
} );
-
+ nodeTypeImplementation = newNodeTypeImplementation;
}
-
-
- //Creates the install implementation artifact
- private ImplementationArtifactType createImplementationArtifact(String resizingActionName, String artifactName, QName nodeType, QName artifactID){
-
- final ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
-
- final DefinitionsType definitions = model.getDocumentRoot().getDefinitions();
-
- TNodeTypeImplementation nodeTypeImplementation = null;
-
- //Test if NodeTypeImplementation for nodeType already exists
- for ( TNodeTypeImplementation tempNodeTypeImplementation : definitions.getNodeTypeImplementation() ){
- if ( tempNodeTypeImplementation.getNodeType().toString().equals(nodeType.toString()) ){
- //NodeTypeImplementation already exists
- //We are going to add the artifact to the existing implementation
- nodeTypeImplementation = tempNodeTypeImplementation;
+ // Create Implementation Artifact
+ final ImplementationArtifactType installArtifactType = ToscaFactory.eINSTANCE.createImplementationArtifactType();
+ installArtifactType.setArtifactType( new QName( "ScriptArtifact" ) );
+ installArtifactType.setArtifactRef( artifactID );
+ installArtifactType.setInterfaceName( "Lifecycle" );
+ installArtifactType.setOperationName( resizingActionName );
+ final TNodeTypeImplementation nodeImplementation = nodeTypeImplementation;
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( nodeTypeImplementation );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
+
+ @Override
+ protected void doExecute() {
+ nodeImplementation.getImplementationArtifacts()
+ .getImplementationArtifact()
+ .add( installArtifactType );
}
- }
-
- if ( nodeTypeImplementation == null ){
- //NodeTypeImplementation does not exists
- final TNodeTypeImplementation newNodeTypeImplementation = ToscaFactory.eINSTANCE.createTNodeTypeImplementation();
- newNodeTypeImplementation.setNodeType( nodeType );
- TImplementationArtifacts implementationArtifacts = ToscaFactory.eINSTANCE.createTImplementationArtifacts();
- newNodeTypeImplementation.setImplementationArtifacts( implementationArtifacts );
-
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( definitions );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
+ } );
+ return installArtifactType;
+}
- @Override
- protected void doExecute() {
- definitions.getNodeTypeImplementation().add( newNodeTypeImplementation );
-
- }
- } );
- nodeTypeImplementation = newNodeTypeImplementation;
- }
-
- //Create Implementation Artifact
- final ImplementationArtifactType installArtifactType = ToscaFactory.eINSTANCE.createImplementationArtifactType();
- installArtifactType.setArtifactType( new QName("ScriptArtifact") );
- installArtifactType.setArtifactRef( artifactID );
- installArtifactType.setInterfaceName( "Lifecycle" );
- installArtifactType.setOperationName( resizingActionName );
-
- final TNodeTypeImplementation nodeImplementation = nodeTypeImplementation;
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( nodeTypeImplementation );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- @Override
- protected void doExecute() {
- nodeImplementation.getImplementationArtifacts().getImplementationArtifact().add( installArtifactType );
-
- }
- } );
-
- return installArtifactType;
- }
- /*
- * Refresh Elasticity Tab(non-Javadoc)
- * @see
- * org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#refresh()
- */
- @Override
- public void refresh() {
- // Refresh Elasticity Constraints
- this.appComponentElasticityRequirements.clear();
- getElasticityConstraints();
- this.tableViewer.refresh();
- // Refresh Elasticity Actions
- this.appComponentResizingActions.clear();
- getResizingActions();
- this.tableResizingActionsViewer.refresh();
- }
+/*
+ * Refresh Elasticity Tab(non-Javadoc)
+ * @see
+ * org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#refresh()
+ */
+@Override
+public void refresh() {
+ // Refresh Elasticity Constraints
+ this.appComponentElasticityRequirements.clear();
+ getElasticityConstraints();
+ this.tableViewer.refresh();
+ // Refresh Elasticity Actions
+ this.appComponentResizingActions.clear();
+ getResizingActions();
+ this.tableResizingActionsViewer.refresh();
+}
}
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/property/ApplicationComponentNameSection.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/property/ApplicationComponentNameSection.java
index 2059b42..d22d4b2 100644
--- a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/property/ApplicationComponentNameSection.java
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/property/ApplicationComponentNameSection.java
@@ -89,587 +89,728 @@
* Application Component Properties - Main Tab
*/
public class ApplicationComponentNameSection extends GFPropertySection
- implements ITabbedPropertyConstants, ModifyListener, SelectionListener
+implements ITabbedPropertyConstants, ModifyListener, SelectionListener
{
- private Text nameText;
- private Text descrText;
- private Text imageText;
- private Text keypairText;
- private Text initialInstancesText;
- private Text minInstancesText;
- private Text maxInstancesText;
- private CCombo cmbImageSize;
- private Button uploadImage;
- private Button keypairSelect;
+private Text nameText;
+private Text imageText;
+private Text keypairText;
+private Text minInstancesText;
+private Text maxInstancesText;
+private CCombo cmbImageSize;
+private Button uploadImage;
+private Button keypairSelect;
- @Override
- public void createControls( final Composite parent,
- TabbedPropertySheetPage tabbedPropertySheetPage )
- {
- super.createControls( parent, tabbedPropertySheetPage );
- TabbedPropertySheetWidgetFactory factory = getWidgetFactory();
- FormToolkit toolkit = new FormToolkit( parent.getDisplay() );
- // Application Component Properties Section\
- // Application Name label
- Section section = toolkit.createSection( parent, Section.TITLE_BAR );
- section.setText( "Application Component Properties" ); //$NON-NLS-1$
- Composite client = toolkit.createComposite( section, SWT.WRAP );
- GridLayout layout = new GridLayout();
- layout.numColumns = 3;
- layout.marginTop = 15;
- layout.verticalSpacing = 15;
- layout.marginWidth = 2;
- layout.marginHeight = 2;
- client.setLayout( layout );
- GridData gd;
- CLabel valueLabel = factory.createCLabel( client, "Name:" ); //$NON-NLS-1$
- gd = new GridData();
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gd.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
- gd.widthHint = 80;
- // gd.widthHint=STANDARD_LABEL_WIDTH;
- valueLabel.setLayoutData( gd );
- // Application Name text
- this.nameText = factory.createText( client, "" ); //$NON-NLS-1$
- this.nameText.setEditable( true );
- gd = new GridData();
- gd.horizontalSpan = 2;
- gd.widthHint = 160;
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
- this.nameText.setLayoutData( gd );
- // Application VM label
- CLabel imageLabel = factory.createCLabel( client, "VM Image:" ); //$NON-NLS-1$
- gd = new GridData();
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gd.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
- gd.widthHint = 80;
- // gd.widthHint=STANDARD_LABEL_WIDTH;
- imageLabel.setLayoutData( gd );
- this.imageText = factory.createText( client, "" ); //$NON-NLS-1$
- this.imageText.setEditable( true );
- gd = new GridData();
- gd.widthHint = 160;
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
- // Application VM text
- this.imageText.setLayoutData( gd );
- this.imageText.addModifyListener( this );
- // VM Upload Image Button
- this.uploadImage = new Button( client, SWT.PUSH );
- this.uploadImage.setText( " Add Image... " ); //$NON-NLS-1$
- gd = new GridData();
- gd.widthHint = 80;
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- this.uploadImage.setLayoutData( gd );
- // Listener for Add button
- this.uploadImage.addSelectionListener( new SelectionListener() {
+private String typesPrefix = Tosca_Elasticity_ExtensionsPackage.eINSTANCE.getNsPrefix();
- @Override
- public void widgetSelected( SelectionEvent e ) {
- FileDialog dialog = new FileDialog( parent.getShell(), SWT.OPEN );
- dialog.setText( "Select Image File" ); //$NON-NLS-1$
- // dialog.setFilterExtensions(new String [] {"*.html"});
- // dialog.setFilterPath("c:\\temp");
- String result = dialog.open();
- if( result != null ) {
- // Add uploaded image to Project Artifacts folder
- IWorkbenchPage activePage = PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow()
- .getActivePage();
- IEditorInput input = activePage.getActiveEditor().getEditorInput();
- IFile file = null;
- if( input instanceof ToscaDiagramEditorInput ) {
- file = ( ( ToscaDiagramEditorInput )input ).getToscaFile();
+private String typesNamespace = Tosca_Elasticity_ExtensionsPackage.eINSTANCE.getNsURI();
+
+private String imageType = Tosca_Elasticity_ExtensionsPackage.eINSTANCE.getImageArtifactPropertiesType().getName();
+
+@Override
+public void createControls( final Composite parent,
+ TabbedPropertySheetPage tabbedPropertySheetPage )
+{
+ super.createControls( parent, tabbedPropertySheetPage );
+ TabbedPropertySheetWidgetFactory factory = getWidgetFactory();
+ FormToolkit toolkit = new FormToolkit( parent.getDisplay() );
+ // Application Component Properties Section\
+ // Application Name label
+ Section section = toolkit.createSection( parent, Section.TITLE_BAR );
+ section.setText( "Application Component Properties" ); //$NON-NLS-1$
+ Composite client = toolkit.createComposite( section, SWT.WRAP );
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 3;
+ layout.marginTop = 15;
+ layout.verticalSpacing = 15;
+ layout.marginWidth = 2;
+ layout.marginHeight = 2;
+ client.setLayout( layout );
+ GridData gd;
+ CLabel valueLabel = factory.createCLabel( client, "Name:" ); //$NON-NLS-1$
+ gd = new GridData();
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ gd.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
+ gd.widthHint = 80;
+ // gd.widthHint=STANDARD_LABEL_WIDTH;
+ valueLabel.setLayoutData( gd );
+ // Application Name text
+ this.nameText = factory.createText( client, "" ); //$NON-NLS-1$
+ this.nameText.setEditable( true );
+ gd = new GridData();
+ gd.horizontalSpan = 2;
+ gd.widthHint = 160;
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
+ this.nameText.setLayoutData( gd );
+ // Application VM label
+ CLabel imageLabel = factory.createCLabel( client, "VM Image:" ); //$NON-NLS-1$
+ gd = new GridData();
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ gd.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
+ gd.widthHint = 80;
+ // gd.widthHint=STANDARD_LABEL_WIDTH;
+ imageLabel.setLayoutData( gd );
+ this.imageText = factory.createText( client, "" ); //$NON-NLS-1$
+ this.imageText.setEditable( true );
+ gd = new GridData();
+ gd.widthHint = 160;
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
+ // Application VM text
+ this.imageText.setLayoutData( gd );
+ this.imageText.addModifyListener( this );
+ // VM Upload Image Button
+ this.uploadImage = new Button( client, SWT.PUSH );
+ this.uploadImage.setText( " Add Image... " ); //$NON-NLS-1$
+ gd = new GridData();
+ gd.widthHint = 80;
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ this.uploadImage.setLayoutData( gd );
+ // Listener for Add button
+ this.uploadImage.addSelectionListener( new SelectionListener() {
+
+ @Override
+ public void widgetSelected( SelectionEvent e ) {
+ FileDialog dialog = new FileDialog( parent.getShell(), SWT.OPEN );
+ dialog.setText( "Select Image File" ); //$NON-NLS-1$
+ // dialog.setFilterExtensions(new String [] {"*.html"});
+ // dialog.setFilterPath("c:\\temp");
+ String result = dialog.open();
+ if( result != null ) {
+ // Add uploaded image to Project Artifacts folder
+ IWorkbenchPage activePage = PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow()
+ .getActivePage();
+ IEditorInput input = activePage.getActiveEditor().getEditorInput();
+ IFile file = null;
+ if( input instanceof ToscaDiagramEditorInput ) {
+ file = ( ( ToscaDiagramEditorInput )input ).getToscaFile();
+ }
+ IProject project = file.getProject();
+
+ String targetPath = Platform.getLocation()
+ + System.getProperty( "file.separator" ) + project.getName() + System.getProperty( "file.separator" ) + "Artifacts"+ System.getProperty( "file.separator" ) + "Virtual Machine Images" + System.getProperty( "file.separator" ) + dialog.getFileName(); //$NON-NLS-1$ //$NON-NLS-2$
+ File tmp = new File( targetPath );
+ try {
+ tmp.createNewFile();
+ } catch( IOException e1 ) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+
+ // Get image Id
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader( new FileReader (new File(result)));
+ } catch( FileNotFoundException e3 ) {
+ // TODO Auto-generated catch block
+ e3.printStackTrace();
+ }
+ String line = null;
+ StringBuilder stringBuilder = new StringBuilder();
+
+ try {
+ while( ( line = reader.readLine() ) != null ) {
+ stringBuilder.append( line );
}
- IProject project = file.getProject();
- String targetPath = Platform.getLocation()
- + File.separator + project.getName() + File.separator + "Artifacts"+ File.separator + "Virtual Machine Images" + File.separator + dialog.getFileName(); //$NON-NLS-1$ //$NON-NLS-2$
- File tmp = new File( targetPath );
+ } catch( IOException e1 ) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+
+ String imageId = stringBuilder.toString();
+
+ copySelectedFileToCloudProject( new File(result), tmp );
+
+ IProgressMonitor monitor = null;
+ try {
+ CloudModel.getRoot().refresh( monitor );
+ } catch( ProblemException e2 ) {
+ e2.printStackTrace();
+ }
+// // Refresh Palette Compartments
+// getDiagramTypeProvider().getFeatureProvider()
+// .getDiagramTypeProvider()
+// .getDiagramBehavior()
+// .refreshPalette();
+
+
+ CreateVMIFeature createImageFeature = new CreateVMIFeature( new ToscaFeatureProvider( getDiagramTypeProvider() ) );
+ TDeploymentArtifact deploymentArtifact = ToscaFactory.eINSTANCE.createTDeploymentArtifact();
+ deploymentArtifact.setName( dialog.getFileName());
+ deploymentArtifact.setArtifactRef( new QName (imageId) );
+ deploymentArtifact.setArtifactType( new QName( typesNamespace, imageType, typesPrefix ) ); //$NON-NLS-1$
+ createImageFeature.setContextObject( deploymentArtifact );
+ CreateContext createContext = new CreateContext();
+ createContext.setTargetContainer( ( ContainerShape )getSelectedPictogramElement() );
+ if( createImageFeature.canCreate( createContext ) )
+ createImageFeature.create( createContext );
+ refresh();
+
+ }
+ }
+
+ @Override
+ public void widgetDefaultSelected( final SelectionEvent e ) {
+ // TODO Auto-generated method stub
+ }
+ } );
+
+ // VM Image Flavor label
+ CLabel vmImageLabel = factory.createCLabel( client, "VM Type:" ); //$NON-NLS-1$
+ gd = new GridData();
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ gd.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
+ gd.widthHint = 80;
+ vmImageLabel.setLayoutData( gd );
+ // Combo - VM Image Flavor
+ this.cmbImageSize = new CCombo( client, SWT.BORDER );
+ this.cmbImageSize.setEnabled( true );
+
+// ArrayList<VirtualMachineImageFlavor> instanceTypes =
+// MockUpInfoSystem.getInstance().getInstanceTypes();
+// for (VirtualMachineImageFlavor type : instanceTypes )
+// this.cmbImageSize.add(type.getName());
+ ///////////////////////////////////////////////////////
+ this.cmbImageSize.add( "vcpus:1 ram:1024 disk:20" );
+ this.cmbImageSize.add( "vcpus:1 ram:1024 disk:40" );
+ this.cmbImageSize.add( "vcpus:1 ram:2048 disk:20" );
+ this.cmbImageSize.add( "vcpus:1 ram:2048 disk:40" );
+ this.cmbImageSize.add( "vcpus:1 ram:4096 disk:20" );
+ this.cmbImageSize.add( "vcpus:1 ram:4096 disk:40" );
+ this.cmbImageSize.add( "vcpus:2 ram:1024 disk:20" );
+ this.cmbImageSize.add( "vcpus:2 ram:1024 disk:40" );
+ this.cmbImageSize.add( "vcpus:2 ram:2048 disk:20" );
+ this.cmbImageSize.add( "vcpus:2 ram:2048 disk:40" );
+ this.cmbImageSize.add( "vcpus:2 ram:4096 disk:20" );
+ this.cmbImageSize.add( "vcpus:2 ram:4096 disk:40" );
+ this.cmbImageSize.add( "vcpus:4 ram:1024 disk:20" );
+ this.cmbImageSize.add( "vcpus:4 ram:1024 disk:40" );
+ this.cmbImageSize.add( "vcpus:4 ram:2048 disk:20" );
+ this.cmbImageSize.add( "vcpus:4 ram:2048 disk:40" );
+ this.cmbImageSize.add( "vcpus:4 ram:4096 disk:20" );
+ this.cmbImageSize.add( "vcpus:4 ram:4096 disk:40" );
+ this.cmbImageSize.add( "vcpus:1 ram:1024 disk:5" );
+ this.cmbImageSize.add( "vcpus:1 ram:1024 disk:10" );
+ this.cmbImageSize.add( "vcpus:1 ram:2048 disk:5" );
+ this.cmbImageSize.add( "vcpus:1 ram:2048 disk:10" );
+ this.cmbImageSize.add( "vcpus:1 ram:4096 disk:5" );
+ this.cmbImageSize.add( "vcpus:1 ram:4096 disk:10" );
+ this.cmbImageSize.add( "vcpus:2 ram:1024 disk:5" );
+ this.cmbImageSize.add( "vcpus:2 ram:1024 disk:10" );
+ this.cmbImageSize.add( "vcpus:2 ram:2048 disk:5" );
+ this.cmbImageSize.add( "vcpus:2 ram:2048 disk:10" );
+ this.cmbImageSize.add( "vcpus:2 ram:4096 disk:5" );
+ this.cmbImageSize.add( "vcpus:2 ram:4096 disk:10" );
+ this.cmbImageSize.add( "vcpus:4 ram:1024 disk:5" );
+ this.cmbImageSize.add( "vcpus:4 ram:1024 disk:10" );
+ this.cmbImageSize.add( "vcpus:4 ram:2048 disk:5" );
+ this.cmbImageSize.add( "vcpus:4 ram:2048 disk:10" );
+ this.cmbImageSize.add( "vcpus:4 ram:4096 disk:5" );
+ this.cmbImageSize.add( "vcpus:4 ram:4096 disk:10" );
+ this.cmbImageSize.add( "vcpus:1 ram:512 disk:5" );
+ this.cmbImageSize.add( "vcpus:1 ram:512 disk:10" );
+ this.cmbImageSize.add( "vcpus:1 ram:512 disk:20" );
+ this.cmbImageSize.add( "vcpus:1 ram:512 disk:40" );
+ this.cmbImageSize.add( "vcpus:1 ram:512 disk:60" );
+ this.cmbImageSize.add( "vcpus:1 ram:512 disk:80" );
+ this.cmbImageSize.add( "vcpus:1 ram:512 disk:100" );
+ this.cmbImageSize.add( "vcpus:1 ram:1024 disk:60" );
+ this.cmbImageSize.add( "vcpus:1 ram:1024 disk:80" );
+ this.cmbImageSize.add( "vcpus:1 ram:1024 disk:100" );
+ this.cmbImageSize.add( "vcpus:1 ram:2048 disk:60" );
+ this.cmbImageSize.add( "vcpus:1 ram:2048 disk:80" );
+ this.cmbImageSize.add( "vcpus:1 ram:2048 disk:100" );
+ this.cmbImageSize.add( "vcpus:1 ram:4096 disk:60" );
+ this.cmbImageSize.add( "vcpus:1 ram:4096 disk:80" );
+ this.cmbImageSize.add( "vcpus:1 ram:4096 disk:100" );
+ this.cmbImageSize.add( "vcpus:1 ram:8192 disk:5" );
+ this.cmbImageSize.add( "vcpus:1 ram:8192 disk:10" );
+ this.cmbImageSize.add( "vcpus:1 ram:8192 disk:20" );
+ this.cmbImageSize.add( "vcpus:1 ram:8192 disk:40" );
+ this.cmbImageSize.add( "vcpus:1 ram:8192 disk:60" );
+ this.cmbImageSize.add( "vcpus:1 ram:8192 disk:80" );
+ this.cmbImageSize.add( "vcpus:1 ram:8192 disk:100" );
+ this.cmbImageSize.add( "vcpus:2 ram:512 disk:5" );
+ this.cmbImageSize.add( "vcpus:2 ram:512 disk:10" );
+ this.cmbImageSize.add( "vcpus:2 ram:512 disk:20" );
+ this.cmbImageSize.add( "vcpus:2 ram:512 disk:40" );
+ this.cmbImageSize.add( "vcpus:2 ram:512 disk:60" );
+ this.cmbImageSize.add( "vcpus:2 ram:512 disk:80" );
+ this.cmbImageSize.add( "vcpus:2 ram:512 disk:100" );
+ this.cmbImageSize.add( "vcpus:2 ram:1024 disk:60" );
+ this.cmbImageSize.add( "vcpus:2 ram:1024 disk:80" );
+ this.cmbImageSize.add( "vcpus:2 ram:1024 disk:100" );
+ this.cmbImageSize.add( "vcpus:2 ram:2048 disk:60" );
+ this.cmbImageSize.add( "vcpus:2 ram:2048 disk:80" );
+ this.cmbImageSize.add( "vcpus:2 ram:2048 disk:100" );
+ this.cmbImageSize.add( "vcpus:2 ram:4096 disk:60" );
+ this.cmbImageSize.add( "vcpus:2 ram:4096 disk:80" );
+ this.cmbImageSize.add( "vcpus:2 ram:4096 disk:100" );
+ this.cmbImageSize.add( "vcpus:2 ram:8192 disk:5" );
+ this.cmbImageSize.add( "vcpus:2 ram:8192 disk:10" );
+ this.cmbImageSize.add( "vcpus:2 ram:8192 disk:20" );
+ this.cmbImageSize.add( "vcpus:2 ram:8192 disk:40" );
+ this.cmbImageSize.add( "vcpus:2 ram:8192 disk:60" );
+ this.cmbImageSize.add( "vcpus:2 ram:8192 disk:80" );
+ this.cmbImageSize.add( "vcpus:2 ram:8192 disk:100" );
+ this.cmbImageSize.add( "vcpus:4 ram:512 disk:5" );
+ this.cmbImageSize.add( "vcpus:4 ram:512 disk:10" );
+ this.cmbImageSize.add( "vcpus:4 ram:512 disk:20" );
+ this.cmbImageSize.add( "vcpus:4 ram:512 disk:40" );
+ this.cmbImageSize.add( "vcpus:4 ram:512 disk:60" );
+ this.cmbImageSize.add( "vcpus:4 ram:512 disk:80" );
+ this.cmbImageSize.add( "vcpus:4 ram:512 disk:100" );
+ this.cmbImageSize.add( "vcpus:4 ram:1024 disk:60" );
+ this.cmbImageSize.add( "vcpus:4 ram:1024 disk:80" );
+ this.cmbImageSize.add( "vcpus:4 ram:1024 disk:100" );
+ this.cmbImageSize.add( "vcpus:4 ram:2048 disk:60" );
+ this.cmbImageSize.add( "vcpus:4 ram:2048 disk:80" );
+ this.cmbImageSize.add( "vcpus:4 ram:2048 disk:100" );
+ this.cmbImageSize.add( "vcpus:4 ram:4096 disk:60" );
+ this.cmbImageSize.add( "vcpus:4 ram:4096 disk:80" );
+ this.cmbImageSize.add( "vcpus:4 ram:4096 disk:100" );
+ this.cmbImageSize.add( "vcpus:4 ram:8192 disk:5" );
+ this.cmbImageSize.add( "vcpus:4 ram:8192 disk:10" );
+ this.cmbImageSize.add( "vcpus:4 ram:8192 disk:20" );
+ this.cmbImageSize.add( "vcpus:4 ram:8192 disk:40" );
+ this.cmbImageSize.add( "vcpus:4 ram:8192 disk:60" );
+ this.cmbImageSize.add( "vcpus:4 ram:8192 disk:80" );
+ this.cmbImageSize.add( "vcpus:4 ram:8192 disk:100" );
+ this.cmbImageSize.add( "vcpus:8 ram:512 disk:5" );
+ this.cmbImageSize.add( "vcpus:8 ram:512 disk:10" );
+ this.cmbImageSize.add( "vcpus:8 ram:512 disk:20" );
+ this.cmbImageSize.add( "vcpus:8 ram:512 disk:40" );
+ this.cmbImageSize.add( "vcpus:8 ram:512 disk:60" );
+ this.cmbImageSize.add( "vcpus:8 ram:512 disk:80" );
+ this.cmbImageSize.add( "vcpus:8 ram:512 disk:100" );
+ this.cmbImageSize.add( "vcpus:8 ram:1024 disk:5" );
+ this.cmbImageSize.add( "vcpus:8 ram:1024 disk:10" );
+ this.cmbImageSize.add( "vcpus:8 ram:1024 disk:20" );
+ this.cmbImageSize.add( "vcpus:8 ram:1024 disk:40" );
+ this.cmbImageSize.add( "vcpus:8 ram:1024 disk:60" );
+ this.cmbImageSize.add( "vcpus:8 ram:1024 disk:80" );
+ this.cmbImageSize.add( "vcpus:8 ram:1024 disk:100" );
+ this.cmbImageSize.add( "vcpus:8 ram:2048 disk:5" );
+ this.cmbImageSize.add( "vcpus:8 ram:2048 disk:10" );
+ this.cmbImageSize.add( "vcpus:8 ram:2048 disk:20" );
+ this.cmbImageSize.add( "vcpus:8 ram:2048 disk:40" );
+ this.cmbImageSize.add( "vcpus:8 ram:2048 disk:60" );
+ this.cmbImageSize.add( "vcpus:8 ram:2048 disk:80" );
+ this.cmbImageSize.add( "vcpus:8 ram:2048 disk:100" );
+ this.cmbImageSize.add( "vcpus:8 ram:4096 disk:5" );
+ this.cmbImageSize.add( "vcpus:8 ram:4096 disk:10" );
+ this.cmbImageSize.add( "vcpus:8 ram:4096 disk:20" );
+ this.cmbImageSize.add( "vcpus:8 ram:4096 disk:40" );
+ this.cmbImageSize.add( "vcpus:8 ram:4096 disk:60" );
+ this.cmbImageSize.add( "vcpus:8 ram:4096 disk:80" );
+ this.cmbImageSize.add( "vcpus:8 ram:4096 disk:100" );
+ this.cmbImageSize.add( "vcpus:8 ram:8192 disk:5" );
+ this.cmbImageSize.add( "vcpus:8 ram:8192 disk:10" );
+ this.cmbImageSize.add( "vcpus:8 ram:8192 disk:20" );
+ this.cmbImageSize.add( "vcpus:8 ram:8192 disk:40" );
+ this.cmbImageSize.add( "vcpus:8 ram:8192 disk:60" );
+ this.cmbImageSize.add( "vcpus:8 ram:8192 disk:80" );
+ this.cmbImageSize.add( "vcpus:8 ram:8192 disk:100" );
+ this.cmbImageSize.add( "vcpus:1 ram:512 disk:5" );
+ this.cmbImageSize.add( "vcpus:1 ram:512 disk:10" );
+ this.cmbImageSize.add( "vcpus:1 ram:512 disk:20" );
+ this.cmbImageSize.add( "vcpus:1 ram:512 disk:40" );
+ this.cmbImageSize.add( "vcpus:1 ram:512 disk:60" );
+ this.cmbImageSize.add( "vcpus:1 ram:512 disk:80" );
+ this.cmbImageSize.add( "vcpus:1 ram:512 disk:100" );
+ this.cmbImageSize.add( "vcpus:1 ram:1024 disk:5" );
+ this.cmbImageSize.add( "vcpus:1 ram:1024 disk:10" );
+ this.cmbImageSize.add( "vcpus:1 ram:1024 disk:20" );
+ this.cmbImageSize.add( "vcpus:1 ram:1024 disk:40" );
+ this.cmbImageSize.add( "vcpus:1 ram:1024 disk:60" );
+ this.cmbImageSize.add( "vcpus:1 ram:1024 disk:80" );
+ this.cmbImageSize.add( "vcpus:1 ram:1024 disk:100" );
+ this.cmbImageSize.add( "vcpus:1 ram:2048 disk:5" );
+ this.cmbImageSize.add( "vcpus:1 ram:2048 disk:10" );
+ this.cmbImageSize.add( "vcpus:1 ram:2048 disk:20" );
+ this.cmbImageSize.add( "vcpus:1 ram:2048 disk:40" );
+ this.cmbImageSize.add( "vcpus:1 ram:2048 disk:60" );
+ this.cmbImageSize.add( "vcpus:1 ram:2048 disk:80" );
+ this.cmbImageSize.add( "vcpus:1 ram:2048 disk:100" );
+ this.cmbImageSize.add( "vcpus:1 ram:4096 disk:5" );
+ this.cmbImageSize.add( "vcpus:1 ram:4096 disk:10" );
+ this.cmbImageSize.add( "vcpus:1 ram:4096 disk:20" );
+ this.cmbImageSize.add( "vcpus:1 ram:4096 disk:40" );
+ this.cmbImageSize.add( "vcpus:1 ram:4096 disk:60" );
+ this.cmbImageSize.add( "vcpus:1 ram:4096 disk:80" );
+ this.cmbImageSize.add( "vcpus:1 ram:4096 disk:100" );
+ this.cmbImageSize.add( "vcpus:1 ram:8192 disk:5" );
+ this.cmbImageSize.add( "vcpus:1 ram:8192 disk:10" );
+ this.cmbImageSize.add( "vcpus:1 ram:8192 disk:20" );
+ this.cmbImageSize.add( "vcpus:1 ram:8192 disk:40" );
+ this.cmbImageSize.add( "vcpus:1 ram:8192 disk:60" );
+ this.cmbImageSize.add( "vcpus:1 ram:8192 disk:80" );
+ this.cmbImageSize.add( "vcpus:1 ram:8192 disk:100" );
+ this.cmbImageSize.add( "vcpus:2 ram:512 disk:5" );
+ this.cmbImageSize.add( "vcpus:2 ram:512 disk:10" );
+ this.cmbImageSize.add( "vcpus:2 ram:512 disk:20" );
+ this.cmbImageSize.add( "vcpus:2 ram:512 disk:40" );
+ this.cmbImageSize.add( "vcpus:2 ram:512 disk:60" );
+ this.cmbImageSize.add( "vcpus:2 ram:512 disk:80" );
+ this.cmbImageSize.add( "vcpus:2 ram:512 disk:100" );
+ this.cmbImageSize.add( "vcpus:2 ram:1024 disk:5" );
+ this.cmbImageSize.add( "vcpus:2 ram:1024 disk:10" );
+ this.cmbImageSize.add( "vcpus:2 ram:1024 disk:20" );
+ this.cmbImageSize.add( "vcpus:2 ram:1024 disk:40" );
+ this.cmbImageSize.add( "vcpus:2 ram:1024 disk:60" );
+ this.cmbImageSize.add( "vcpus:2 ram:1024 disk:80" );
+ this.cmbImageSize.add( "vcpus:2 ram:1024 disk:100" );
+ this.cmbImageSize.add( "vcpus:2 ram:2048 disk:5" );
+ this.cmbImageSize.add( "vcpus:2 ram:2048 disk:10" );
+ this.cmbImageSize.add( "vcpus:2 ram:2048 disk:20" );
+ this.cmbImageSize.add( "vcpus:2 ram:2048 disk:40" );
+ this.cmbImageSize.add( "vcpus:2 ram:2048 disk:60" );
+ this.cmbImageSize.add( "vcpus:2 ram:2048 disk:80" );
+ this.cmbImageSize.add( "vcpus:2 ram:2048 disk:100" );
+ this.cmbImageSize.add( "vcpus:2 ram:4096 disk:5" );
+ this.cmbImageSize.add( "vcpus:2 ram:4096 disk:10" );
+ this.cmbImageSize.add( "vcpus:2 ram:4096 disk:20" );
+ this.cmbImageSize.add( "vcpus:2 ram:4096 disk:40" );
+ this.cmbImageSize.add( "vcpus:2 ram:4096 disk:60" );
+ this.cmbImageSize.add( "vcpus:2 ram:4096 disk:80" );
+ this.cmbImageSize.add( "vcpus:2 ram:4096 disk:100" );
+ this.cmbImageSize.add( "vcpus:2 ram:8192 disk:5" );
+ this.cmbImageSize.add( "vcpus:2 ram:8192 disk:10" );
+ this.cmbImageSize.add( "vcpus:2 ram:8192 disk:20" );
+ this.cmbImageSize.add( "vcpus:2 ram:8192 disk:40" );
+ this.cmbImageSize.add( "vcpus:2 ram:8192 disk:60" );
+ this.cmbImageSize.add( "vcpus:2 ram:8192 disk:80" );
+ this.cmbImageSize.add( "vcpus:2 ram:8192 disk:100" );
+ this.cmbImageSize.add( "vcpus:4 ram:512 disk:5" );
+ this.cmbImageSize.add( "vcpus:4 ram:512 disk:10" );
+ this.cmbImageSize.add( "vcpus:4 ram:512 disk:20" );
+ this.cmbImageSize.add( "vcpus:4 ram:512 disk:40" );
+ this.cmbImageSize.add( "vcpus:4 ram:512 disk:60" );
+ this.cmbImageSize.add( "vcpus:4 ram:512 disk:80" );
+ this.cmbImageSize.add( "vcpus:4 ram:512 disk:100" );
+ this.cmbImageSize.add( "vcpus:4 ram:1024 disk:5" );
+ this.cmbImageSize.add( "vcpus:4 ram:1024 disk:10" );
+ this.cmbImageSize.add( "vcpus:4 ram:1024 disk:20" );
+ this.cmbImageSize.add( "vcpus:4 ram:1024 disk:40" );
+ this.cmbImageSize.add( "vcpus:4 ram:1024 disk:60" );
+ this.cmbImageSize.add( "vcpus:4 ram:1024 disk:80" );
+ this.cmbImageSize.add( "vcpus:4 ram:1024 disk:100" );
+ this.cmbImageSize.add( "vcpus:4 ram:2048 disk:5" );
+ this.cmbImageSize.add( "vcpus:4 ram:2048 disk:10" );
+ this.cmbImageSize.add( "vcpus:4 ram:2048 disk:20" );
+ this.cmbImageSize.add( "vcpus:4 ram:2048 disk:40" );
+ this.cmbImageSize.add( "vcpus:4 ram:2048 disk:60" );
+ this.cmbImageSize.add( "vcpus:4 ram:2048 disk:80" );
+ this.cmbImageSize.add( "vcpus:4 ram:2048 disk:100" );
+ this.cmbImageSize.add( "vcpus:4 ram:4096 disk:5" );
+ this.cmbImageSize.add( "vcpus:4 ram:4096 disk:10" );
+ this.cmbImageSize.add( "vcpus:4 ram:4096 disk:20" );
+ this.cmbImageSize.add( "vcpus:4 ram:4096 disk:40" );
+ this.cmbImageSize.add( "vcpus:4 ram:4096 disk:60" );
+ this.cmbImageSize.add( "vcpus:4 ram:4096 disk:80" );
+ this.cmbImageSize.add( "vcpus:4 ram:4096 disk:100" );
+ this.cmbImageSize.add( "vcpus:4 ram:8192 disk:5" );
+ this.cmbImageSize.add( "vcpus:4 ram:8192 disk:10" );
+ this.cmbImageSize.add( "vcpus:4 ram:8192 disk:20" );
+ this.cmbImageSize.add( "vcpus:4 ram:8192 disk:40" );
+ this.cmbImageSize.add( "vcpus:4 ram:8192 disk:60" );
+ this.cmbImageSize.add( "vcpus:4 ram:8192 disk:80" );
+ this.cmbImageSize.add( "vcpus:4 ram:8192 disk:100" );
+ this.cmbImageSize.add( "vcpus:8 ram:512 disk:5" );
+ this.cmbImageSize.add( "vcpus:8 ram:512 disk:10" );
+ this.cmbImageSize.add( "vcpus:8 ram:512 disk:20" );
+ this.cmbImageSize.add( "vcpus:8 ram:512 disk:40" );
+ this.cmbImageSize.add( "vcpus:8 ram:512 disk:60" );
+ this.cmbImageSize.add( "vcpus:8 ram:512 disk:80" );
+ this.cmbImageSize.add( "vcpus:8 ram:512 disk:100" );
+ this.cmbImageSize.add( "vcpus:8 ram:1024 disk:5" );
+ this.cmbImageSize.add( "vcpus:8 ram:1024 disk:10" );
+ this.cmbImageSize.add( "vcpus:8 ram:1024 disk:20" );
+ this.cmbImageSize.add( "vcpus:8 ram:1024 disk:40" );
+ this.cmbImageSize.add( "vcpus:8 ram:1024 disk:60" );
+ this.cmbImageSize.add( "vcpus:8 ram:1024 disk:80" );
+ this.cmbImageSize.add( "vcpus:8 ram:1024 disk:100" );
+ this.cmbImageSize.add( "vcpus:8 ram:2048 disk:5" );
+ this.cmbImageSize.add( "vcpus:8 ram:2048 disk:10" );
+ this.cmbImageSize.add( "vcpus:8 ram:2048 disk:20" );
+ this.cmbImageSize.add( "vcpus:8 ram:2048 disk:40" );
+ this.cmbImageSize.add( "vcpus:8 ram:2048 disk:60" );
+ this.cmbImageSize.add( "vcpus:8 ram:2048 disk:80" );
+ this.cmbImageSize.add( "vcpus:8 ram:2048 disk:100" );
+ this.cmbImageSize.add( "vcpus:8 ram:4096 disk:5" );
+ this.cmbImageSize.add( "vcpus:8 ram:4096 disk:10" );
+ this.cmbImageSize.add( "vcpus:8 ram:4096 disk:20" );
+ this.cmbImageSize.add( "vcpus:8 ram:4096 disk:40" );
+ this.cmbImageSize.add( "vcpus:8 ram:4096 disk:60" );
+ this.cmbImageSize.add( "vcpus:8 ram:4096 disk:80" );
+ this.cmbImageSize.add( "vcpus:8 ram:4096 disk:100" );
+ this.cmbImageSize.add( "vcpus:8 ram:8192 disk:5" );
+ this.cmbImageSize.add( "vcpus:8 ram:8192 disk:10" );
+ this.cmbImageSize.add( "vcpus:8 ram:8192 disk:20" );
+ this.cmbImageSize.add( "vcpus:8 ram:8192 disk:40" );
+ this.cmbImageSize.add( "vcpus:8 ram:8192 disk:60" );
+ this.cmbImageSize.add( "vcpus:8 ram:8192 disk:80" );
+ this.cmbImageSize.add( "vcpus:8 ram:8192 disk:100" );
+ this.cmbImageSize.add( "vcpus:1 ram:6144 disk:100" );
+ this.cmbImageSize.add( "vcpus:1 ram:6144 disk:100" );
+ this.cmbImageSize.add( "vcpus:2 ram:6144 disk:100" );
+ this.cmbImageSize.add( "vcpus:2 ram:6144 disk:100" );
+ this.cmbImageSize.add( "vcpus:2 ram:6144 disk:80" );
+ this.cmbImageSize.add( "vcpus:2 ram:6144 disk:60" );
+ this.cmbImageSize.add( "vcpus:2 ram:6144 disk:40" );
+ this.cmbImageSize.add( "vcpus:2 ram:6144 disk:40" );
+ this.cmbImageSize.add( "vcpus:2 ram:6144 disk:60" );
+ this.cmbImageSize.add( "vcpus:2 ram:6144 disk:80" );
+ this.cmbImageSize.add( "vcpus:1 ram:6144 disk:5" );
+ this.cmbImageSize.add( "vcpus:1 ram:6144 disk:10" );
+ this.cmbImageSize.add( "vcpus:1 ram:6144 disk:20" );
+ this.cmbImageSize.add( "vcpus:1 ram:6144 disk:40" );
+ this.cmbImageSize.add( "vcpus:1 ram:6144 disk:60" );
+ this.cmbImageSize.add( "vcpus:1 ram:6144 disk:80" );
+ this.cmbImageSize.add( "vcpus:1 ram:6144 disk:5" );
+ this.cmbImageSize.add( "vcpus:1 ram:6144 disk:10" );
+ this.cmbImageSize.add( "vcpus:1 ram:6144 disk:20" );
+ this.cmbImageSize.add( "vcpus:1 ram:6144 disk:40" );
+ this.cmbImageSize.add( "vcpus:1 ram:6144 disk:60" );
+ this.cmbImageSize.add( "vcpus:1 ram:6144 disk:80" );
+ this.cmbImageSize.add( "vcpus:2 ram:6144 disk:5" );
+ this.cmbImageSize.add( "vcpus:2 ram:6144 disk:10" );
+ this.cmbImageSize.add( "vcpus:2 ram:6144 disk:20" );
+ this.cmbImageSize.add( "vcpus:2 ram:6144 disk:5" );
+ this.cmbImageSize.add( "vcpus:2 ram:6144 disk:10" );
+ this.cmbImageSize.add( "vcpus:2 ram:6144 disk:20" );
+ this.cmbImageSize.add( "vcpus:4 ram:6144 disk:5" );
+ this.cmbImageSize.add( "vcpus:4 ram:6144 disk:10" );
+ this.cmbImageSize.add( "vcpus:4 ram:6144 disk:20" );
+ this.cmbImageSize.add( "vcpus:4 ram:6144 disk:40" );
+ this.cmbImageSize.add( "vcpus:4 ram:6144 disk:60" );
+ this.cmbImageSize.add( "vcpus:4 ram:6144 disk:80" );
+ this.cmbImageSize.add( "vcpus:4 ram:6144 disk:100" );
+ this.cmbImageSize.add( "vcpus:4 ram:6144 disk:5" );
+ this.cmbImageSize.add( "vcpus:4 ram:6144 disk:10" );
+ this.cmbImageSize.add( "vcpus:4 ram:6144 disk:20" );
+ this.cmbImageSize.add( "vcpus:4 ram:6144 disk:40" );
+ this.cmbImageSize.add( "vcpus:4 ram:6144 disk:60" );
+ this.cmbImageSize.add( "vcpus:4 ram:6144 disk:80" );
+ this.cmbImageSize.add( "vcpus:4 ram:6144 disk:100" );
+ this.cmbImageSize.add( "vcpus:8 ram:6144 disk:5" );
+ this.cmbImageSize.add( "vcpus:8 ram:6144 disk:10" );
+ this.cmbImageSize.add( "vcpus:8 ram:6144 disk:20" );
+ this.cmbImageSize.add( "vcpus:8 ram:6144 disk:40" );
+ this.cmbImageSize.add( "vcpus:8 ram:6144 disk:60" );
+ this.cmbImageSize.add( "vcpus:8 ram:6144 disk:80" );
+ this.cmbImageSize.add( "vcpus:8 ram:6144 disk:100" );
+ this.cmbImageSize.add( "vcpus:8 ram:6144 disk:5" );
+ this.cmbImageSize.add( "vcpus:8 ram:6144 disk:10" );
+ this.cmbImageSize.add( "vcpus:8 ram:6144 disk:20" );
+ this.cmbImageSize.add( "vcpus:8 ram:6144 disk:40" );
+ this.cmbImageSize.add( "vcpus:8 ram:6144 disk:60" );
+ this.cmbImageSize.add( "vcpus:8 ram:6144 disk:80" );
+ this.cmbImageSize.add( "vcpus:8 ram:6144 disk:100" );
+ this.cmbImageSize.add( "vcpus:8 ram:6144 disk:diskdump" );
+ this.cmbImageSize.add( "vcpus:8 ram:6144 disk:diskdump" );
+ this.cmbImageSize.add( "vcpus:8 ram:6144 disk:diskdump" );
+ this.cmbImageSize.add( "vcpus:8 ram:6144 disk:diskdump" );
+ this.cmbImageSize.add( "vcpus:8 ram:6144 disk:diskdump" );
+ this.cmbImageSize.add( "vcpus:8 ram:6144 disk:diskdump" );
+ ///////////////////////////////////////////////////////
+ this.cmbImageSize.setEditable( false );
+ gd = new GridData();
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
+ gd.horizontalSpan = 2;
+ gd.widthHint = 200;
+ this.cmbImageSize.setLayoutData( gd );
+ // Listener for Flavor
+ this.cmbImageSize.addSelectionListener( new SelectionListener() {
+
+ @Override
+ public void widgetSelected( final SelectionEvent e ) {
+ createNodeFlavorProperties( ApplicationComponentNameSection.this.cmbImageSize.getText() );
+ }
+
+ @Override
+ public void widgetDefaultSelected( final SelectionEvent e ) {
+ // TODO Auto-generated method stub
+ }
+ } );
+ // KeyPair Label
+ CLabel keypairLabel = factory.createCLabel( client, "Keypair:" ); //$NON-NLS-1$
+ gd = new GridData();
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ gd.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
+ gd.widthHint = 80;
+ keypairLabel.setLayoutData( gd );
+ // KeyPair text
+ this.keypairText = factory.createText( client, "" ); //$NON-NLS-1$
+ this.keypairText.setEditable( true );
+ gd = new GridData();
+ gd.widthHint = 160;
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
+ this.keypairText.setLayoutData( gd );
+ this.keypairText.addModifyListener( this );
+ // Select KeyPair Button
+ this.keypairSelect = new Button( client, SWT.PUSH );
+ this.keypairSelect.setText( " Select... " ); //$NON-NLS-1$
+ gd = new GridData();
+ gd.widthHint = 80;
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ this.keypairSelect.setLayoutData( gd );
+ // Listener for Add button
+ this.keypairSelect.addSelectionListener( new SelectionListener() {
+
+ @Override
+ public void widgetSelected( final SelectionEvent e ) {
+ FileDialog dialog = new FileDialog( parent.getShell(), SWT.OPEN );
+ dialog.setText( "Select Keypair " ); //$NON-NLS-1$
+ dialog.setFilterExtensions( new String[]{
+ "*.pub"} ); // filter only pub keys //$NON-NLS-1$
+ // dialog.setFilterPath("c:\\temp");
+ String result = dialog.open();
+ if( result != null ) {
+ CreateVMIFeature createImageFeature = new CreateVMIFeature( new ToscaFeatureProvider( getDiagramTypeProvider() ) );
+ TDeploymentArtifact deploymentArtifact = ToscaFactory.eINSTANCE.createTDeploymentArtifact();
+ deploymentArtifact.setName( dialog.getFileName() );
+ deploymentArtifact.setArtifactType( new QName( "KeyPair" ) ); //$NON-NLS-1$
+ createImageFeature.setContextObject( deploymentArtifact );
+ CreateContext createContext = new CreateContext();
+ createContext.setTargetContainer( ( ContainerShape )getSelectedPictogramElement() );
+ if( createImageFeature.canCreate( createContext ) )
+ createImageFeature.create( createContext );
+ refresh();
+ // Add uploaded image to Project Artifacts folder
+ IWorkbenchPage activePage = PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow()
+ .getActivePage();
+ IEditorInput input = activePage.getActiveEditor().getEditorInput();
+ IFile file = null;
+ if( input instanceof ToscaDiagramEditorInput ) {
+ file = ( ( ToscaDiagramEditorInput )input ).getToscaFile();
+ }
+ IProject project = file.getProject();
+ String target = Platform.getLocation()
+ + System.getProperty( "file.separator" ) + project.getName() + System.getProperty( "file.separator" ) + "Artifacts" +System.getProperty( "file.separator" )+"Deployment Scripts"+System.getProperty( "file.separator" ) + dialog.getFileName(); //$NON-NLS-1$ //$NON-NLS-2$
+ String source = dialog.getFilterPath()
+ + System.getProperty( "file.separator" ) + dialog.getFileName(); //$NON-NLS-1$
+ File targetFile = new File( target );
+ if( !targetFile.exists() ) {
try {
- tmp.createNewFile();
- } catch( IOException e1 ) {
- // TODO Auto-generated catch block
+ new LocalFile( new File( source ) ).copy( new LocalFile( new File( target ) ),
+ EFS.NONE,
+ null );
+ } catch( CoreException e1 ) {
e1.printStackTrace();
}
-
- // Get image Id
- BufferedReader reader = null;
- try {
- reader = new BufferedReader( new FileReader (new File(result)));
- } catch( FileNotFoundException e3 ) {
- // TODO Auto-generated catch block
- e3.printStackTrace();
- }
- String line = null;
- StringBuilder stringBuilder = new StringBuilder();
-
- try {
- while( ( line = reader.readLine() ) != null ) {
- stringBuilder.append( line );
- }
- } catch( IOException e1 ) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
-
- String imageId = stringBuilder.toString();
-
-
-
- copySelectedFileToCloudProject( new File(result), tmp );
-
- IProgressMonitor monitor = null;
- try {
- CloudModel.getRoot().refresh( monitor );
- } catch( ProblemException e2 ) {
- e2.printStackTrace();
- }
- // Refresh Palette Compartments
- getDiagramTypeProvider().getFeatureProvider()
- .getDiagramTypeProvider()
- .getDiagramBehavior()
- .refreshPalette();
-
-
- CreateVMIFeature createImageFeature = new CreateVMIFeature( new ToscaFeatureProvider( getDiagramTypeProvider() ) );
- TDeploymentArtifact deploymentArtifact = ToscaFactory.eINSTANCE.createTDeploymentArtifact();
- deploymentArtifact.setName( dialog.getFileName());
- deploymentArtifact.setArtifactRef( new QName (imageId) );
- deploymentArtifact.setArtifactType( new QName( "VMI" ) ); //$NON-NLS-1$
- createImageFeature.setContextObject( deploymentArtifact );
- CreateContext createContext = new CreateContext();
- createContext.setTargetContainer( ( ContainerShape )getSelectedPictogramElement() );
- if( createImageFeature.canCreate( createContext ) )
- createImageFeature.create( createContext );
- refresh();
-
}
- }
-
- @Override
- public void widgetDefaultSelected( final SelectionEvent e ) {
- // TODO Auto-generated method stub
- }
- } );
- // VM Description Label
- CLabel vmDecsrLabel = factory.createCLabel( client, "VM Description:" ); //$NON-NLS-1$
- gd = new GridData();
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gd.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
- gd.widthHint = 80;
- // gd.widthHint=STANDARD_LABEL_WIDTH;
- // VM Description text
- vmDecsrLabel.setLayoutData( gd );
- this.descrText = factory.createText( client, "" ); //$NON-NLS-1$
- this.descrText.setEditable( false );
- gd = new GridData();
- gd.horizontalSpan = 2;
- gd.widthHint = 160;
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
- this.descrText.setLayoutData( gd );
- // VM Image Flavor label
- CLabel vmImageLabel = factory.createCLabel( client, "VM Type:" ); //$NON-NLS-1$
- gd = new GridData();
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gd.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
- gd.widthHint = 80;
- vmImageLabel.setLayoutData( gd );
- // Combo - VM Image Flavor
- this.cmbImageSize = new CCombo( client, SWT.BORDER );
- this.cmbImageSize.setEnabled( true );
-
- // // TODO - nickl For now use Amazon Flavors - get them from IS
- ArrayList<VirtualMachineImageFlavor> flavors = MockUpInfoSystem
- .getInstance().getFlavors();
-
- for (VirtualMachineImageFlavor f : flavors) {
- this.cmbImageSize.add(f.getName());
- }
-
-
- this.cmbImageSize.setEditable( false );
- gd = new GridData();
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
- gd.horizontalSpan = 2;
- gd.widthHint = 200;
- this.cmbImageSize.setLayoutData( gd );
- // Listener for Flavor
- this.cmbImageSize.addSelectionListener( new SelectionListener() {
-
- @Override
- public void widgetSelected( final SelectionEvent e ) {
- createNodeFlavorProperties( ApplicationComponentNameSection.this.cmbImageSize.getText() );
- }
-
- @Override
- public void widgetDefaultSelected( final SelectionEvent e ) {
- // TODO Auto-generated method stub
- }
- } );
- // KeyPair Label
- CLabel keypairLabel = factory.createCLabel( client, "Keypair:" ); //$NON-NLS-1$
- gd = new GridData();
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gd.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
- gd.widthHint = 80;
- keypairLabel.setLayoutData( gd );
- // KeyPair text
- this.keypairText = factory.createText( client, "" ); //$NON-NLS-1$
- this.keypairText.setEditable( true );
- gd = new GridData();
- gd.widthHint = 160;
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
- this.keypairText.setLayoutData( gd );
- this.keypairText.addModifyListener( this );
- // Select KeyPair Button
- this.keypairSelect = new Button( client, SWT.PUSH );
- this.keypairSelect.setText( " Select... " ); //$NON-NLS-1$
- gd = new GridData();
- gd.widthHint = 80;
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- this.keypairSelect.setLayoutData( gd );
- // Listener for Add button
- this.keypairSelect.addSelectionListener( new SelectionListener() {
-
- @Override
- public void widgetSelected( final SelectionEvent e ) {
- FileDialog dialog = new FileDialog( parent.getShell(), SWT.OPEN );
- dialog.setText( "Select Keypair " ); //$NON-NLS-1$
- dialog.setFilterExtensions( new String[]{
- "*.pub"} ); // filter only pub keys //$NON-NLS-1$
- // dialog.setFilterPath("c:\\temp");
- String result = dialog.open();
- if( result != null ) {
- CreateVMIFeature createImageFeature = new CreateVMIFeature( new ToscaFeatureProvider( getDiagramTypeProvider() ) );
- TDeploymentArtifact deploymentArtifact = ToscaFactory.eINSTANCE.createTDeploymentArtifact();
- deploymentArtifact.setName( dialog.getFileName() );
- deploymentArtifact.setArtifactType( new QName( "KeyPair" ) ); //$NON-NLS-1$
- createImageFeature.setContextObject( deploymentArtifact );
- CreateContext createContext = new CreateContext();
- createContext.setTargetContainer( ( ContainerShape )getSelectedPictogramElement() );
- if( createImageFeature.canCreate( createContext ) )
- createImageFeature.create( createContext );
- refresh();
- // Add uploaded image to Project Artifacts folder
- IWorkbenchPage activePage = PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow()
- .getActivePage();
- IEditorInput input = activePage.getActiveEditor().getEditorInput();
- IFile file = null;
- if( input instanceof ToscaDiagramEditorInput ) {
- file = ( ( ToscaDiagramEditorInput )input ).getToscaFile();
- }
- IProject project = file.getProject();
- String target = Platform.getLocation()
- + "/" + project.getName() + "/Artifacts/Deployment Scripts/" + dialog.getFileName(); //$NON-NLS-1$ //$NON-NLS-2$
- String source = dialog.getFilterPath()
- + System.getProperty( "file.separator" ) + dialog.getFileName(); //$NON-NLS-1$
- File targetFile = new File( target );
- if( !targetFile.exists() ) {
- try {
- new LocalFile( new File( source ) ).copy( new LocalFile( new File( target ) ),
- EFS.NONE,
- null );
- } catch( CoreException e1 ) {
- e1.printStackTrace();
- }
- }
- // File tmp = new File( targetPath );
- // try {
- // tmp.createNewFile();
- // tmp.
- // } catch( IOException e1 ) {
- // // TODO Auto-generated catch block
- // e1.printStackTrace();
- // }
- IProgressMonitor monitor = null;
- try {
- CloudModel.getRoot().refresh( monitor );
- } catch( ProblemException e2 ) {
- e2.printStackTrace();
- }
- // Refresh Palette Compartments
- getDiagramTypeProvider().getFeatureProvider()
- .getDiagramTypeProvider()
- .getDiagramBehavior()
- .refreshPalette();
- ApplicationComponentNameSection.this.keypairText.setText( dialog.getFileName() );
+ // File tmp = new File( targetPath );
+ // try {
+ // tmp.createNewFile();
+ // tmp.
+ // } catch( IOException e1 ) {
+ // // TODO Auto-generated catch block
+ // e1.printStackTrace();
+ // }
+ IProgressMonitor monitor = null;
+ try {
+ CloudModel.getRoot().refresh( monitor );
+ } catch( ProblemException e2 ) {
+ e2.printStackTrace();
}
- }
-
- @Override
- public void widgetDefaultSelected( final SelectionEvent e ) {
- // TODO Auto-generated method stub
- }
- } );
- // Add section components to the toolkit
- toolkit.adapt( vmImageLabel, true, true );
- toolkit.adapt( this.cmbImageSize, true, true );
- toolkit.adapt( valueLabel, true, true );
- toolkit.adapt( this.nameText, true, true );
- toolkit.adapt( imageLabel, true, true );
- toolkit.adapt( this.imageText, true, true );
- toolkit.adapt( keypairLabel, true, true );
- toolkit.adapt( this.keypairText, true, true );
- toolkit.adapt( vmDecsrLabel, true, true );
- toolkit.adapt( this.descrText, true, true);
- section.setClient( client );
- // Application Component Instances Section
- Section sectionInstances = toolkit.createSection( parent, Section.TITLE_BAR );
- sectionInstances.setText( "Number of Instances" ); //$NON-NLS-1$
- Composite clientInstances = toolkit.createComposite( sectionInstances,
- SWT.WRAP );
- GridLayout layoutInstances = new GridLayout();
- layoutInstances.numColumns = 2;
- layoutInstances.marginTop = 15;
- layoutInstances.verticalSpacing = 15;
- layoutInstances.marginWidth = 2;
- layoutInstances.marginHeight = 2;
- clientInstances.setLayout( layoutInstances );
- GridData gdInstances;
- CLabel initialInstancesLabel = factory.createCLabel( clientInstances,
- "Initial:" ); //$NON-NLS-1$
- gdInstances = new GridData();
- gdInstances.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gdInstances.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
- // gd.widthHint=STANDARD_LABEL_WIDTH;
- initialInstancesLabel.setLayoutData( gdInstances );
- this.initialInstancesText = factory.createText( clientInstances, "1" ); //$NON-NLS-1$
- this.initialInstancesText.setEditable( true );
- gdInstances = new GridData();
- gdInstances.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gdInstances.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
- gdInstances.widthHint = 160;
- this.initialInstancesText.setLayoutData( gdInstances );
- this.initialInstancesText.addModifyListener( this );
- CLabel minInstancesLabel = factory.createCLabel( clientInstances, "Min:" ); //$NON-NLS-1$
- gdInstances = new GridData();
- gdInstances.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gdInstances.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
- // gd.widthHint=STANDARD_LABEL_WIDTH;
- minInstancesLabel.setLayoutData( gdInstances );
- this.minInstancesText = factory.createText( clientInstances, "" ); //$NON-NLS-1$
- this.minInstancesText.setEditable( true );
- gdInstances = new GridData();
- gdInstances.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gdInstances.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
- gdInstances.widthHint = 160;
- this.minInstancesText.setLayoutData( gdInstances );
- this.minInstancesText.addModifyListener( this );
- CLabel maxInstancesLabel = factory.createCLabel( clientInstances, "Max:" ); //$NON-NLS-1$
- gdInstances = new GridData();
- gdInstances.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gdInstances.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
- // gd.widthHint=STANDARD_LABEL_WIDTH;
- maxInstancesLabel.setLayoutData( gdInstances );
- this.maxInstancesText = factory.createText( clientInstances, "" ); //$NON-NLS-1$
- this.maxInstancesText.setEditable( true );
- gdInstances = new GridData();
- gdInstances.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gdInstances.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
- gdInstances.widthHint = 160;
- this.maxInstancesText.setLayoutData( gdInstances );
- this.maxInstancesText.addModifyListener( this );
- // Add section components to the toolkit
- toolkit.adapt( valueLabel, true, true );
- toolkit.adapt( this.nameText, true, true );
- toolkit.adapt( imageLabel, true, true );
- toolkit.adapt( this.imageText, true, true );
- section.setClient( client );
- toolkit.adapt( minInstancesLabel, true, true );
- toolkit.adapt( maxInstancesLabel, true, true );
- toolkit.adapt( this.minInstancesText, true, true );
- toolkit.adapt( this.maxInstancesText, true, true );
- sectionInstances.setClient( clientInstances );
- }
-
- /*
- * Refresh values of max and min instances
- */
- void refreshInstances() {
- PictogramElement pe = getSelectedPictogramElement();
- if( pe != null ) {
- Object bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- if( bo == null )
- return;
- TNodeTemplateExtension appComponent;
- if( bo instanceof TDeploymentArtifact ) {
- PictogramElement parentPE = Graphiti.getPeService()
- .getPictogramElementParent( pe );
- appComponent = ( TNodeTemplateExtension )Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( parentPE );
- } else { // bo instanceof TNodeTemplate
- appComponent = ( TNodeTemplateExtension )bo;
- }
- String initInstances = Integer.toString( appComponent.getInitInstances() );
- this.initialInstancesText.setText( initInstances );
- String minInstances = Integer.toString( appComponent.getMinInstances() );
- String maxInstances = ( ( BigInteger )appComponent.getMaxInstances() ).toString();
- if( minInstances.compareTo( "-1" ) == 0 ) //$NON-NLS-1$
- minInstances = ""; //$NON-NLS-1$
- if( maxInstances.compareTo( "-1" ) == 0 ) //$NON-NLS-1$
- maxInstances = ""; //$NON-NLS-1$
- this.minInstancesText.setText( minInstances );
- this.maxInstancesText.setText( maxInstances );
- }
- }
-
- // Refresh Tab
- @Override
- public void refresh() {
- PictogramElement pe = getSelectedPictogramElement();
- if( pe != null ) {
- final Object bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- if( bo == null )
- return;
- TNodeTemplate appComponent;
- if( bo instanceof TDeploymentArtifact ) {
- PictogramElement parentPE = Graphiti.getPeService()
- .getPictogramElementParent( pe );
- appComponent = ( TNodeTemplate )Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( parentPE );
- } else { // bo instanceof TNodeTemplate
- appComponent = ( TNodeTemplate )bo;
- }
- String name = appComponent.getName();
- this.nameText.setText( name == null
- ? "" : name ); //$NON-NLS-1$
- // set Image Artifact
- String imageName = null;
- TDeploymentArtifacts deploymentArtifacts = appComponent.getDeploymentArtifacts();
- if( deploymentArtifacts != null ) {
- for( TDeploymentArtifact artifact : deploymentArtifacts.getDeploymentArtifact() )
- {
- if( artifact.getArtifactType().toString().equals( "VMI" ) ) { //$NON-NLS-1$
- imageName = artifact.getName();
- break;
- }
- }
- }
- this.imageText.setText( imageName == null
- ? "" : imageName ); //$NON-NLS-1$
-
- // set VM Flavor
- if ( appComponent.getProperties() != null ){
- NodePropertiesType nodeProperties = (NodePropertiesType) appComponent.getProperties().getAny().get( 0 ).getValue();
- String flavor = nodeProperties.getFlavor();
- this.cmbImageSize.setText( flavor == null
- ? "" : flavor ); //$NON-NLS-1$
- }
- else{
- this.cmbImageSize.setText( "" );
- }
-
- if( !( bo instanceof TDeploymentArtifact ) )
- refreshInstances();
- }
- }
-
- // Updates Application name or number of instances according the triggered
- // listener
- @Override
- public void modifyText( final ModifyEvent e ) {
- PictogramElement pe = getSelectedPictogramElement();
- if( pe != null ) {
- final Object bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- // the filter assured, that it is a TNodeTemplate
- if( bo == null )
- return;
- final TNodeTemplateExtension nodeTemplate;
- if( bo instanceof TDeploymentArtifact ) {
- PictogramElement parentPE = Graphiti.getPeService()
- .getPictogramElementParent( pe );
- nodeTemplate = ( TNodeTemplateExtension )Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( parentPE );
- } else { // bo instanceof TNodeTemplate
- nodeTemplate = ( TNodeTemplateExtension )bo;
- }
- // nameText Listener
- if( e.widget == this.nameText ) {
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- protected void doExecute() {
- nodeTemplate.setName( ApplicationComponentNameSection.this.nameText.getText() );
- }
- } );
- }
- // minInstancesText Listener
- else if( e.widget == this.minInstancesText ) {
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- protected void doExecute() {
- if( nodeTemplate != null ) {
- if( ApplicationComponentNameSection.this.minInstancesText.getText()
- .equals( "" ) ) { //$NON-NLS-1$
- // nodeTemplate.setMinInstances( -1 );
- } else
- nodeTemplate.setMinInstances( Integer.parseInt( ApplicationComponentNameSection.this.minInstancesText.getText() ) );
- }
- }
- } );
- }
- // maxInstancesText Listener
- else if( e.widget == this.maxInstancesText ) {
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- protected void doExecute() {
- if( ApplicationComponentNameSection.this.maxInstancesText.getText()
- .compareTo( "" ) == 0 ) { //$NON-NLS-1$
- // nodeTemplate.setMaxInstances( ( BigInteger
- // )BigInteger.valueOf(-1) );
- } else
- nodeTemplate.setMaxInstances( ( BigInteger )BigInteger.valueOf( Integer.parseInt( ApplicationComponentNameSection.this.maxInstancesText.getText() ) ) );
- }
- } );
- }
- // initialInstancesText Listener
- else if( e.widget == this.initialInstancesText ) {
- if( ApplicationComponentNameSection.this.initialInstancesText.getText()
- .compareTo( "" ) == 0 ) { //$NON-NLS-1$
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- protected void doExecute() {
- nodeTemplate.setInitInstances( 1 );
- }
- } );
- } else if( nodeTemplate.getInitInstances() != Integer.parseInt( ApplicationComponentNameSection.this.initialInstancesText.getText() ) )
- {
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- protected void doExecute() {
- nodeTemplate.setInitInstances( Integer.parseInt( ApplicationComponentNameSection.this.initialInstancesText.getText() ) );
- }
- } );
- }
+// // Refresh Palette Compartments
+// getDiagramTypeProvider().getFeatureProvider()
+// .getDiagramTypeProvider()
+// .getDiagramBehavior()
+// .refreshPalette();
+ ApplicationComponentNameSection.this.keypairText.setText( dialog.getFileName() );
}
}
- }
- private void createNodeFlavorProperties( String flavor ) {
- PictogramElement pe = getSelectedPictogramElement();
- final TNodeTemplateExtension appComponent;
+ @Override
+ public void widgetDefaultSelected( final SelectionEvent e ) {
+ // TODO Auto-generated method stub
+ }
+ } );
+ // Add section components to the toolkit
+ toolkit.adapt( vmImageLabel, true, true );
+ toolkit.adapt( this.cmbImageSize, true, true );
+ toolkit.adapt( valueLabel, true, true );
+ toolkit.adapt( this.nameText, true, true );
+ toolkit.adapt( imageLabel, true, true );
+ toolkit.adapt( this.imageText, true, true );
+ toolkit.adapt( keypairLabel, true, true );
+ toolkit.adapt( this.keypairText, true, true );
+// toolkit.adapt( vmDecsrLabel, true, true );
+// toolkit.adapt( this.descrText, true, true);
+ section.setClient( client );
+ // Application Component Instances Section
+ Section sectionInstances = toolkit.createSection( parent, Section.TITLE_BAR );
+ sectionInstances.setText( "Number of Instances" ); //$NON-NLS-1$
+ Composite clientInstances = toolkit.createComposite( sectionInstances,
+ SWT.WRAP );
+ GridLayout layoutInstances = new GridLayout();
+ layoutInstances.numColumns = 2;
+ layoutInstances.marginTop = 15;
+ layoutInstances.verticalSpacing = 15;
+ layoutInstances.marginWidth = 2;
+ layoutInstances.marginHeight = 2;
+ clientInstances.setLayout( layoutInstances );
+ GridData gdInstances;
+
+ CLabel minInstancesLabel = factory.createCLabel( clientInstances, "Min:" ); //$NON-NLS-1$
+ gdInstances = new GridData();
+ gdInstances.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ gdInstances.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
+ // gd.widthHint=STANDARD_LABEL_WIDTH;
+ minInstancesLabel.setLayoutData( gdInstances );
+ this.minInstancesText = factory.createText( clientInstances, "" ); //$NON-NLS-1$
+ this.minInstancesText.setEditable( true );
+ gdInstances = new GridData();
+ gdInstances.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ gdInstances.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
+ gdInstances.widthHint = 160;
+ this.minInstancesText.setLayoutData( gdInstances );
+ this.minInstancesText.addModifyListener( this );
+ CLabel maxInstancesLabel = factory.createCLabel( clientInstances, "Max:" ); //$NON-NLS-1$
+ gdInstances = new GridData();
+ gdInstances.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ gdInstances.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
+ // gd.widthHint=STANDARD_LABEL_WIDTH;
+ maxInstancesLabel.setLayoutData( gdInstances );
+ this.maxInstancesText = factory.createText( clientInstances, "" ); //$NON-NLS-1$
+ this.maxInstancesText.setEditable( true );
+ gdInstances = new GridData();
+ gdInstances.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ gdInstances.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
+ gdInstances.widthHint = 160;
+ this.maxInstancesText.setLayoutData( gdInstances );
+ this.maxInstancesText.addModifyListener( this );
+ // Add section components to the toolkit
+ toolkit.adapt( valueLabel, true, true );
+ toolkit.adapt( this.nameText, true, true );
+ toolkit.adapt( imageLabel, true, true );
+ toolkit.adapt( this.imageText, true, true );
+ section.setClient( client );
+ toolkit.adapt( minInstancesLabel, true, true );
+ toolkit.adapt( maxInstancesLabel, true, true );
+ toolkit.adapt( this.minInstancesText, true, true );
+ toolkit.adapt( this.maxInstancesText, true, true );
+ sectionInstances.setClient( clientInstances );
+}
+
+/*
+ * Refresh values of max and min instances
+ */
+void refreshInstances() {
+ PictogramElement pe = getSelectedPictogramElement();
+ if( pe != null ) {
Object bo = Graphiti.getLinkService()
.getBusinessObjectForLinkedPictogramElement( pe );
if( bo == null )
return;
+ TNodeTemplateExtension appComponent;
if( bo instanceof TDeploymentArtifact ) {
PictogramElement parentPE = Graphiti.getPeService()
.getPictogramElementParent( pe );
@@ -678,75 +819,221 @@
} else { // bo instanceof TNodeTemplate
appComponent = ( TNodeTemplateExtension )bo;
}
- // Create Flavor Properties
- NodePropertiesType nodeProperties = Tosca_Elasticity_ExtensionsFactory.eINSTANCE.createNodePropertiesType();
- nodeProperties.setFlavor( flavor );
- // Set the Properties of the Policy Template
- final PropertiesType properties = ToscaFactory.eINSTANCE.createPropertiesType();
- // Add the SYBL Policy to the FeatureMap of the Policy's Properties element
- Entry e = FeatureMapUtil.createEntry( Tosca_Elasticity_ExtensionsPackage.eINSTANCE.getDocumentRoot_NodeProperties(),
- nodeProperties );
- properties.getAny().add( e );
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( appComponent );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
- @Override
- protected void doExecute() {
- appComponent.setProperties( properties );
+ String minInstances = Integer.toString( appComponent.getMinInstances() );
+ String maxInstances = ( ( BigInteger )appComponent.getMaxInstances() ).toString();
+ if( minInstances.compareTo( "-1" ) == 0 ) //$NON-NLS-1$
+ minInstances = ""; //$NON-NLS-1$
+ if( maxInstances.compareTo( "-1" ) == 0 ) //$NON-NLS-1$
+ maxInstances = ""; //$NON-NLS-1$
+ this.minInstancesText.setText( minInstances );
+ this.maxInstancesText.setText( maxInstances );
+ }
+}
+
+// Refresh Tab
+@Override
+public void refresh() {
+ PictogramElement pe = getSelectedPictogramElement();
+ if( pe != null ) {
+ final Object bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ if( bo == null )
+ return;
+ TNodeTemplate appComponent;
+ if( bo instanceof TDeploymentArtifact ) {
+ PictogramElement parentPE = Graphiti.getPeService()
+ .getPictogramElementParent( pe );
+ appComponent = ( TNodeTemplate )Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( parentPE );
+ } else { // bo instanceof TNodeTemplate
+ appComponent = ( TNodeTemplate )bo;
+ }
+ String name = appComponent.getName();
+ this.nameText.setText( name == null
+ ? "" : name ); //$NON-NLS-1$
+ // set Image Artifact
+ String imageName = null;
+ TDeploymentArtifacts deploymentArtifacts = appComponent.getDeploymentArtifacts();
+ if( deploymentArtifacts != null ) {
+ for( TDeploymentArtifact artifact : deploymentArtifacts.getDeploymentArtifact() )
+ {
+ if( artifact.getArtifactType().getLocalPart().equals( imageType ) ) { //$NON-NLS-1$
+ imageName = artifact.getName();
+ break;
}
- } );
- }
-
- @Override
- public void widgetSelected( SelectionEvent e ) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void widgetDefaultSelected( SelectionEvent e ) {
- // TODO Auto-generated method stub
-
- }
-
- private void copySelectedFileToCloudProject(File source, File destination){
-
- InputStream selection = null;
- OutputStream output = null;
- try {
- try {
- selection = new FileInputStream(source);
- } catch( FileNotFoundException e ) {
- // TODO Auto-generated catch block
- e.printStackTrace();
}
+ }
+ this.imageText.setText( imageName == null
+ ? "" : imageName ); //$NON-NLS-1$
+
+ // set VM Flavor
+ if ( appComponent.getProperties() != null ){
+ NodePropertiesType nodeProperties = (NodePropertiesType) appComponent.getProperties().getAny().get( 0 ).getValue();
+ String flavor = nodeProperties.getFlavor();
+ this.cmbImageSize.setText( flavor == null
+ ? "" : flavor ); //$NON-NLS-1$
+ }
+ else{
+ this.cmbImageSize.setText( "" );
+ }
+
+ if( !( bo instanceof TDeploymentArtifact ) )
+ refreshInstances();
+ }
+}
+
+// Updates Application name or number of instances according the triggered
+// listener
+@Override
+public void modifyText( final ModifyEvent e ) {
+ PictogramElement pe = getSelectedPictogramElement();
+ if( pe != null ) {
+ final Object bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ // the filter assured, that it is a TNodeTemplate
+ if( bo == null )
+ return;
+ final TNodeTemplateExtension nodeTemplate;
+ if( bo instanceof TDeploymentArtifact ) {
+ PictogramElement parentPE = Graphiti.getPeService()
+ .getPictogramElementParent( pe );
+ nodeTemplate = ( TNodeTemplateExtension )Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( parentPE );
+ } else { // bo instanceof TNodeTemplate
+ nodeTemplate = ( TNodeTemplateExtension )bo;
+ }
+ // nameText Listener
+ if( e.widget == this.nameText ) {
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
+
+ protected void doExecute() {
+ nodeTemplate.setName( ApplicationComponentNameSection.this.nameText.getText() );
+ }
+ } );
+ }
+ // minInstancesText Listener
+ else if( e.widget == this.minInstancesText ) {
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
+
+ protected void doExecute() {
+ if( nodeTemplate != null ) {
+ if( ApplicationComponentNameSection.this.minInstancesText.getText()
+ .equals( "" ) ) { //$NON-NLS-1$
+ // nodeTemplate.setMinInstances( -1 );
+ } else
+ nodeTemplate.setMinInstances( Integer.parseInt( ApplicationComponentNameSection.this.minInstancesText.getText() ) );
+ }
+ }
+ } );
+ }
+ // maxInstancesText Listener
+ else if( e.widget == this.maxInstancesText ) {
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
+
+ protected void doExecute() {
+ if( ApplicationComponentNameSection.this.maxInstancesText.getText()
+ .compareTo( "" ) == 0 ) { //$NON-NLS-1$
+ // nodeTemplate.setMaxInstances( ( BigInteger
+ // )BigInteger.valueOf(-1) );
+ } else
+ nodeTemplate.setMaxInstances( ( BigInteger )BigInteger.valueOf( Integer.parseInt( ApplicationComponentNameSection.this.maxInstancesText.getText() ) ) );
+ }
+ } );
+ }
+ }
+}
+
+private void createNodeFlavorProperties( String flavor ) {
+ PictogramElement pe = getSelectedPictogramElement();
+ final TNodeTemplateExtension appComponent;
+ Object bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ if( bo == null )
+ return;
+ if( bo instanceof TDeploymentArtifact ) {
+ PictogramElement parentPE = Graphiti.getPeService()
+ .getPictogramElementParent( pe );
+ appComponent = ( TNodeTemplateExtension )Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( parentPE );
+ } else { // bo instanceof TNodeTemplate
+ appComponent = ( TNodeTemplateExtension )bo;
+ }
+ // Create Flavor Properties
+ NodePropertiesType nodeProperties = Tosca_Elasticity_ExtensionsFactory.eINSTANCE.createNodePropertiesType();
+ nodeProperties.setFlavor( flavor );
+ // Set the Properties of the Policy Template
+ final PropertiesType properties = ToscaFactory.eINSTANCE.createPropertiesType();
+ // Add the SYBL Policy to the FeatureMap of the Policy's Properties element
+ Entry e = FeatureMapUtil.createEntry( Tosca_Elasticity_ExtensionsPackage.eINSTANCE.getDocumentRoot_NodeProperties(),
+ nodeProperties );
+ properties.getAny().add( e );
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( appComponent );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
+
+ @Override
+ protected void doExecute() {
+ appComponent.setProperties( properties );
+ }
+ } );
+}
+
+@Override
+public void widgetSelected( SelectionEvent e ) {
+ // TODO Auto-generated method stub
+
+}
+
+@Override
+public void widgetDefaultSelected( SelectionEvent e ) {
+ // TODO Auto-generated method stub
+
+}
+
+private void copySelectedFileToCloudProject(File source, File destination){
+
+ InputStream selection = null;
+ OutputStream output = null;
+ try {
try {
- output = new FileOutputStream(destination);
+ selection = new FileInputStream(source);
} catch( FileNotFoundException e ) {
// TODO Auto-generated catch block
e.printStackTrace();
}
- byte[] buf = new byte[1024];
- int bytesRead;
- try {
- while ((bytesRead = selection.read(buf)) > 0) {
- output.write(buf, 0, bytesRead);
- }
+ try {
+ output = new FileOutputStream(destination);
+ } catch( FileNotFoundException e ) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ byte[] buf = new byte[1024];
+ int bytesRead;
+ try {
+ while ((bytesRead = selection.read(buf)) > 0) {
+ output.write(buf, 0, bytesRead);
+ }
+ } catch( IOException e ) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ } finally {
+ try {
+ selection.close();
+ output.close();
} catch( IOException e ) {
// TODO Auto-generated catch block
e.printStackTrace();
}
- } finally {
- try {
- selection.close();
- output.close();
- } catch( IOException e ) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- }
-
+
}
+
+}
}
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/property/ApplicationComponentScriptSection.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/property/ApplicationComponentScriptSection.java
index b912bd4..66946d6 100644
--- a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/property/ApplicationComponentScriptSection.java
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/property/ApplicationComponentScriptSection.java
@@ -25,18 +25,28 @@
import org.eclipse.camf.core.model.CloudModel;
import org.eclipse.camf.core.reporting.ProblemException;
+import org.eclipse.camf.tosca.DefinitionsType;
+import org.eclipse.camf.tosca.DocumentRoot;
+import org.eclipse.camf.tosca.TArtifactReference;
+import org.eclipse.camf.tosca.TArtifactTemplate;
import org.eclipse.camf.tosca.TDeploymentArtifact;
import org.eclipse.camf.tosca.TDeploymentArtifacts;
import org.eclipse.camf.tosca.ToscaFactory;
+import org.eclipse.camf.tosca.editor.ModelHandler;
import org.eclipse.camf.tosca.editor.ToscaDiagramEditor;
+import org.eclipse.camf.tosca.editor.ToscaModelLayer;
import org.eclipse.camf.tosca.editor.diagram.ToscaFeatureProvider;
import org.eclipse.camf.tosca.editor.features.CreateSoftwareDependencyFeature;
import org.eclipse.camf.tosca.elasticity.TNodeTemplateExtension;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.graphiti.features.context.impl.CreateContext;
import org.eclipse.graphiti.mm.pictograms.ContainerShape;
import org.eclipse.graphiti.mm.pictograms.PictogramElement;
@@ -60,240 +70,240 @@
* Application Component Properties - Custom Scripts Tab
*/
public class ApplicationComponentScriptSection extends GFPropertySection
- implements ITabbedPropertyConstants, ModifyListener
+implements ITabbedPropertyConstants, ModifyListener
{
- Section section;
- private Text deploymentScriptText;
+Section section;
+private Text deploymentScriptText;
- @Override
- public void createControls( Composite parent,
- TabbedPropertySheetPage tabbedPropertySheetPage )
- {
- super.createControls( parent, tabbedPropertySheetPage );
- // TabbedPropertySheetWidgetFactory factory = getWidgetFactory();
- FormToolkit toolkit = new FormToolkit( parent.getDisplay() );
- this.section = toolkit.createSection( parent, Section.TITLE_BAR );
- this.section.setText( "Deployment Script" ); //$NON-NLS-1$
- Composite client = toolkit.createComposite( this.section, SWT.WRAP );
+@Override
+public void createControls( Composite parent,
+ TabbedPropertySheetPage tabbedPropertySheetPage )
+{
+ super.createControls( parent, tabbedPropertySheetPage );
+ // TabbedPropertySheetWidgetFactory factory = getWidgetFactory();
+ FormToolkit toolkit = new FormToolkit( parent.getDisplay() );
+ this.section = toolkit.createSection( parent, Section.TITLE_BAR );
+ this.section.setText( "Deployment Script" ); //$NON-NLS-1$
+ Composite client = toolkit.createComposite( this.section, SWT.WRAP );
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 1;
+ layout.marginTop = 15;
+ layout.marginWidth = 2;
+ layout.marginHeight = 2;
+ client.setLayout( layout );
+ TabbedPropertySheetWidgetFactory factory = getWidgetFactory();
+ deploymentScriptText = factory.createText( client,
+ "", SWT.V_SCROLL | SWT.H_SCROLL ); //$NON-NLS-1$
+ GridData gd = new GridData();
+ gd.widthHint = 1100;
+ gd.heightHint = 150;
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
+ this.deploymentScriptText.setLayoutData( gd );
+ deploymentScriptText.addModifyListener( this );
+ // Add section components to the toolkit
+ toolkit.adapt( this.deploymentScriptText, true, true );
+ this.section.setClient( client );
+}
- GridLayout layout = new GridLayout();
- layout.numColumns = 1;
- layout.marginTop = 15;
- layout.marginWidth = 2;
- layout.marginHeight = 2;
- client.setLayout( layout );
-
- TabbedPropertySheetWidgetFactory factory = getWidgetFactory();
-
- deploymentScriptText = factory.createText(client, "", SWT.V_SCROLL | SWT.H_SCROLL ); //$NON-NLS-1$
-
- GridData gd = new GridData();
- gd.widthHint = 1100;
- gd.heightHint = 150;
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
-
- this.deploymentScriptText.setLayoutData( gd );
-
-
- deploymentScriptText.addModifyListener( this );
-
- // Add section components to the toolkit
- toolkit.adapt( this.deploymentScriptText, true, true );
- this.section.setClient( client );
- }
-
-
-
- /*
- * Refresh Tab(non-Javadoc)
- * @see org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#refresh()
- */
- @Override
- public void refresh() {
-
-
- PictogramElement pe = getSelectedPictogramElement();
- TNodeTemplateExtension appComponent = null;
- if( pe != null ) {
- Object bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- if( bo == null )
- return;
-
- if ( bo instanceof TDeploymentArtifact ){
- PictogramElement parentPE = Graphiti.getPeService().getPictogramElementParent( pe );
-
- appComponent = ( TNodeTemplateExtension ) Graphiti.getLinkService().getBusinessObjectForLinkedPictogramElement( parentPE );
- }
- else { // bo instanceof TNodeTemplate
- appComponent = ( TNodeTemplateExtension )bo;
- }
- }
-
- String fileName = null;
- TDeploymentArtifacts deploymentArtifacts = appComponent.getDeploymentArtifacts();
- if ( deploymentArtifacts != null ){
- for ( TDeploymentArtifact artifact : deploymentArtifacts.getDeploymentArtifact() ){
- if ( artifact.getArtifactType().toString().equals( "UA" )){
- fileName = artifact.getName();
- break;
- }
- }
- }
-
- IProject activeProject = ToscaDiagramEditor.getActiveProject();
-
- if ( activeProject != null ){
-
- IFile file = activeProject.getFile( new Path("/Artifacts/Deployment Scripts/" + fileName));
-
- if ( file.exists() == true ){
- //Convert deployment script file to String
- BufferedReader br = null;
- StringBuilder sb = new StringBuilder();
- String line;
-
- try {
- br = new BufferedReader(new InputStreamReader(file.getContents()));
- } catch( CoreException e1 ) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
-
- try {
- while ((line = br.readLine()) != null) {
- sb.append(line + "\n");
- }
- } catch( IOException e1 ) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
-
- this.deploymentScriptText.setText(sb.toString());
- }
- else{
- this.deploymentScriptText.setText( "" );
- }
- }
-
- }
-
- @Override
- public void modifyText( ModifyEvent e ) {
-
- if ( this.deploymentScriptText.getText().equals("") ){
- // this is also the case where the Deployment Script tab is preopened
+/*
+ * Refresh Tab(non-Javadoc)
+ * @see
+ * org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#refresh()
+ */
+@Override
+public void refresh() {
+ PictogramElement pe = getSelectedPictogramElement();
+ PictogramElement parentPE = Graphiti.getPeService()
+ .getPictogramElementParent( pe );
+ TNodeTemplateExtension appComponent = null;
+ if( pe != null ) {
+ Object bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ if( bo == null )
return;
+ if( bo instanceof TArtifactTemplate ) {
+ appComponent = ( TNodeTemplateExtension )Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( parentPE );
+ } else { // bo instanceof TNodeTemplate
+ appComponent = ( TNodeTemplateExtension )bo;
}
-
- PictogramElement pe = getSelectedPictogramElement();
- TNodeTemplateExtension appComponent = null;
- if( pe != null ) {
- Object bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- if( bo == null )
- return;
-
- if ( bo instanceof TDeploymentArtifact ){
- PictogramElement parentPE = Graphiti.getPeService().getPictogramElementParent( pe );
-
- appComponent = ( TNodeTemplateExtension ) Graphiti.getLinkService().getBusinessObjectForLinkedPictogramElement( parentPE );
- }
- else { // bo instanceof TNodeTemplate
- appComponent = ( TNodeTemplateExtension )bo;
- }
- }
-
- IProject activeProject = ToscaDiagramEditor.getActiveProject();
-
- if ( activeProject != null ){
-
- String fileName = appComponent.getName() + " Deployment.sh";
-
- IFile file = activeProject.getFile( new Path("/Artifacts/Deployment Scripts/" + fileName));
-
- if ( !file.exists() ){
- file = createDeploymentScript(activeProject);
- }
- else{
- try {
- file.setContents( new ByteArrayInputStream(this.deploymentScriptText.getText().getBytes()), false, false, null );
- } catch( CoreException e1 ) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- }
-
-
- }
-
}
- // Creates the Application Deployment file
- public IFile createDeploymentScript(IProject activeProject) {
-
- IFile file = null;
-
- PictogramElement pe = getSelectedPictogramElement();
- TNodeTemplateExtension appComponent = null;
- if( pe != null ) {
- Object bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- if( bo == null )
- return null;
-
- if ( bo instanceof TDeploymentArtifact ){
- PictogramElement parentPE = Graphiti.getPeService().getPictogramElementParent( pe );
- pe = parentPE;
- appComponent = ( TNodeTemplateExtension ) Graphiti.getLinkService().getBusinessObjectForLinkedPictogramElement( parentPE );
-
- }
- else { // bo instanceof TNodeTemplate
- appComponent = ( TNodeTemplateExtension )bo;
- }
- }
-
- String fileName = appComponent.getName() + "Deployment";
-
- file = activeProject.getFile( new Path("/Artifacts/Deployment Scripts/" + fileName));
- try {
- file.create(new ByteArrayInputStream(this.deploymentScriptText.getText().getBytes()), false, null);
- } catch (CoreException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- return null;
- }
-
-
- IProgressMonitor monitor = null;
+ String fileName = findImplementationArtifactName(appComponent.getName()+"Script");
+// String fileName = null;
+// // Find NodeTypeImplementation
+// ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI(
+// getDiagram() ) );
+// DocumentRoot dr = model.getDocumentRoot();
+// DefinitionsType dt = dr.getDefinitions();
+// EList<TNodeTypeImplementation> nodeTypesImplementation =
+// dt.getNodeTypeImplementation();
+// EList<TArtifactTemplate> artifactTemplates = dt.getArtifactTemplate();
+// TNodeTypeImplementation nodeTypeImplementation = null;
+// for (TNodeTypeImplementation tempNodeImplementation :
+// nodeTypesImplementation){
+// if (appComponent.getName().equals(
+// tempNodeImplementation.getNodeType().toString())){
+// nodeTypeImplementation = tempNodeImplementation;
+// break;
+// }
+// }
+// if (nodeTypeImplementation!=null &&
+// nodeTypeImplementation.getImplementationArtifacts()!=null){
+// EList<ImplementationArtifactType> implementationArtifacts =
+// nodeTypeImplementation.getImplementationArtifacts().getImplementationArtifact();
+// for (ImplementationArtifactType tempImplementationArtifact :
+// implementationArtifacts){
+// for (TArtifactTemplate tempArtifactTemplate : artifactTemplates){
+// if
+// (tempArtifactTemplate.getId().equals(tempImplementationArtifact.getArtifactRef().toString())){
+// fileName=tempArtifactTemplate.getId();
+// break;
+// }
+// }
+//
+// }
+// }
+ //fileName = appComponent.getName() + "Deployment.sh";
+ IProject activeProject = ToscaDiagramEditor.getActiveProject();
+ if( activeProject != null ) {
+ IFile file = activeProject.getFile( new Path( "/Artifacts/Deployment Scripts/"
+ + fileName ) );
+ if( file.exists() == true ) {
+ // if ( file.exists() == true ){
+ // Convert deployment script file to String
+ BufferedReader br = null;
+ StringBuilder sb = new StringBuilder();
+ String line;
try {
- CloudModel.getRoot().refresh( monitor );
- } catch( ProblemException e ) {
- e.printStackTrace();
+ br = new BufferedReader( new InputStreamReader( file.getContents() ) );
+ } catch( CoreException e1 ) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
}
-
- // Refresh Palette Compartments
- getDiagramTypeProvider().getFeatureProvider().getDiagramTypeProvider().getDiagramBehavior().refreshPalette();
-
- // Call the Create User Application Feature to create a deployment artifact for the deployment script and add it to the artifacts list
- CreateSoftwareDependencyFeature createSDFeature = new CreateSoftwareDependencyFeature( new ToscaFeatureProvider(getDiagramTypeProvider()) );
-
- TDeploymentArtifact deploymentArtifact = ToscaFactory.eINSTANCE.createTDeploymentArtifact();
- deploymentArtifact.setName( fileName );
- deploymentArtifact.setArtifactType( new QName( "SD" ) );
-
- createSDFeature.setContextObject( deploymentArtifact );
-
- CreateContext createContext = new CreateContext();
- createContext.setTargetContainer( (ContainerShape) pe );
-
- if ( createSDFeature.canCreate( createContext ))
- createSDFeature.create( createContext );
-
- return file;
-
+ try {
+ while( ( line = br.readLine() ) != null ) {
+ sb.append( line + "\n" );
+ }
+ } catch( IOException e1 ) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ this.deploymentScriptText.setText( sb.toString() );
+ } else {
+ this.deploymentScriptText.setText( "" );
+ }
+ }
+}
+
+@Override
+public void modifyText( ModifyEvent e ) {
+ if( this.deploymentScriptText.getText().equals( "" ) ) {
+ // this is also the case where the Deployment Script tab is preopened
+ return;
+ }
+ IProject activeProject = ToscaDiagramEditor.getActiveProject();
+ if( activeProject != null ) {
+ createDeploymentScript( activeProject );
+ }
+}
+
+// Creates the Application Deployment file
+public IFile createDeploymentScript( IProject activeProject ) {
+ IFile file = null;
+ PictogramElement pe = getSelectedPictogramElement();
+ TNodeTemplateExtension appComponent = null;
+ if( pe != null ) {
+ Object bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ if( bo == null )
+ return null;
+ if( bo instanceof TDeploymentArtifact ) {
+ PictogramElement parentPE = Graphiti.getPeService()
+ .getPictogramElementParent( pe );
+ pe = parentPE;
+ appComponent = ( TNodeTemplateExtension )Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( parentPE );
+ } else { // bo instanceof TNodeTemplate
+ appComponent = ( TNodeTemplateExtension )bo;
+ }
+ }
+ String fileName = appComponent.getName() + "Deployment.sh";
+ file = activeProject.getFile( new Path( "/Artifacts/Deployment Scripts/"
+ + fileName ) );
+ if( file.exists() ) {
+ // Deployment file exists, update its contents
+ try {
+ file.setContents( new ByteArrayInputStream( this.deploymentScriptText.getText()
+ .getBytes() ),
+ false,
+ false,
+ null );
+ } catch( CoreException e1 ) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ return null;
+ }
+ // Deployment file does not exists, create one
+ try {
+ file.create( new ByteArrayInputStream( this.deploymentScriptText.getText()
+ .getBytes() ),
+ false,
+ null );
+ } catch( CoreException e1 ) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ return null;
+ }
+ try {
+ activeProject.refreshLocal( IResource.DEPTH_INFINITE,
+ new NullProgressMonitor() );
+ } catch( CoreException e1 ) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ IProgressMonitor monitor = null;
+ try {
+ CloudModel.getRoot().refresh( monitor );
+ } catch( ProblemException e ) {
+ e.printStackTrace();
+ }
+ // Refresh Palette Compartments
+ // getDiagramTypeProvider().getFeatureProvider().getDiagramTypeProvider().getDiagramBehavior().refreshPalette();
+ // Call the Create User Application Feature to create a deployment artifact
+ // for the deployment script and add it to the artifacts list
+ CreateSoftwareDependencyFeature createSDFeature = new CreateSoftwareDependencyFeature( new ToscaFeatureProvider( getDiagramTypeProvider() ) );
+ TArtifactTemplate artifactTemplate = ToscaFactory.eINSTANCE.createTArtifactTemplate();
+ artifactTemplate.setName( "SD"+fileName );
+ artifactTemplate.setId( fileName );
+ artifactTemplate.setType( new QName( "ScriptArtifact" ) );
+ createSDFeature.setContextObject( artifactTemplate );
+ CreateContext createContext = new CreateContext();
+ createContext.setTargetContainer( ( ContainerShape )pe );
+ if( createSDFeature.canCreate( createContext ) )
+ createSDFeature.create( createContext );
+ return file;
+}
+
+private String findImplementationArtifactName(String artifactId){
+ ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+ DocumentRoot dr = model.getDocumentRoot();
+ DefinitionsType dt = dr.getDefinitions();
+ EList<TArtifactTemplate> artifactTemplates =
+ dt.getArtifactTemplate();
+
+ for (TArtifactTemplate tempArtifactTemplate : artifactTemplates){
+ if (tempArtifactTemplate.getId().equals( artifactId )){
+ TArtifactReference artifactRef = tempArtifactTemplate.getArtifactReferences().getArtifactReference().get( 0 );
+ String artifactReference = artifactRef.getReference();
+ String artifactName = artifactReference.substring( artifactReference.indexOf( "\\" ) +1);
+ return artifactName;
+ }
}
+ return null;
+}
}
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/property/ApplicationGlobalElasticityReqSection.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/property/ApplicationGlobalElasticityReqSection.java
index 5f73157..aad7be9 100644
--- a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/property/ApplicationGlobalElasticityReqSection.java
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/property/ApplicationGlobalElasticityReqSection.java
@@ -76,685 +76,564 @@
/**
* Application Properties - Elasticity Tab
*/
-public class ApplicationGlobalElasticityReqSection
- extends GFPropertySection implements ITabbedPropertyConstants
+public class ApplicationGlobalElasticityReqSection extends GFPropertySection
+implements ITabbedPropertyConstants
{
- Composite client;
- Section section;
- private Table table;
- private Button addButton;
- private Button removeButton;
- TableViewer tableViewer;
- List<TPolicy> appComponentElasticityRequirements = new ArrayList<TPolicy>();
- Section sectionRA;
- private Table tableResizingActions;
- private Button removeButtonRA;
- private Button addButtonRA;
- private Button conditionButtonRA;
- TableViewer tableResizingActionsViewer;
- List<TPolicy> appComponentResizingActions = new ArrayList<TPolicy>();
- protected Tosca_Elasticity_ExtensionsFactory elasticityFactory = Tosca_Elasticity_ExtensionsFactory.eINSTANCE;
+Composite client;
+Section section;
+private Table table;
+private Button addButton;
+private Button removeButton;
+TableViewer tableViewer;
+List<TPolicy> appComponentElasticityRequirements = new ArrayList<TPolicy>();
+Section sectionRA;
+private Table tableResizingActions;
+private Button removeButtonRA;
+private Button addButtonRA;
+private Button conditionButtonRA;
+TableViewer tableResizingActionsViewer;
+List<TPolicy> appComponentResizingActions = new ArrayList<TPolicy>();
+protected Tosca_Elasticity_ExtensionsFactory elasticityFactory = Tosca_Elasticity_ExtensionsFactory.eINSTANCE;
- @Override
- public void createControls( final Composite parent,
- TabbedPropertySheetPage tabbedPropertySheetPage )
- {
- super.createControls( parent, tabbedPropertySheetPage );
- FormToolkit toolkit = new FormToolkit( parent.getDisplay() );
- // Application Component Elasticity Requirements Section
- this.section = toolkit.createSection( parent, Section.TITLE_BAR );
- this.section.setText( "Application Component Elasticity Constraints" ); //$NON-NLS-1$
- Composite client = toolkit.createComposite( this.section, SWT.WRAP );
- Composite client1 = toolkit.createComposite( client, SWT.WRAP );
- Composite client2 = toolkit.createComposite( client, SWT.WRAP );
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- layout.marginTop = 15;
- layout.verticalSpacing = 15;
- layout.marginWidth = 2;
- layout.marginHeight = 2;
- client.setLayout( layout );
- layout = new GridLayout();
- layout.numColumns = 1;
- client1.setLayout( layout );
- layout = new GridLayout();
- layout.numColumns = 1;
- client2.setLayout( layout );
- GridData gd;
- this.table = new Table( client1, SWT.BORDER
- | SWT.VIRTUAL
- | SWT.MULTI
- | SWT.FULL_SELECTION );
- this.table.setHeaderVisible( true );
- this.table.setLinesVisible( false );
- this.table.getHorizontalBar().setEnabled( false );
- gd = new GridData( 300, this.table.getItemHeight() * 4 );
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
- this.table.setLayoutData( gd );
- TableLayout tableLayout = new TableLayout();
- this.table.setLayout( tableLayout );
- TableColumn nameColumn = new TableColumn( this.table, SWT.CENTER );
- ColumnLayoutData data = new ColumnWeightData( 100 );
- tableLayout.addColumnData( data );
- data = new ColumnWeightData( 100 );
- tableLayout.addColumnData( data );
- data = new ColumnWeightData( 150 );
- tableLayout.addColumnData( data );
- nameColumn.setText( "Constraint" ); //$NON-NLS-1$
- this.tableViewer = new TableViewer( this.table );
- ElasticityConstraintsProvider ERProvider = new ElasticityConstraintsProvider();
- IStructuredContentProvider contentProvider = ERProvider.ERContentProvider;
- this.tableViewer.setContentProvider( contentProvider );
- this.tableViewer.setLabelProvider( ERProvider.ERContentLabelProvider );
- this.tableViewer.setInput( this.appComponentElasticityRequirements );
- this.addButton = new Button( client2, SWT.PUSH );
- this.addButton.setText( "Add" ); //$NON-NLS-1$
- gd = new GridData();
- gd.widthHint = 60;
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- this.addButton.setLayoutData( gd );
- // Listener for Add button
- this.addButton.addSelectionListener( new SelectionListener() {
+@Override
+public void createControls( final Composite parent,
+ TabbedPropertySheetPage tabbedPropertySheetPage )
+{
+ super.createControls( parent, tabbedPropertySheetPage );
+ FormToolkit toolkit = new FormToolkit( parent.getDisplay() );
+ // Application Component Elasticity Requirements Section
+ this.section = toolkit.createSection( parent, Section.TITLE_BAR );
+ this.section.setText( "Application Component Elasticity Constraints" ); //$NON-NLS-1$
+ Composite client = toolkit.createComposite( this.section, SWT.WRAP );
+ Composite client1 = toolkit.createComposite( client, SWT.WRAP );
+ Composite client2 = toolkit.createComposite( client, SWT.WRAP );
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 2;
+ layout.marginTop = 15;
+ layout.verticalSpacing = 15;
+ layout.marginWidth = 2;
+ layout.marginHeight = 2;
+ client.setLayout( layout );
+ layout = new GridLayout();
+ layout.numColumns = 1;
+ client1.setLayout( layout );
+ layout = new GridLayout();
+ layout.numColumns = 1;
+ client2.setLayout( layout );
+ GridData gd;
+ this.table = new Table( client1, SWT.BORDER
+ | SWT.VIRTUAL
+ | SWT.MULTI
+ | SWT.FULL_SELECTION );
+ this.table.setHeaderVisible( true );
+ this.table.setLinesVisible( false );
+ this.table.getHorizontalBar().setEnabled( false );
+ gd = new GridData( 300, this.table.getItemHeight() * 4 );
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
+ this.table.setLayoutData( gd );
+ TableLayout tableLayout = new TableLayout();
+ this.table.setLayout( tableLayout );
+ TableColumn nameColumn = new TableColumn( this.table, SWT.CENTER );
+ ColumnLayoutData data = new ColumnWeightData( 100 );
+ tableLayout.addColumnData( data );
+ data = new ColumnWeightData( 100 );
+ tableLayout.addColumnData( data );
+ data = new ColumnWeightData( 150 );
+ tableLayout.addColumnData( data );
+ nameColumn.setText( "Constraint" ); //$NON-NLS-1$
+ this.tableViewer = new TableViewer( this.table );
+ ElasticityConstraintsProvider ERProvider = new ElasticityConstraintsProvider();
+ IStructuredContentProvider contentProvider = ERProvider.ERContentProvider;
+ this.tableViewer.setContentProvider( contentProvider );
+ this.tableViewer.setLabelProvider( ERProvider.ERContentLabelProvider );
+ this.tableViewer.setInput( this.appComponentElasticityRequirements );
+ this.addButton = new Button( client2, SWT.PUSH );
+ this.addButton.setText( "Add" ); //$NON-NLS-1$
+ gd = new GridData();
+ gd.widthHint = 60;
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ this.addButton.setLayoutData( gd );
+ // Listener for Add button
+ this.addButton.addSelectionListener( new SelectionListener() {
- @Override
- public void widgetSelected( SelectionEvent e ) {
- editDataStagingEntry( null );
- }
-
- @Override
- public void widgetDefaultSelected( final SelectionEvent e ) {
- // TODO Auto-generated method stub
- }
- } );
- this.removeButton = new Button( client2, SWT.PUSH );
- this.removeButton.setText( "Remove" ); //$NON-NLS-1$
- gd = new GridData();
- gd.widthHint = 60;
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- this.removeButton.setLayoutData( gd );
- // Listener for Remove button
- this.removeButton.addSelectionListener( new SelectionListener() {
-
- @Override
- public void widgetSelected( final SelectionEvent e ) {
- removeApplicationComponentElasticityRequirement( getSelectedObject() );
- }
-
- @Override
- public void widgetDefaultSelected( final SelectionEvent e ) {
- // TODO Auto-generated method stub
- }
- } );
- // Add section components to the toolkit
- toolkit.adapt( this.table, true, true );
- toolkit.adapt( this.addButton, true, true );
- toolkit.adapt( this.removeButton, true, true );
- this.section.setClient( client );
- // Application Component Elasticity Actions Section
- this.sectionRA = toolkit.createSection( parent, Section.TITLE_BAR );
- this.sectionRA.setText( "Elasticity Strategies" ); //$NON-NLS-1$
- Composite clientRA = toolkit.createComposite( this.sectionRA, SWT.WRAP );
- Composite clientRA1 = toolkit.createComposite( clientRA, SWT.WRAP );
- Composite clientRA2 = toolkit.createComposite( clientRA, SWT.WRAP );
- GridLayout layoutRA;
- layoutRA = new GridLayout();
- layoutRA.numColumns = 2;
- layoutRA.marginTop = 15;
- layoutRA.verticalSpacing = 15;
- layoutRA.marginWidth = 2;
- layoutRA.marginHeight = 2;
- clientRA.setLayout( layoutRA );
- layoutRA = new GridLayout();
- layoutRA.numColumns = 1;
- clientRA1.setLayout( layoutRA );
- layoutRA = new GridLayout();
- layoutRA.numColumns = 1;
- clientRA2.setLayout( layoutRA );
- this.tableResizingActions = new Table( clientRA1, SWT.BORDER
- | SWT.VIRTUAL
- | SWT.MULTI
- | SWT.FULL_SELECTION );
- this.tableResizingActions.setHeaderVisible( true );
- this.tableResizingActions.setLinesVisible( false );
- this.tableResizingActions.getHorizontalBar().setEnabled( false );
- GridData gdRA;
- gdRA = new GridData( 300, this.tableResizingActions.getItemHeight() * 4 );
- gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gdRA.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
- this.tableResizingActions.setLayoutData( gdRA );
- TableLayout tableLayoutRA = new TableLayout();
- this.tableResizingActions.setLayout( tableLayoutRA );
- TableColumn nameColumnRA = new TableColumn( this.tableResizingActions,
- SWT.CENTER );
- nameColumnRA.setText( "Strategy" ); //$NON-NLS-1$
- nameColumnRA.setWidth( 100 );
- ColumnWeightData dataRA = new ColumnWeightData( 100 );
- tableLayoutRA.addColumnData( dataRA );
- // Set the Elasticity Actions table viewer
- ResizingActionsProvider RAProvider = new ResizingActionsProvider();
- this.tableResizingActionsViewer = new TableViewer( this.tableResizingActions );
- IStructuredContentProvider contentProviderRA = RAProvider.RAContentProvider;
- this.tableResizingActionsViewer.setContentProvider( contentProviderRA );
- this.tableResizingActionsViewer.setLabelProvider( RAProvider.RAContentLabelProvider );
- this.tableResizingActionsViewer.setInput( this.appComponentResizingActions );
- // Add Elasticity Strategy button
- this.addButtonRA = new Button( clientRA2, SWT.PUSH );
- this.addButtonRA.setText( "Add" ); //$NON-NLS-1$
- // Listener for Adding Elasticity Strategy button
- this.addButtonRA.addSelectionListener( new SelectionListener() {
-
- @Override
- public void widgetSelected( final SelectionEvent e ) {
- editDataStagingEntryRA( getSelectedObject() );
- }
-
- @Override
- public void widgetDefaultSelected( final SelectionEvent e ) {
- // TODO Auto-generated method stub
- }
- } );
- gdRA = new GridData();
- gdRA.widthHint = 60;
- gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- this.addButtonRA.setLayoutData( gdRA );
- this.removeButtonRA = new Button( clientRA2, SWT.PUSH );
- this.removeButtonRA.setText( "Remove" ); //$NON-NLS-1$
- // Listener for Remove Elasticity Strategy button
- this.removeButtonRA.addSelectionListener( new SelectionListener() {
-
- @Override
- public void widgetSelected( final SelectionEvent e ) {
- removeApplicationComponentResizingAction( getSelectedElasticityStrategy() );
- }
-
- @Override
- public void widgetDefaultSelected( final SelectionEvent e ) {
- // TODO Auto-generated method stub
- }
- } );
- gdRA = new GridData();
- gdRA.widthHint = 60;
- gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- this.removeButtonRA.setLayoutData( gdRA );
- this.conditionButtonRA = new Button( clientRA2, SWT.PUSH );
- this.conditionButtonRA.setText( "Condition" ); //$NON-NLS-1$
- // Listener for Remove Elasticity Strategy button
- this.conditionButtonRA.addSelectionListener( new SelectionListener() {
-
- @Override
- public void widgetSelected( final SelectionEvent e ) {
- addStrategyCondition( getSelectedElasticityStrategy() );
- }
-
- @Override
- public void widgetDefaultSelected( final SelectionEvent e ) {
- // TODO Auto-generated method stub
- }
- } );
- gdRA = new GridData();
- gdRA.widthHint = 60;
- gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- this.conditionButtonRA.setLayoutData( gdRA );
- // Add section components to the toolkit
- toolkit.adapt( this.tableResizingActions, true, true );
- toolkit.adapt( this.removeButtonRA, true, true );
- toolkit.adapt( this.addButtonRA, true, true );
- // toolkit.adapt( this.uploadButtonRA, true, true );
- toolkit.adapt( this.conditionButtonRA, true, true );
- this.sectionRA.setClient( clientRA );
- }
-
- // Add Application Component Elasticity Requirement
- void editDataStagingEntry( final TPolicy selectedObject ) {
- ElasticityConstraintDialog dialog;
- if( selectedObject == null ) {
- // Add button is pressed
- dialog = new ElasticityConstraintDialog( this.section.getShell(),
- "Application" ); //$NON-NLS-1$
- if( dialog.open() == Window.OK ) {
- String newElasticityConstraint = dialog.getElasticityConstraint();
-
- if (newElasticityConstraint.contains( "<" )){
- String[] cond = newElasticityConstraint.split( "<" );
- newElasticityConstraint = cond[0] + "<" + cond[1];
- }
- else if (newElasticityConstraint.contains( ">" )){
- String[] cond = newElasticityConstraint.split( ">" );
- newElasticityConstraint = cond[0] + ">" + cond[1];
- }
-
-
- SyblElasticityRequirementsDescription newSYBLConstraint = dialog.getSYBLConstraint();
- if( newElasticityConstraint != null ) {
- // Add Application Component Elasticity Requirement to TOSCA
- PictogramElement pe = getSelectedPictogramElement();
- Object bo = null;
- if( pe != null ) {
- bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- }
- final TBoundaryDefinitionsExtension boundaryDef = ( TBoundaryDefinitionsExtension )( ( ( TServiceTemplate )bo ).getBoundaryDefinitions() );
-
-
- if ( boundaryDef.getPolicies() == null ){
-
- final PoliciesType1 boundaryPolicies = ToscaFactory.eINSTANCE.createPoliciesType1();
-
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- @Override
- protected void doExecute() {
- boundaryDef.setPolicies( boundaryPolicies );
- }
- } );
-
-
- }
-
- PoliciesType1 nodePolicyList = boundaryDef.getPolicies();
-
- final EList<TPolicy> policy = nodePolicyList.getPolicy();
- final TPolicy newPolicy = createNewPolicy( "Constraint",
- newElasticityConstraint, newSYBLConstraint );
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- @Override
- protected void doExecute() {
- policy.add( newPolicy );
- }
- } );
- // Add Application Component Elasticity Requirement to temp list
- this.appComponentElasticityRequirements.add( newPolicy );
- this.tableViewer.refresh();
- } else {
- }
- }
+ @Override
+ public void widgetSelected( SelectionEvent e ) {
+ editDataStagingEntry( null );
}
- }
- void editDataStagingEntryRA( final TPolicy selectedObject ) {
- ElasticityStrategyDialog dialog;
- if( selectedObject == null ) {
- // Add button is pressed
- dialog = new ElasticityStrategyDialog( this.section.getShell(),
+ @Override
+ public void widgetDefaultSelected( final SelectionEvent e ) {
+ // TODO Auto-generated method stub
+ }
+ } );
+ this.removeButton = new Button( client2, SWT.PUSH );
+ this.removeButton.setText( "Remove" ); //$NON-NLS-1$
+ gd = new GridData();
+ gd.widthHint = 60;
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ this.removeButton.setLayoutData( gd );
+ // Listener for Remove button
+ this.removeButton.addSelectionListener( new SelectionListener() {
+
+ @Override
+ public void widgetSelected( final SelectionEvent e ) {
+ removeApplicationComponentElasticityRequirement( getSelectedObject() );
+ }
+
+ @Override
+ public void widgetDefaultSelected( final SelectionEvent e ) {
+ // TODO Auto-generated method stub
+ }
+ } );
+ // Add section components to the toolkit
+ toolkit.adapt( this.table, true, true );
+ toolkit.adapt( this.addButton, true, true );
+ toolkit.adapt( this.removeButton, true, true );
+ this.section.setClient( client );
+ // Application Component Elasticity Actions Section
+ this.sectionRA = toolkit.createSection( parent, Section.TITLE_BAR );
+ this.sectionRA.setText( "Elasticity Strategies" ); //$NON-NLS-1$
+ Composite clientRA = toolkit.createComposite( this.sectionRA, SWT.WRAP );
+ Composite clientRA1 = toolkit.createComposite( clientRA, SWT.WRAP );
+ Composite clientRA2 = toolkit.createComposite( clientRA, SWT.WRAP );
+ GridLayout layoutRA;
+ layoutRA = new GridLayout();
+ layoutRA.numColumns = 2;
+ layoutRA.marginTop = 15;
+ layoutRA.verticalSpacing = 15;
+ layoutRA.marginWidth = 2;
+ layoutRA.marginHeight = 2;
+ clientRA.setLayout( layoutRA );
+ layoutRA = new GridLayout();
+ layoutRA.numColumns = 1;
+ clientRA1.setLayout( layoutRA );
+ layoutRA = new GridLayout();
+ layoutRA.numColumns = 1;
+ clientRA2.setLayout( layoutRA );
+ this.tableResizingActions = new Table( clientRA1, SWT.BORDER
+ | SWT.VIRTUAL
+ | SWT.MULTI
+ | SWT.FULL_SELECTION );
+ this.tableResizingActions.setHeaderVisible( true );
+ this.tableResizingActions.setLinesVisible( false );
+ this.tableResizingActions.getHorizontalBar().setEnabled( false );
+ GridData gdRA;
+ gdRA = new GridData( 300, this.tableResizingActions.getItemHeight() * 4 );
+ gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ gdRA.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
+ this.tableResizingActions.setLayoutData( gdRA );
+ TableLayout tableLayoutRA = new TableLayout();
+ this.tableResizingActions.setLayout( tableLayoutRA );
+ TableColumn nameColumnRA = new TableColumn( this.tableResizingActions,
+ SWT.CENTER );
+ nameColumnRA.setText( "Strategy" ); //$NON-NLS-1$
+ nameColumnRA.setWidth( 100 );
+ ColumnWeightData dataRA = new ColumnWeightData( 100 );
+ tableLayoutRA.addColumnData( dataRA );
+ // Set the Elasticity Actions table viewer
+ ResizingActionsProvider RAProvider = new ResizingActionsProvider();
+ this.tableResizingActionsViewer = new TableViewer( this.tableResizingActions );
+ IStructuredContentProvider contentProviderRA = RAProvider.RAContentProvider;
+ this.tableResizingActionsViewer.setContentProvider( contentProviderRA );
+ this.tableResizingActionsViewer.setLabelProvider( RAProvider.RAContentLabelProvider );
+ this.tableResizingActionsViewer.setInput( this.appComponentResizingActions );
+ // Add Elasticity Strategy button
+ this.addButtonRA = new Button( clientRA2, SWT.PUSH );
+ this.addButtonRA.setText( "Add" ); //$NON-NLS-1$
+ // Listener for Adding Elasticity Strategy button
+ this.addButtonRA.addSelectionListener( new SelectionListener() {
+
+ @Override
+ public void widgetSelected( final SelectionEvent e ) {
+ editDataStagingEntryRA( getSelectedObject() );
+ }
+
+ @Override
+ public void widgetDefaultSelected( final SelectionEvent e ) {
+ // TODO Auto-generated method stub
+ }
+ } );
+ gdRA = new GridData();
+ gdRA.widthHint = 60;
+ gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ this.addButtonRA.setLayoutData( gdRA );
+ this.removeButtonRA = new Button( clientRA2, SWT.PUSH );
+ this.removeButtonRA.setText( "Remove" ); //$NON-NLS-1$
+ // Listener for Remove Elasticity Strategy button
+ this.removeButtonRA.addSelectionListener( new SelectionListener() {
+
+ @Override
+ public void widgetSelected( final SelectionEvent e ) {
+ removeApplicationComponentResizingAction( getSelectedElasticityStrategy() );
+ }
+
+ @Override
+ public void widgetDefaultSelected( final SelectionEvent e ) {
+ // TODO Auto-generated method stub
+ }
+ } );
+ gdRA = new GridData();
+ gdRA.widthHint = 60;
+ gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ this.removeButtonRA.setLayoutData( gdRA );
+ this.conditionButtonRA = new Button( clientRA2, SWT.PUSH );
+ this.conditionButtonRA.setText( "Condition" ); //$NON-NLS-1$
+ // Listener for Remove Elasticity Strategy button
+ this.conditionButtonRA.addSelectionListener( new SelectionListener() {
+
+ @Override
+ public void widgetSelected( final SelectionEvent e ) {
+ addStrategyCondition( getSelectedElasticityStrategy() );
+ }
+
+ @Override
+ public void widgetDefaultSelected( final SelectionEvent e ) {
+ // TODO Auto-generated method stub
+ }
+ } );
+ gdRA = new GridData();
+ gdRA.widthHint = 60;
+ gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ this.conditionButtonRA.setLayoutData( gdRA );
+ // Add section components to the toolkit
+ toolkit.adapt( this.tableResizingActions, true, true );
+ toolkit.adapt( this.removeButtonRA, true, true );
+ toolkit.adapt( this.addButtonRA, true, true );
+ // toolkit.adapt( this.uploadButtonRA, true, true );
+ toolkit.adapt( this.conditionButtonRA, true, true );
+ this.sectionRA.setClient( clientRA );
+}
+
+// Add Application Component Elasticity Requirement
+void editDataStagingEntry( final TPolicy selectedObject ) {
+ ElasticityConstraintDialog dialog;
+ if( selectedObject == null ) {
+ // Add button is pressed
+ dialog = new ElasticityConstraintDialog( this.section.getShell(),
"Application" ); //$NON-NLS-1$
- if( dialog.open() == Window.OK ) {
- String newElasticityStrategy = dialog.getElasticityStrategy();
- SyblElasticityRequirementsDescription newSYBLStrategy = dialog.getSYBLStrategy();
- if( newElasticityStrategy != null ) {
- // Add Application Component Elasticity Strategy to TOSCA
- PictogramElement pe = getSelectedPictogramElement();
- Object bo = null;
- if( pe != null ) {
- bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- }
- final TBoundaryDefinitionsExtension boundaryDef = ( TBoundaryDefinitionsExtension )( ( ( TServiceTemplate )bo ).getBoundaryDefinitions() );
-
- if ( boundaryDef.getPolicies() == null ){
-
- final PoliciesType1 boundaryPolicies = ToscaFactory.eINSTANCE.createPoliciesType1();
-
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- @Override
- protected void doExecute() {
- boundaryDef.setPolicies( boundaryPolicies );
- }
- } );
- }
-
- PoliciesType1 nodePolicyList = boundaryDef.getPolicies();
- final EList<TPolicy> policy = nodePolicyList.getPolicy();
- final TPolicy newPolicy = createNewPolicy( "Strategy",
- newElasticityStrategy, newSYBLStrategy );
+ if( dialog.open() == Window.OK ) {
+ String newElasticityConstraint = dialog.getElasticityConstraint();
+
+ if( newElasticityConstraint != null ) {
+
+ if( newElasticityConstraint.contains( "<" ) ) {
+ String[] cond = newElasticityConstraint.split( "<" );
+ newElasticityConstraint = cond[ 0 ] + "<" + cond[ 1 ];
+ } else if( newElasticityConstraint.contains( ">" ) ) {
+ String[] cond = newElasticityConstraint.split( ">" );
+ newElasticityConstraint = cond[ 0 ] + ">" + cond[ 1 ];
+ }
+
+ // Add Application Component Elasticity Requirement to TOSCA
+ PictogramElement pe = getSelectedPictogramElement();
+ Object bo = null;
+ if( pe != null ) {
+ bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ }
+ final TBoundaryDefinitionsExtension boundaryDef = ( TBoundaryDefinitionsExtension )( ( ( TServiceTemplate )bo ).getBoundaryDefinitions() );
+ if( boundaryDef.getPolicies() == null ) {
+ final PoliciesType1 boundaryPolicies = ToscaFactory.eINSTANCE.createPoliciesType1();
TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
editingDomain.getCommandStack()
.execute( new RecordingCommand( editingDomain ) {
@Override
protected void doExecute() {
- policy.add( newPolicy );
+ boundaryDef.setPolicies( boundaryPolicies );
}
} );
- this.appComponentResizingActions.add( newPolicy );
- this.tableResizingActionsViewer.refresh();
- } else {
- // Edit
}
+ PoliciesType1 nodePolicyList = boundaryDef.getPolicies();
+ final EList<TPolicy> policy = nodePolicyList.getPolicy();
+ final TPolicy newPolicy = ToscaFactory.eINSTANCE.createTPolicy();
+ String type = "Constraint";
+ QName policyTypeName = new QName( "http://www.example.org/SYBL",
+ type,
+ null );
+ newPolicy.setPolicyType( policyTypeName );
+ newPolicy.setName( type.toUpperCase() + " " + newElasticityConstraint );
+
+ String id = "A" + ( ( Integer )boundaryDef.hashCode() ).toString() + nodePolicyList.getPolicy().size();
+ QName qnamePolicyTemplate = new QName( id );
+ newPolicy.setPolicyRef( qnamePolicyTemplate );
+
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
+
+ @Override
+ protected void doExecute() {
+ policy.add( newPolicy );
+ }
+ } );
+ // Add Application Component Elasticity Requirement to temp list
+ this.appComponentElasticityRequirements.add( newPolicy );
+ this.tableViewer.refresh();
}
}
}
+}
-
- // type is either "Constraint" or "Strategy"
- TPolicy createNewPolicy(String type, String policyName, SyblElasticityRequirementsDescription syblPolicy){
-
- // Create Policy Template
+void editDataStagingEntryRA( final TPolicy selectedObject ) {
+ ElasticityStrategyDialog dialog;
+ if( selectedObject == null ) {
+ // Add button is pressed
+ PictogramElement pe = getSelectedPictogramElement();
+ Object bo = null;
+ if( pe != null ) {
+ bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ }
+ TServiceTemplate application = (TServiceTemplate) bo;
- final TPolicyTemplate newPolicyTemplate = ToscaFactory.eINSTANCE.createTPolicyTemplate();
-
- QName policyTypeName = new QName( "http://www.example.org/SYBL", type, null );
-
- newPolicyTemplate.setType( policyTypeName );
-
- String id = "A" + ( ( Integer )newPolicyTemplate.hashCode() ).toString();
-
- newPolicyTemplate.setId( id );
-
-
- // Set the Properties of the Policy Template
-
- PropertiesType properties = ToscaFactory.eINSTANCE.createPropertiesType();
-
- // Add the SYBL Policy to the FeatureMap of the Policy's Properties element
- Entry e = FeatureMapUtil.createEntry( SyblPackage.eINSTANCE.getDocumentRoot_SYBLElasticityRequirementsDescription(), syblPolicy );
- properties.getAny().add( e );
-
- newPolicyTemplate.setProperties( properties );
-
- // Add the new Policy Template to the TOSCA Definitions element
-
- final ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
-
- DefinitionsType definitions = model.getDocumentRoot().getDefinitions();
-
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( definitions );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- @Override
- protected void doExecute() {
- model.getDocumentRoot().getDefinitions().getPolicyTemplate().add( newPolicyTemplate );
-
- }
- } );
-
- // Assign the created Policy Template to the new Policy
-
- TPolicy newPolicy = ToscaFactory.eINSTANCE.createTPolicy();
-
- QName qnamePolicyTemplate = new QName( newPolicyTemplate.getId() );
-
- newPolicy.setPolicyType( policyTypeName );
-
- newPolicy.setPolicyRef( qnamePolicyTemplate );
-
- newPolicy.setName( type.toUpperCase() + " " + policyName );
-
- return newPolicy;
- }
-
- void addStrategyCondition( final TPolicy selectedObject ) {
- if( selectedObject == null )
- return;
-
- TServiceTemplate serviceTemplate = null;
-
- if (getSelectedPictogramElement() != null)
- serviceTemplate = (TServiceTemplate) Graphiti.getLinkService().getBusinessObjectForLinkedPictogramElement(getSelectedPictogramElement());
-
- ElasticityConditionDialog dialog;
- ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
- dialog = new ElasticityConditionDialog( this.section.getShell(),
- "Application Component",
- model,
- selectedObject.getName() ); //$NON-NLS-1$
- String newElasticityCondition = null;
- ConditionType policyCondition = null;
+ dialog = new ElasticityStrategyDialog( this.section.getShell(),
+ "Application", application.getName() ); //$NON-NLS-1$
if( dialog.open() == Window.OK ) {
- newElasticityCondition = dialog.getSelectedCondition();
- policyCondition = dialog.getSYBLCondition();
- }
- if( newElasticityCondition == null )
- return;
+ String newElasticityStrategy = dialog.getElasticityStrategy();
+ if( newElasticityStrategy != null ) {
+ // Add Application Component Elasticity Strategy to TOSCA
- String newCond = newElasticityCondition;
-
- if (newCond.contains( "<" )){
- String[] cond = newCond.split( "<" );
- newCond = cond[0] + "<" + cond[1];
- }
- else if (newCond.contains( ">" )){
- String[] cond = newCond.split( ">" );
- newCond = cond[0] + ">" + cond[1];
- }
-
- final String condition = newCond;
-
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( serviceTemplate );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
+ final TBoundaryDefinitionsExtension boundaryDef = ( TBoundaryDefinitionsExtension )( application.getBoundaryDefinitions() );
+ if( boundaryDef.getPolicies() == null ) {
+ final PoliciesType1 boundaryPolicies = ToscaFactory.eINSTANCE.createPoliciesType1();
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
- @Override
- protected void doExecute() {
- String[] strategy = selectedObject.getName().split( "STRATEGY" );
- selectedObject.setName( strategy[ 0 ]
- + "STRATEGY "
- + condition + " :"
- + strategy[ 1 ] );
- }
- } );
- this.tableResizingActionsViewer.refresh();
-
- //addPolicyCondition( selectedObject, policyCondition);
- }
-
-// void addPolicyCondition(final TPolicy selectedPolicy, final ConditionType policyCondition){
-//
-// ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
-// EList<TPolicyTemplate> policyTemplates = model.getDocumentRoot().getDefinitions().getPolicyTemplate();
-// TPolicyTemplate policyTemplate = null;
-// for ( TPolicyTemplate tempPolicyTemplate : policyTemplates ){
-// if (tempPolicyTemplate.getId().toString().equals(selectedPolicy.getPolicyRef().toString())){
-// policyTemplate = tempPolicyTemplate;
-// break;
-// }
-// }
-//
-// final SyblElasticityRequirementsDescription syblPolicy = (SyblElasticityRequirementsDescription) policyTemplate.getProperties().getAny().get(0).getValue();
-// TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( policyTemplate );
-// editingDomain.getCommandStack()
-// .execute( new RecordingCommand( editingDomain ) {
-//
-// @Override
-// protected void doExecute() {
-// syblPolicy.getSYBLSpecification().get( 0 ).getStrategy().get( 0 ).setCondition( policyCondition );
-// }
-// } );
-// }
-
- // Remove the selected Application Component Elasticity Requirement from TOSCA
- void removeApplicationComponentElasticityRequirement( final TPolicy selectedObject )
- {
- PictogramElement pe = getSelectedPictogramElement();
- Object bo = null;
- if( pe != null ) {
- bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- }
-
- final TBoundaryDefinitionsExtension boundaryDef = ( TBoundaryDefinitionsExtension )( ( ( TServiceTemplate )bo ).getBoundaryDefinitions() );
-
- PoliciesType1 nodePolicyList = boundaryDef.getPolicies();
-
- final EList<TPolicy> policy = nodePolicyList.getPolicy();
-
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- @Override
- protected void doExecute() {
- for( TPolicy tempPolicy : policy ) {
- if( tempPolicy.getPolicyType().toString().contains( "Constraint" ) ) //$NON-NLS-1$
- if( tempPolicy.getName().compareTo( selectedObject.getName() ) == 0 )
- {
- policy.remove( tempPolicy );
- if( policy.size() == 0 )
- boundaryDef.setPolicies( null );
- // remove corresponding Policy Template
- String removedPolicyId = tempPolicy.getPolicyRef().toString();
- ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
- DefinitionsType toscaDefinitions = model.getDocumentRoot()
- .getDefinitions();
- final EList<TPolicyTemplate> policyTemplate = toscaDefinitions.getPolicyTemplate();
- for( TPolicyTemplate tempPolicyTemplate : policyTemplate ) {
- if( tempPolicyTemplate.getId().equals( removedPolicyId ) ) {
- policyTemplate.remove( tempPolicyTemplate );
- }
- }
- break;
+ @Override
+ protected void doExecute() {
+ boundaryDef.setPolicies( boundaryPolicies );
}
- }
+ } );
}
- } );
- this.appComponentElasticityRequirements.remove( selectedObject );
- this.tableViewer.refresh();
- }
+ PoliciesType1 nodePolicyList = boundaryDef.getPolicies();
+ final EList<TPolicy> policy = nodePolicyList.getPolicy();
+ final TPolicy newPolicy = ToscaFactory.eINSTANCE.createTPolicy();
+ String type = "Strategy";
+ QName policyTypeName = new QName( "http://www.example.org/SYBL",
+ type,
+ null );
+ newPolicy.setPolicyType( policyTypeName );
+ newPolicy.setName( type.toUpperCase() + " " + newElasticityStrategy );
+
+ String id = "A" + ( ( Integer )boundaryDef.hashCode() ).toString() + nodePolicyList.getPolicy().size();
+ QName qnamePolicyTemplate = new QName( id );
+ newPolicy.setPolicyRef( qnamePolicyTemplate );
+
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
- // Return the selected Elasticity Requirement
- TPolicy getSelectedObject() {
- TPolicy result = null;
- IStructuredSelection selection = ( IStructuredSelection )this.tableViewer.getSelection();
- Object obj = selection.getFirstElement();
- result = ( TPolicy )obj;
- return result;
- }
-
- // Return the selected Elasticity Action
- TPolicy getSelectedElasticityStrategy() {
- TPolicy result = null;
- IStructuredSelection selection = ( IStructuredSelection )this.tableResizingActionsViewer.getSelection();
- Object obj = selection.getFirstElement();
- result = ( TPolicy )obj;
- return result;
- }
-
- /**
- * Get Application Elasticity Actions
- */
- public void getResizingActions() {
- // initiate global elasticity requirement list with requirements from
- // description wizard
- PictogramElement pe = getSelectedPictogramElement();
- Object bo = null;
- if( pe != null ) {
- bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
+ @Override
+ protected void doExecute() {
+ policy.add( newPolicy );
+ }
+ } );
+ this.appComponentResizingActions.add( newPolicy );
+ this.tableResizingActionsViewer.refresh();
+ }
}
- TBoundaryDefinitionsExtension boundaryDef = ( TBoundaryDefinitionsExtension )( ( ( TServiceTemplate )bo ).getBoundaryDefinitions() );
-
- PoliciesType1 nodePolicyList = boundaryDef.getPolicies();
-
- if( nodePolicyList == null )
- return;
-
- for( TPolicy tempPolicy : nodePolicyList.getPolicy() )
- {
- if( tempPolicy.getPolicyType().toString().contains( "Strategy" ) ) //$NON-NLS-1$
- this.appComponentResizingActions.add( tempPolicy );
- }
-
}
+}
+void addStrategyCondition( final TPolicy selectedObject ) {
+ if( selectedObject == null )
+ return;
+ TServiceTemplate serviceTemplate = null;
+ if( getSelectedPictogramElement() != null )
+ serviceTemplate = ( TServiceTemplate )Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( getSelectedPictogramElement() );
+ ElasticityConditionDialog dialog;
+ ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+ dialog = new ElasticityConditionDialog( this.section.getShell(),
+ "Application Component",
+ model,
+ selectedObject.getName() ); //$NON-NLS-1$
+ String newElasticityCondition = null;
+ if( dialog.open() == Window.OK ) {
+ newElasticityCondition = dialog.getSelectedCondition();
+ }
+ if( newElasticityCondition == null )
+ return;
+ String newCond = newElasticityCondition;
+ if( newCond.contains( "<" ) ) {
+ String[] cond = newCond.split( "<" );
+ newCond = cond[ 0 ] + "<" + cond[ 1 ];
+ } else if( newCond.contains( ">" ) ) {
+ String[] cond = newCond.split( ">" );
+ newCond = cond[ 0 ] + ">" + cond[ 1 ];
+ }
+ final String condition = newCond;
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( serviceTemplate );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
+
+ @Override
+ protected void doExecute() {
+ String[] strategy = selectedObject.getName().split( "STRATEGY" );
+ selectedObject.setName( strategy[ 0 ]
+ + "STRATEGY "
+ + condition
+ + " :"
+ + strategy[ 1 ] );
+ }
+ } );
+ this.tableResizingActionsViewer.refresh();
+}
+
+// Remove the selected Application Component Elasticity Requirement from TOSCA
+void removeApplicationComponentElasticityRequirement( final TPolicy selectedObject )
+{
+ PictogramElement pe = getSelectedPictogramElement();
+ Object bo = null;
+ if( pe != null ) {
+ bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ }
+ final TBoundaryDefinitionsExtension boundaryDef = ( TBoundaryDefinitionsExtension )( ( ( TServiceTemplate )bo ).getBoundaryDefinitions() );
+ PoliciesType1 nodePolicyList = boundaryDef.getPolicies();
+ final EList<TPolicy> policy = nodePolicyList.getPolicy();
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
+
+ @Override
+ protected void doExecute() {
+ for( TPolicy tempPolicy : policy ) {
+ if( tempPolicy.getPolicyType().toString().contains( "Constraint" ) ) //$NON-NLS-1$
+ if( tempPolicy.getName().compareTo( selectedObject.getName() ) == 0 )
+ {
+ policy.remove( tempPolicy );
+ if( policy.size() == 0 )
+ boundaryDef.setPolicies( null );
+ break;
+ }
+ }
+ }
+ } );
+ this.appComponentElasticityRequirements.remove( selectedObject );
+ this.tableViewer.refresh();
+}
+
+// Return the selected Elasticity Requirement
+TPolicy getSelectedObject() {
+ TPolicy result = null;
+ IStructuredSelection selection = ( IStructuredSelection )this.tableViewer.getSelection();
+ Object obj = selection.getFirstElement();
+ result = ( TPolicy )obj;
+ return result;
+}
+
+// Return the selected Elasticity Action
+TPolicy getSelectedElasticityStrategy() {
+ TPolicy result = null;
+ IStructuredSelection selection = ( IStructuredSelection )this.tableResizingActionsViewer.getSelection();
+ Object obj = selection.getFirstElement();
+ result = ( TPolicy )obj;
+ return result;
+}
+
+/**
+ * Get Application Elasticity Actions
+ */
+public void getResizingActions() {
+ // initiate global elasticity requirement list with requirements from
+ // description wizard
+ PictogramElement pe = getSelectedPictogramElement();
+ Object bo = null;
+ if( pe != null ) {
+ bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ }
+ if (bo == null)
+ return;
- /**
- * Get Application Elasticity Constraints
- */
- public void getElasticityConstraints() {
- // initiate global elasticity requirement list with requirements from
- // description wizard
- PictogramElement pe = getSelectedPictogramElement();
- Object bo = null;
- if( pe != null ) {
- bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- }
- TBoundaryDefinitionsExtension boundaryDef = ( TBoundaryDefinitionsExtension )( ( ( TServiceTemplate )bo ).getBoundaryDefinitions() );
-
- PoliciesType1 nodePolicyList = boundaryDef.getPolicies();
-
- if( nodePolicyList == null )
- return;
-
- for( TPolicy tempPolicy : nodePolicyList.getPolicy() )
- {
- if( tempPolicy.getPolicyType().toString().contains( "Constraint" ) ) //$NON-NLS-1$
- this.appComponentElasticityRequirements.add( tempPolicy );
- }
-
+ TBoundaryDefinitionsExtension boundaryDef = ( TBoundaryDefinitionsExtension )( ( ( TServiceTemplate )bo ).getBoundaryDefinitions() );
+ PoliciesType1 nodePolicyList = boundaryDef.getPolicies();
+ if( nodePolicyList == null )
+ return;
+ for( TPolicy tempPolicy : nodePolicyList.getPolicy() ) {
+ if( tempPolicy.getPolicyType().toString().contains( "Strategy" ) ) //$NON-NLS-1$
+ this.appComponentResizingActions.add( tempPolicy );
}
+}
- // Remove Application Component Elasticity Action
- void removeApplicationComponentResizingAction( final TPolicy selectedObject )
- {
- PictogramElement pe = getSelectedPictogramElement();
- Object bo = null;
- if( pe != null ) {
- bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- }
- final TBoundaryDefinitionsExtension boundaryDef = ( TBoundaryDefinitionsExtension )( ( ( TServiceTemplate )bo ).getBoundaryDefinitions() );
-
- PoliciesType1 nodePolicyList = boundaryDef.getPolicies();
-
- final EList<TPolicy> policy = nodePolicyList.getPolicy();
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
+/**
+ * Get Application Elasticity Constraints
+ */
+public void getElasticityConstraints() {
+ // initiate global elasticity requirement list with requirements from
+ // description wizard
+ PictogramElement pe = getSelectedPictogramElement();
+ Object bo = null;
+ if( pe != null ) {
+ bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ }
+ if (bo == null)
+ return;
+
+ TBoundaryDefinitionsExtension boundaryDef = ( TBoundaryDefinitionsExtension )( ( ( TServiceTemplate )bo ).getBoundaryDefinitions() );
+ PoliciesType1 nodePolicyList = boundaryDef.getPolicies();
+ if( nodePolicyList == null )
+ return;
+ for( TPolicy tempPolicy : nodePolicyList.getPolicy() ) {
+ if( tempPolicy.getPolicyType().toString().contains( "Constraint" ) ) //$NON-NLS-1$
+ this.appComponentElasticityRequirements.add( tempPolicy );
+ }
+}
- @Override
- protected void doExecute() {
- for( TPolicy tempPolicy : policy ) {
- if( tempPolicy.getPolicyType().toString().contains( "Strategy" ) ) //$NON-NLS-1$
- if( tempPolicy.getName().compareTo( selectedObject.getName() ) == 0 )
- {
- policy.remove( tempPolicy );
- if( policy.size() == 0 )
- boundaryDef.setPolicies( null );
- // remove corresponding Policy Template
- String removedPolicyId = tempPolicy.getPolicyRef().toString();
- ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
- DefinitionsType toscaDefinitions = model.getDocumentRoot()
- .getDefinitions();
- final EList<TPolicyTemplate> policyTemplate = toscaDefinitions.getPolicyTemplate();
- for( TPolicyTemplate tempPolicyTemplate : policyTemplate ) {
- if( tempPolicyTemplate.getId().equals( removedPolicyId ) ) {
- policyTemplate.remove( tempPolicyTemplate );
- }
- }
- break;
- }
- }
+// Remove Application Component Elasticity Action
+void removeApplicationComponentResizingAction( final TPolicy selectedObject )
+{
+ PictogramElement pe = getSelectedPictogramElement();
+ Object bo = null;
+ if( pe != null ) {
+ bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ }
+ final TBoundaryDefinitionsExtension boundaryDef = ( TBoundaryDefinitionsExtension )( ( ( TServiceTemplate )bo ).getBoundaryDefinitions() );
+ PoliciesType1 nodePolicyList = boundaryDef.getPolicies();
+ final EList<TPolicy> policy = nodePolicyList.getPolicy();
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
+
+ @Override
+ protected void doExecute() {
+ for( TPolicy tempPolicy : policy ) {
+ if( tempPolicy.getPolicyType().toString().contains( "Strategy" ) ) //$NON-NLS-1$
+ if( tempPolicy.getName().compareTo( selectedObject.getName() ) == 0 )
+ {
+ policy.remove( tempPolicy );
+ if( policy.size() == 0 )
+ boundaryDef.setPolicies( null );
+ break;
+ }
}
- } );
- this.appComponentResizingActions.remove( selectedObject );
- this.tableResizingActionsViewer.refresh();
- }
+ }
+ } );
+ this.appComponentResizingActions.remove( selectedObject );
+ this.tableResizingActionsViewer.refresh();
+}
- /*
- * Refresh Elasticity Tab(non-Javadoc)
- * @see
- * org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#refresh()
- */
- @Override
- public void refresh() {
- // Refresh Elasticity Constraints
- this.appComponentElasticityRequirements.clear();
- getElasticityConstraints();
- this.tableViewer.refresh();
- // Refresh Elasticity Actions
- this.appComponentResizingActions.clear();
- getResizingActions();
- this.tableResizingActionsViewer.refresh();
- }
+/*
+ * Refresh Elasticity Tab(non-Javadoc)
+ * @see
+ * org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#refresh()
+ */
+@Override
+public void refresh() {
+ // Refresh Elasticity Constraints
+ this.appComponentElasticityRequirements.clear();
+ getElasticityConstraints();
+ this.tableViewer.refresh();
+ // Refresh Elasticity Actions
+ this.appComponentResizingActions.clear();
+ getResizingActions();
+ this.tableResizingActionsViewer.refresh();
+}
}
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/property/CompositeElasticity.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/property/CompositeElasticity.java
index d90d5d4..1d6b7ce 100644
--- a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/property/CompositeElasticity.java
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/editor/property/CompositeElasticity.java
@@ -74,796 +74,691 @@
/**
* Composite Component Properties - Elasticity Tab
*/
-public class CompositeElasticity
- extends GFPropertySection implements ITabbedPropertyConstants
+public class CompositeElasticity extends GFPropertySection
+implements ITabbedPropertyConstants
{
- Composite client;
- Section section;
- private Table table;
- private Button addButton;
- private Button removeButton;
- TableViewer tableViewer;
- List<TPolicy> appComponentElasticityRequirements = new ArrayList<TPolicy>();
- Section sectionRA;
- private Table tableResizingActions;
- private Button removeButtonRA;
- private Button addButtonRA;
- private Button conditionButtonRA;
- TableViewer tableResizingActionsViewer;
- List<TPolicy> appComponentResizingActions = new ArrayList<TPolicy>();
- protected Tosca_Elasticity_ExtensionsFactory elasticityFactory = Tosca_Elasticity_ExtensionsFactory.eINSTANCE;
+Composite client;
+Section section;
+private Table table;
+private Button addButton;
+private Button removeButton;
+TableViewer tableViewer;
+List<TPolicy> appComponentElasticityRequirements = new ArrayList<TPolicy>();
+Section sectionRA;
+private Table tableResizingActions;
+private Button removeButtonRA;
+private Button addButtonRA;
+private Button conditionButtonRA;
+TableViewer tableResizingActionsViewer;
+List<TPolicy> appComponentResizingActions = new ArrayList<TPolicy>();
+protected Tosca_Elasticity_ExtensionsFactory elasticityFactory = Tosca_Elasticity_ExtensionsFactory.eINSTANCE;
- @Override
- public void createControls( final Composite parent,
- TabbedPropertySheetPage tabbedPropertySheetPage )
- {
- super.createControls( parent, tabbedPropertySheetPage );
- FormToolkit toolkit = new FormToolkit( parent.getDisplay() );
- // Application Component Elasticity Requirements Section
- this.section = toolkit.createSection( parent, Section.TITLE_BAR );
- this.section.setText( "Application Component Elasticity Constraints" ); //$NON-NLS-1$
- Composite client = toolkit.createComposite( this.section, SWT.WRAP );
- Composite client1 = toolkit.createComposite( client, SWT.WRAP );
- Composite client2 = toolkit.createComposite( client, SWT.WRAP );
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- layout.marginTop = 15;
- layout.verticalSpacing = 15;
- layout.marginWidth = 2;
- layout.marginHeight = 2;
- client.setLayout( layout );
- layout = new GridLayout();
- layout.numColumns = 1;
- client1.setLayout( layout );
- layout = new GridLayout();
- layout.numColumns = 1;
- client2.setLayout( layout );
- GridData gd;
- this.table = new Table( client1, SWT.BORDER
- | SWT.VIRTUAL
- | SWT.MULTI
- | SWT.FULL_SELECTION );
- this.table.setHeaderVisible( true );
- this.table.setLinesVisible( false );
- this.table.getHorizontalBar().setEnabled( false );
- gd = new GridData( 300, this.table.getItemHeight() * 4 );
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
- this.table.setLayoutData( gd );
- TableLayout tableLayout = new TableLayout();
- this.table.setLayout( tableLayout );
- TableColumn nameColumn = new TableColumn( this.table, SWT.CENTER );
- ColumnLayoutData data = new ColumnWeightData( 100 );
- tableLayout.addColumnData( data );
- data = new ColumnWeightData( 100 );
- tableLayout.addColumnData( data );
- data = new ColumnWeightData( 150 );
- tableLayout.addColumnData( data );
- nameColumn.setText( "Constraint" ); //$NON-NLS-1$
- this.tableViewer = new TableViewer( this.table );
- ElasticityConstraintsProvider ERProvider = new ElasticityConstraintsProvider();
- IStructuredContentProvider contentProvider = ERProvider.ERContentProvider;
- this.tableViewer.setContentProvider( contentProvider );
- this.tableViewer.setLabelProvider( ERProvider.ERContentLabelProvider );
- this.tableViewer.setInput( this.appComponentElasticityRequirements );
- this.addButton = new Button( client2, SWT.PUSH );
- this.addButton.setText( "Add" ); //$NON-NLS-1$
- gd = new GridData();
- gd.widthHint = 60;
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- this.addButton.setLayoutData( gd );
- // Listener for Add button
- this.addButton.addSelectionListener( new SelectionListener() {
+@Override
+public void createControls( final Composite parent,
+ TabbedPropertySheetPage tabbedPropertySheetPage )
+{
+ super.createControls( parent, tabbedPropertySheetPage );
+ FormToolkit toolkit = new FormToolkit( parent.getDisplay() );
+ // Application Component Elasticity Requirements Section
+ this.section = toolkit.createSection( parent, Section.TITLE_BAR );
+ this.section.setText( "Application Component Elasticity Constraints" ); //$NON-NLS-1$
+ Composite client = toolkit.createComposite( this.section, SWT.WRAP );
+ Composite client1 = toolkit.createComposite( client, SWT.WRAP );
+ Composite client2 = toolkit.createComposite( client, SWT.WRAP );
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 2;
+ layout.marginTop = 15;
+ layout.verticalSpacing = 15;
+ layout.marginWidth = 2;
+ layout.marginHeight = 2;
+ client.setLayout( layout );
+ layout = new GridLayout();
+ layout.numColumns = 1;
+ client1.setLayout( layout );
+ layout = new GridLayout();
+ layout.numColumns = 1;
+ client2.setLayout( layout );
+ GridData gd;
+ this.table = new Table( client1, SWT.BORDER
+ | SWT.VIRTUAL
+ | SWT.MULTI
+ | SWT.FULL_SELECTION );
+ this.table.setHeaderVisible( true );
+ this.table.setLinesVisible( false );
+ this.table.getHorizontalBar().setEnabled( false );
+ gd = new GridData( 300, this.table.getItemHeight() * 4 );
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
+ this.table.setLayoutData( gd );
+ TableLayout tableLayout = new TableLayout();
+ this.table.setLayout( tableLayout );
+ TableColumn nameColumn = new TableColumn( this.table, SWT.CENTER );
+ ColumnLayoutData data = new ColumnWeightData( 100 );
+ tableLayout.addColumnData( data );
+ data = new ColumnWeightData( 100 );
+ tableLayout.addColumnData( data );
+ data = new ColumnWeightData( 150 );
+ tableLayout.addColumnData( data );
+ nameColumn.setText( "Constraint" ); //$NON-NLS-1$
+ this.tableViewer = new TableViewer( this.table );
+ ElasticityConstraintsProvider ERProvider = new ElasticityConstraintsProvider();
+ IStructuredContentProvider contentProvider = ERProvider.ERContentProvider;
+ this.tableViewer.setContentProvider( contentProvider );
+ this.tableViewer.setLabelProvider( ERProvider.ERContentLabelProvider );
+ this.tableViewer.setInput( this.appComponentElasticityRequirements );
+ this.addButton = new Button( client2, SWT.PUSH );
+ this.addButton.setText( "Add" ); //$NON-NLS-1$
+ gd = new GridData();
+ gd.widthHint = 60;
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ this.addButton.setLayoutData( gd );
+ // Listener for Add button
+ this.addButton.addSelectionListener( new SelectionListener() {
- @Override
- public void widgetSelected( SelectionEvent e ) {
- editDataStagingEntry( null );
- }
+ @Override
+ public void widgetSelected( SelectionEvent e ) {
+ editDataStagingEntry( null );
+ }
- @Override
- public void widgetDefaultSelected( final SelectionEvent e ) {
- // TODO Auto-generated method stub
- }
- } );
- this.removeButton = new Button( client2, SWT.PUSH );
- this.removeButton.setText( "Remove" ); //$NON-NLS-1$
- gd = new GridData();
- gd.widthHint = 60;
- gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- this.removeButton.setLayoutData( gd );
- // Listener for Remove button
- this.removeButton.addSelectionListener( new SelectionListener() {
+ @Override
+ public void widgetDefaultSelected( final SelectionEvent e ) {
+ // TODO Auto-generated method stub
+ }
+ } );
+ this.removeButton = new Button( client2, SWT.PUSH );
+ this.removeButton.setText( "Remove" ); //$NON-NLS-1$
+ gd = new GridData();
+ gd.widthHint = 60;
+ gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ this.removeButton.setLayoutData( gd );
+ // Listener for Remove button
+ this.removeButton.addSelectionListener( new SelectionListener() {
- @Override
- public void widgetSelected( final SelectionEvent e ) {
- removeApplicationComponentElasticityRequirement( getSelectedObject() );
- }
+ @Override
+ public void widgetSelected( final SelectionEvent e ) {
+ removeApplicationComponentElasticityRequirement( getSelectedObject() );
+ }
- @Override
- public void widgetDefaultSelected( final SelectionEvent e ) {
- // TODO Auto-generated method stub
- }
- } );
- // Add section components to the toolkit
- toolkit.adapt( this.table, true, true );
- toolkit.adapt( this.addButton, true, true );
- toolkit.adapt( this.removeButton, true, true );
- this.section.setClient( client );
- // Application Component Elasticity Actions Section
- this.sectionRA = toolkit.createSection( parent, Section.TITLE_BAR );
- this.sectionRA.setText( "Elasticity Strategies" ); //$NON-NLS-1$
- Composite clientRA = toolkit.createComposite( this.sectionRA, SWT.WRAP );
- Composite clientRA1 = toolkit.createComposite( clientRA, SWT.WRAP );
- Composite clientRA2 = toolkit.createComposite( clientRA, SWT.WRAP );
- GridLayout layoutRA;
- layoutRA = new GridLayout();
- layoutRA.numColumns = 2;
- layoutRA.marginTop = 15;
- layoutRA.verticalSpacing = 15;
- layoutRA.marginWidth = 2;
- layoutRA.marginHeight = 2;
- clientRA.setLayout( layoutRA );
- layoutRA = new GridLayout();
- layoutRA.numColumns = 1;
- clientRA1.setLayout( layoutRA );
- layoutRA = new GridLayout();
- layoutRA.numColumns = 1;
- clientRA2.setLayout( layoutRA );
- this.tableResizingActions = new Table( clientRA1, SWT.BORDER
- | SWT.VIRTUAL
- | SWT.MULTI
- | SWT.FULL_SELECTION );
- this.tableResizingActions.setHeaderVisible( true );
- this.tableResizingActions.setLinesVisible( false );
- this.tableResizingActions.getHorizontalBar().setEnabled( false );
- GridData gdRA;
- gdRA = new GridData( 300, this.tableResizingActions.getItemHeight() * 4 );
- gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- gdRA.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
- this.tableResizingActions.setLayoutData( gdRA );
- TableLayout tableLayoutRA = new TableLayout();
- this.tableResizingActions.setLayout( tableLayoutRA );
- TableColumn nameColumnRA = new TableColumn( this.tableResizingActions,
- SWT.CENTER );
- nameColumnRA.setText( "Strategy" ); //$NON-NLS-1$
- nameColumnRA.setWidth( 100 );
- ColumnWeightData dataRA = new ColumnWeightData( 100 );
- tableLayoutRA.addColumnData( dataRA );
- // Set the Elasticity Actions table viewer
- ResizingActionsProvider RAProvider = new ResizingActionsProvider();
- this.tableResizingActionsViewer = new TableViewer( this.tableResizingActions );
- IStructuredContentProvider contentProviderRA = RAProvider.RAContentProvider;
- this.tableResizingActionsViewer.setContentProvider( contentProviderRA );
- this.tableResizingActionsViewer.setLabelProvider( RAProvider.RAContentLabelProvider );
- this.tableResizingActionsViewer.setInput( this.appComponentResizingActions );
- // Add Elasticity Strategy button
- this.addButtonRA = new Button( clientRA2, SWT.PUSH );
- this.addButtonRA.setText( "Add" ); //$NON-NLS-1$
- // Listener for Adding Elasticity Strategy button
- this.addButtonRA.addSelectionListener( new SelectionListener() {
+ @Override
+ public void widgetDefaultSelected( final SelectionEvent e ) {
+ // TODO Auto-generated method stub
+ }
+ } );
+ // Add section components to the toolkit
+ toolkit.adapt( this.table, true, true );
+ toolkit.adapt( this.addButton, true, true );
+ toolkit.adapt( this.removeButton, true, true );
+ this.section.setClient( client );
+ // Application Component Elasticity Actions Section
+ this.sectionRA = toolkit.createSection( parent, Section.TITLE_BAR );
+ this.sectionRA.setText( "Elasticity Strategies" ); //$NON-NLS-1$
+ Composite clientRA = toolkit.createComposite( this.sectionRA, SWT.WRAP );
+ Composite clientRA1 = toolkit.createComposite( clientRA, SWT.WRAP );
+ Composite clientRA2 = toolkit.createComposite( clientRA, SWT.WRAP );
+ GridLayout layoutRA;
+ layoutRA = new GridLayout();
+ layoutRA.numColumns = 2;
+ layoutRA.marginTop = 15;
+ layoutRA.verticalSpacing = 15;
+ layoutRA.marginWidth = 2;
+ layoutRA.marginHeight = 2;
+ clientRA.setLayout( layoutRA );
+ layoutRA = new GridLayout();
+ layoutRA.numColumns = 1;
+ clientRA1.setLayout( layoutRA );
+ layoutRA = new GridLayout();
+ layoutRA.numColumns = 1;
+ clientRA2.setLayout( layoutRA );
+ this.tableResizingActions = new Table( clientRA1, SWT.BORDER
+ | SWT.VIRTUAL
+ | SWT.MULTI
+ | SWT.FULL_SELECTION );
+ this.tableResizingActions.setHeaderVisible( true );
+ this.tableResizingActions.setLinesVisible( false );
+ this.tableResizingActions.getHorizontalBar().setEnabled( false );
+ GridData gdRA;
+ gdRA = new GridData( 300, this.tableResizingActions.getItemHeight() * 4 );
+ gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ gdRA.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
+ this.tableResizingActions.setLayoutData( gdRA );
+ TableLayout tableLayoutRA = new TableLayout();
+ this.tableResizingActions.setLayout( tableLayoutRA );
+ TableColumn nameColumnRA = new TableColumn( this.tableResizingActions,
+ SWT.CENTER );
+ nameColumnRA.setText( "Strategy" ); //$NON-NLS-1$
+ nameColumnRA.setWidth( 100 );
+ ColumnWeightData dataRA = new ColumnWeightData( 100 );
+ tableLayoutRA.addColumnData( dataRA );
+ // Set the Elasticity Actions table viewer
+ ResizingActionsProvider RAProvider = new ResizingActionsProvider();
+ this.tableResizingActionsViewer = new TableViewer( this.tableResizingActions );
+ IStructuredContentProvider contentProviderRA = RAProvider.RAContentProvider;
+ this.tableResizingActionsViewer.setContentProvider( contentProviderRA );
+ this.tableResizingActionsViewer.setLabelProvider( RAProvider.RAContentLabelProvider );
+ this.tableResizingActionsViewer.setInput( this.appComponentResizingActions );
+ // Add Elasticity Strategy button
+ this.addButtonRA = new Button( clientRA2, SWT.PUSH );
+ this.addButtonRA.setText( "Add" ); //$NON-NLS-1$
+ // Listener for Adding Elasticity Strategy button
+ this.addButtonRA.addSelectionListener( new SelectionListener() {
- @Override
- public void widgetSelected( final SelectionEvent e ) {
- editDataStagingEntryRA( getSelectedObject() );
- }
+ @Override
+ public void widgetSelected( final SelectionEvent e ) {
+ editDataStagingEntryRA( getSelectedObject() );
+ }
- @Override
- public void widgetDefaultSelected( final SelectionEvent e ) {
- // TODO Auto-generated method stub
- }
- } );
- gdRA = new GridData();
- gdRA.widthHint = 60;
- gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- this.addButtonRA.setLayoutData( gdRA );
- this.removeButtonRA = new Button( clientRA2, SWT.PUSH );
- this.removeButtonRA.setText( "Remove" ); //$NON-NLS-1$
- // Listener for Remove Elasticity Strategy button
- this.removeButtonRA.addSelectionListener( new SelectionListener() {
+ @Override
+ public void widgetDefaultSelected( final SelectionEvent e ) {
+ // TODO Auto-generated method stub
+ }
+ } );
+ gdRA = new GridData();
+ gdRA.widthHint = 60;
+ gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ this.addButtonRA.setLayoutData( gdRA );
+ this.removeButtonRA = new Button( clientRA2, SWT.PUSH );
+ this.removeButtonRA.setText( "Remove" ); //$NON-NLS-1$
+ // Listener for Remove Elasticity Strategy button
+ this.removeButtonRA.addSelectionListener( new SelectionListener() {
- @Override
- public void widgetSelected( final SelectionEvent e ) {
- removeApplicationComponentResizingAction( getSelectedElasticityStrategy() );
- }
+ @Override
+ public void widgetSelected( final SelectionEvent e ) {
+ removeApplicationComponentResizingAction( getSelectedElasticityStrategy() );
+ }
- @Override
- public void widgetDefaultSelected( final SelectionEvent e ) {
- // TODO Auto-generated method stub
- }
- } );
- gdRA = new GridData();
- gdRA.widthHint = 60;
- gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- this.removeButtonRA.setLayoutData( gdRA );
- this.conditionButtonRA = new Button( clientRA2, SWT.PUSH );
- this.conditionButtonRA.setText( "Condition" ); //$NON-NLS-1$
- // Listener for Remove Elasticity Strategy button
- this.conditionButtonRA.addSelectionListener( new SelectionListener() {
+ @Override
+ public void widgetDefaultSelected( final SelectionEvent e ) {
+ // TODO Auto-generated method stub
+ }
+ } );
+ gdRA = new GridData();
+ gdRA.widthHint = 60;
+ gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ this.removeButtonRA.setLayoutData( gdRA );
+ this.conditionButtonRA = new Button( clientRA2, SWT.PUSH );
+ this.conditionButtonRA.setText( "Condition" ); //$NON-NLS-1$
+ // Listener for Remove Elasticity Strategy button
+ this.conditionButtonRA.addSelectionListener( new SelectionListener() {
- @Override
- public void widgetSelected( final SelectionEvent e ) {
- addStrategyCondition( getSelectedElasticityStrategy() );
- }
+ @Override
+ public void widgetSelected( final SelectionEvent e ) {
+ addStrategyCondition( getSelectedElasticityStrategy() );
+ }
- @Override
- public void widgetDefaultSelected( final SelectionEvent e ) {
- // TODO Auto-generated method stub
- }
- } );
- gdRA = new GridData();
- gdRA.widthHint = 60;
- gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- this.conditionButtonRA.setLayoutData( gdRA );
- // Add section components to the toolkit
- toolkit.adapt( this.tableResizingActions, true, true );
- toolkit.adapt( this.removeButtonRA, true, true );
- toolkit.adapt( this.addButtonRA, true, true );
- // toolkit.adapt( this.uploadButtonRA, true, true );
- toolkit.adapt( this.conditionButtonRA, true, true );
- this.sectionRA.setClient( clientRA );
- }
+ @Override
+ public void widgetDefaultSelected( final SelectionEvent e ) {
+ // TODO Auto-generated method stub
+ }
+ } );
+ gdRA = new GridData();
+ gdRA.widthHint = 60;
+ gdRA.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
+ this.conditionButtonRA.setLayoutData( gdRA );
+ // Add section components to the toolkit
+ toolkit.adapt( this.tableResizingActions, true, true );
+ toolkit.adapt( this.removeButtonRA, true, true );
+ toolkit.adapt( this.addButtonRA, true, true );
+ // toolkit.adapt( this.uploadButtonRA, true, true );
+ toolkit.adapt( this.conditionButtonRA, true, true );
+ this.sectionRA.setClient( clientRA );
+}
- // Add Application Component Elasticity Requirement
- void editDataStagingEntry( final TPolicy selectedObject ) {
- ElasticityConstraintDialog dialog;
- if( selectedObject == null ) {
- // Add button is pressed
- dialog = new ElasticityConstraintDialog( this.section.getShell(),
- "Application Component" ); //$NON-NLS-1$
- if( dialog.open() == Window.OK ) {
- String newElasticityConstraint = dialog.getElasticityConstraint();
+// Add Application Component Elasticity Requirement
+void editDataStagingEntry( final TPolicy selectedObject ) {
+ ElasticityConstraintDialog dialog;
+ if( selectedObject == null ) {
+ // Add button is pressed
+ dialog = new ElasticityConstraintDialog( this.section.getShell(),
+ "Application Component" ); //$NON-NLS-1$
+ if( dialog.open() == Window.OK ) {
+ String newElasticityConstraint = dialog.getElasticityConstraint();
+
+ if( newElasticityConstraint != null ) {
- if (newElasticityConstraint.contains( "<" )){
+ if( newElasticityConstraint.contains( "<" ) ) {
String[] cond = newElasticityConstraint.split( "<" );
- newElasticityConstraint = cond[0] + "<" + cond[1];
- }
- else if (newElasticityConstraint.contains( ">" )){
+ newElasticityConstraint = cond[ 0 ] + "<" + cond[ 1 ];
+ } else if( newElasticityConstraint.contains( ">" ) ) {
String[] cond = newElasticityConstraint.split( ">" );
- newElasticityConstraint = cond[0] + ">" + cond[1];
- }
+ newElasticityConstraint = cond[ 0 ] + ">" + cond[ 1 ];
+ }
-
- SyblElasticityRequirementsDescription newSYBLConstraint = dialog.getSYBLConstraint();
- if( newElasticityConstraint != null ) {
- // Add Application Component Elasticity Requirement to TOSCA
- PictogramElement pe = getSelectedPictogramElement();
- Object bo = null;
- if( pe != null ) {
- bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
+ // Add Application Component Elasticity Requirement to TOSCA
+ PictogramElement pe = getSelectedPictogramElement();
+ Object bo = null;
+ if( pe != null ) {
+ bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ }
+ // Find the substitute TNodeTemplate
+ TServiceTemplate serviceTemplate = ( TServiceTemplate )bo;
+ TNodeTemplate substituteNode = null;
+ ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+ for( TNodeTemplate tempNodeTemplate : model.getDocumentRoot()
+ .getDefinitions()
+ .getServiceTemplate()
+ .get( 0 )
+ .getTopologyTemplate()
+ .getNodeTemplate() )
+ {
+ if( tempNodeTemplate.getId()
+ .toString()
+ .compareTo( serviceTemplate.getId().toString() ) == 0 )
+ {
+ substituteNode = tempNodeTemplate;
+ break;
}
-
-
- // Find the substitute TNodeTemplate
- TServiceTemplate serviceTemplate = (TServiceTemplate) bo;
- TNodeTemplate substituteNode = null;
- ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
- for (TNodeTemplate tempNodeTemplate : model.getDocumentRoot()
- .getDefinitions()
- .getServiceTemplate()
- .get( 0 )
- .getTopologyTemplate()
- .getNodeTemplate()){
-
- if ( tempNodeTemplate.getId().toString().compareTo( serviceTemplate.getId().toString()) == 0 )
- {
- substituteNode = tempNodeTemplate;
- break;
- }
-
- }
-
- if ( substituteNode == null)
- return;
-
- final TNodeTemplateExtension nodeTemplate = (TNodeTemplateExtension) substituteNode;
- if( nodeTemplate.getPolicies() == null ) {
- final PoliciesType nodePolicyList = ToscaFactory.eINSTANCE.createPoliciesType();
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( nodeTemplate );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- @Override
- protected void doExecute() {
- nodeTemplate.setPolicies( nodePolicyList );
- }
- } );
- }
- PoliciesType nodePolicyList = nodeTemplate.getPolicies();
- final EList<TPolicy> policy = nodePolicyList.getPolicy();
- final TPolicy newPolicy = createNewPolicy( "Constraint",
- newElasticityConstraint, newSYBLConstraint );
+ }
+ if( substituteNode == null )
+ return;
+ final TNodeTemplateExtension nodeTemplate = ( TNodeTemplateExtension )substituteNode;
+ if( nodeTemplate.getPolicies() == null ) {
+ final PoliciesType nodePolicyList = ToscaFactory.eINSTANCE.createPoliciesType();
TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( nodeTemplate );
editingDomain.getCommandStack()
.execute( new RecordingCommand( editingDomain ) {
@Override
protected void doExecute() {
- policy.add( newPolicy );
+ nodeTemplate.setPolicies( nodePolicyList );
}
} );
- // Add Application Component Elasticity Requirement to temp list
- this.appComponentElasticityRequirements.add( newPolicy );
- this.tableViewer.refresh();
- } else {
}
+ PoliciesType nodePolicyList = nodeTemplate.getPolicies();
+ final EList<TPolicy> policy = nodePolicyList.getPolicy();
+ final TPolicy newPolicy = ToscaFactory.eINSTANCE.createTPolicy();
+ String type = "Constraint";
+ QName policyTypeName = new QName( "http://www.example.org/SYBL",
+ type,
+ null );
+ newPolicy.setPolicyType( policyTypeName );
+ newPolicy.setName( type.toUpperCase() + " " + newElasticityConstraint );
+
+ String id = "G" + ( ( Integer )nodeTemplate.hashCode() ).toString() + nodePolicyList.getPolicy().size();
+ QName qnamePolicyTemplate = new QName( id );
+ newPolicy.setPolicyRef( qnamePolicyTemplate );
+
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( nodeTemplate );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
+
+ @Override
+ protected void doExecute() {
+ policy.add( newPolicy );
+ }
+ } );
+ // Add Application Component Elasticity Requirement to temp list
+ this.appComponentElasticityRequirements.add( newPolicy );
+ this.tableViewer.refresh();
}
}
}
+}
- void editDataStagingEntryRA( final TPolicy selectedObject ) {
- ElasticityStrategyDialog dialog;
- if( selectedObject == null ) {
- // Add button is pressed
- dialog = new ElasticityStrategyDialog( this.section.getShell(),
- "Application Component" ); //$NON-NLS-1$
- if( dialog.open() == Window.OK ) {
- String newElasticityStrategy = dialog.getElasticityStrategy();
- SyblElasticityRequirementsDescription newSYBLStrategy = dialog.getSYBLStrategy();
- if( newElasticityStrategy != null ) {
- // Add Application Component Elasticity Strategy to TOSCA
- PictogramElement pe = getSelectedPictogramElement();
- Object bo = null;
- if( pe != null ) {
- bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- }
- // Find the substitute TNodeTemplate
- TServiceTemplate serviceTemplate = (TServiceTemplate) bo;
- TNodeTemplate substituteNode = null;
- ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
- for (TNodeTemplate tempNodeTemplate : model.getDocumentRoot()
- .getDefinitions()
- .getServiceTemplate()
- .get( 0 )
- .getTopologyTemplate()
- .getNodeTemplate()){
-
- if ( tempNodeTemplate.getId().toString().compareTo( serviceTemplate.getId().toString()) == 0 )
- {
- substituteNode = tempNodeTemplate;
- break;
- }
-
- }
-
- if ( substituteNode == null)
- return;
-
- final TNodeTemplateExtension nodeTemplate = (TNodeTemplateExtension) substituteNode;
- if( nodeTemplate.getPolicies() == null ) {
- final PoliciesType nodePolicyList = ToscaFactory.eINSTANCE.createPoliciesType();
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
+void editDataStagingEntryRA( final TPolicy selectedObject ) {
+ ElasticityStrategyDialog dialog;
+ if( selectedObject == null ) {
+ // Add button is pressed
+ PictogramElement pe = getSelectedPictogramElement();
+ Object bo = null;
+ if( pe != null ) {
+ bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ }
+ // Find the substitute TNodeTemplate
+ TServiceTemplate serviceTemplate = ( TServiceTemplate )bo;
+
+ dialog = new ElasticityStrategyDialog( this.section.getShell(),
+ "Application Component", serviceTemplate.getName() ); //$NON-NLS-1$
+ if( dialog.open() == Window.OK ) {
+ String newElasticityStrategy = dialog.getElasticityStrategy();
+ if( newElasticityStrategy != null ) {
+ // Add Application Component Elasticity Strategy to TOSCA
- @Override
- protected void doExecute() {
- nodeTemplate.setPolicies( nodePolicyList );
- }
- } );
+ TNodeTemplate substituteNode = null;
+ ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+ for( TNodeTemplate tempNodeTemplate : model.getDocumentRoot()
+ .getDefinitions()
+ .getServiceTemplate()
+ .get( 0 )
+ .getTopologyTemplate()
+ .getNodeTemplate() )
+ {
+ if( tempNodeTemplate.getId()
+ .toString()
+ .compareTo( serviceTemplate.getId().toString() ) == 0 )
+ {
+ substituteNode = tempNodeTemplate;
+ break;
}
- PoliciesType nodePolicyList = nodeTemplate.getPolicies();
- final EList<TPolicy> policy = nodePolicyList.getPolicy();
- final TPolicy newPolicy = createNewPolicy( "Strategy",
- newElasticityStrategy, newSYBLStrategy );
+ }
+ if( substituteNode == null )
+ return;
+ final TNodeTemplateExtension nodeTemplate = ( TNodeTemplateExtension )substituteNode;
+ if( nodeTemplate.getPolicies() == null ) {
+ final PoliciesType nodePolicyList = ToscaFactory.eINSTANCE.createPoliciesType();
TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
editingDomain.getCommandStack()
.execute( new RecordingCommand( editingDomain ) {
@Override
protected void doExecute() {
- policy.add( newPolicy );
+ nodeTemplate.setPolicies( nodePolicyList );
}
} );
- this.appComponentResizingActions.add( newPolicy );
- this.tableResizingActionsViewer.refresh();
- } else {
- // Edit
}
- }
- }
- }
-
-
- // type is either "Constraint" or "Strategy"
- TPolicy createNewPolicy(String type, String policyName, SyblElasticityRequirementsDescription syblPolicy){
-
- // Create Policy Template
-
- final TPolicyTemplate newPolicyTemplate = ToscaFactory.eINSTANCE.createTPolicyTemplate();
-
- QName policyTypeName = new QName( "http://www.example.org/SYBL", type, null );
-
- newPolicyTemplate.setType( policyTypeName );
-
- String id = "G" + ( ( Integer )newPolicyTemplate.hashCode() ).toString();
-
- newPolicyTemplate.setId( id );
-
-
- // Set the Properties of the Policy Template
-
- PropertiesType properties = ToscaFactory.eINSTANCE.createPropertiesType();
-
- // Add the SYBL Policy to the FeatureMap of the Policy's Properties element
- Entry e = FeatureMapUtil.createEntry( SyblPackage.eINSTANCE.getDocumentRoot_SYBLElasticityRequirementsDescription(), syblPolicy );
- properties.getAny().add( e );
-
- newPolicyTemplate.setProperties( properties );
+ PoliciesType nodePolicyList = nodeTemplate.getPolicies();
+ final EList<TPolicy> policy = nodePolicyList.getPolicy();
+ final TPolicy newPolicy = ToscaFactory.eINSTANCE.createTPolicy();
+ String type = "Strategy";
+ QName policyTypeName = new QName( "http://www.example.org/SYBL",
+ type,
+ null );
+ newPolicy.setPolicyType( policyTypeName );
+ newPolicy.setName( type.toUpperCase() + " " + newElasticityStrategy );
- // Add the new Policy Template to the TOSCA Definitions element
-
- final ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
-
- DefinitionsType definitions = model.getDocumentRoot().getDefinitions();
-
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( definitions );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
+ String id = "G" + ( ( Integer )nodeTemplate.hashCode() ).toString() + nodePolicyList.getPolicy().size();
+ QName qnamePolicyTemplate = new QName( id );
+ newPolicy.setPolicyRef( qnamePolicyTemplate );
+
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
- @Override
- protected void doExecute() {
- model.getDocumentRoot().getDefinitions().getPolicyTemplate().add( newPolicyTemplate );
-
- }
- } );
-
- // Assign the created Policy Template to the new Policy
-
- TPolicy newPolicy = ToscaFactory.eINSTANCE.createTPolicy();
-
- QName qnamePolicyTemplate = new QName( newPolicyTemplate.getId() );
-
- newPolicy.setPolicyType( policyTypeName );
-
- newPolicy.setPolicyRef( qnamePolicyTemplate );
-
- newPolicy.setName( type.toUpperCase() + " " + policyName );
-
- return newPolicy;
+ @Override
+ protected void doExecute() {
+ policy.add( newPolicy );
+ }
+ } );
+ this.appComponentResizingActions.add( newPolicy );
+ this.tableResizingActionsViewer.refresh();
+ } else {
+ // Edit
+ }
+ }
}
-
- void addStrategyCondition( final TPolicy selectedObject ) {
- if( selectedObject == null )
- return;
-
- // Find the substitute TNodeTemplate
+}
- PictogramElement pe = getSelectedPictogramElement();
- Object bo = null;
- if( pe != null ) {
- bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- }
-
- ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
-
-
- ElasticityConditionDialog dialog;
-
- dialog = new ElasticityConditionDialog( this.section.getShell(),
- "Composite Component",
- model,
- selectedObject.getName() ); //$NON-NLS-1$
- String newElasticityCondition = null;
- ConditionType policyCondition = null;
- if( dialog.open() == Window.OK ) {
- newElasticityCondition = dialog.getSelectedCondition();
- policyCondition = dialog.getSYBLCondition();
- }
- if( newElasticityCondition == null )
- return;
-
- String newCond = newElasticityCondition;
-
- if (newCond.contains( "<" )){
- String[] cond = newCond.split( "<" );
- newCond = cond[0] + "<" + cond[1];
- }
- else if (newCond.contains( ">" )){
- String[] cond = newCond.split( ">" );
- newCond = cond[0] + ">" + cond[1];
- }
-
- final String condition = newCond;
-
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- @Override
- protected void doExecute() {
- String[] strategy = selectedObject.getName().split( "STRATEGY" );
- selectedObject.setName( strategy[ 0 ]
- + "STRATEGY "
- + condition + " :"
- + strategy[ 1 ] );
- }
- } );
- this.tableResizingActionsViewer.refresh();
-
- //addPolicyCondition( selectedObject, policyCondition);
+void addStrategyCondition( final TPolicy selectedObject ) {
+ if( selectedObject == null )
+ return;
+ // Find the substitute TNodeTemplate
+ PictogramElement pe = getSelectedPictogramElement();
+ Object bo = null;
+ if( pe != null ) {
+ bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
}
-
-// void addPolicyCondition(final TPolicy selectedPolicy, final ConditionType policyCondition){
-//
-// ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
-// EList<TPolicyTemplate> policyTemplates = model.getDocumentRoot().getDefinitions().getPolicyTemplate();
-// TPolicyTemplate policyTemplate = null;
-// for ( TPolicyTemplate tempPolicyTemplate : policyTemplates ){
-// if (tempPolicyTemplate.getId().toString().equals(selectedPolicy.getPolicyRef().toString())){
-// policyTemplate = tempPolicyTemplate;
-// break;
-// }
-// }
-//
-// final SyblElasticityRequirementsDescription syblPolicy = (SyblElasticityRequirementsDescription) policyTemplate.getProperties().getAny().get(0).getValue();
-// TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( policyTemplate );
-// editingDomain.getCommandStack()
-// .execute( new RecordingCommand( editingDomain ) {
-//
-// @Override
-// protected void doExecute() {
-// syblPolicy.getSYBLSpecification().get( 0 ).getStrategy().get( 0 ).setCondition( policyCondition );
-// }
-// } );
-// }
+ ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+ ElasticityConditionDialog dialog;
+ dialog = new ElasticityConditionDialog( this.section.getShell(),
+ "Composite Component",
+ model,
+ selectedObject.getName() ); //$NON-NLS-1$
+ String newElasticityCondition = null;
+ if( dialog.open() == Window.OK ) {
+ newElasticityCondition = dialog.getSelectedCondition();
+ }
+ if( newElasticityCondition == null )
+ return;
+ String newCond = newElasticityCondition;
+ if( newCond.contains( "<" ) ) {
+ String[] cond = newCond.split( "<" );
+ newCond = cond[ 0 ] + "<" + cond[ 1 ];
+ } else if( newCond.contains( ">" ) ) {
+ String[] cond = newCond.split( ">" );
+ newCond = cond[ 0 ] + ">" + cond[ 1 ];
+ }
+ final String condition = newCond;
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
- // Remove the selected Application Component Elasticity Requirement from TOSCA
- void removeApplicationComponentElasticityRequirement( final TPolicy selectedObject )
+ @Override
+ protected void doExecute() {
+ String[] strategy = selectedObject.getName().split( "STRATEGY" );
+ selectedObject.setName( strategy[ 0 ]
+ + "STRATEGY "
+ + condition
+ + " :"
+ + strategy[ 1 ] );
+ }
+ } );
+ this.tableResizingActionsViewer.refresh();
+}
+
+// Remove the selected Application Component Elasticity Requirement from TOSCA
+void removeApplicationComponentElasticityRequirement( final TPolicy selectedObject )
+{
+ PictogramElement pe = getSelectedPictogramElement();
+ Object bo = null;
+ if( pe != null ) {
+ bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ }
+ // Find the substitute TNodeTemplate
+ TServiceTemplate serviceTemplate = ( TServiceTemplate )bo;
+ TNodeTemplate substituteNode = null;
+ ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+ for( TNodeTemplate tempNodeTemplate : model.getDocumentRoot()
+ .getDefinitions()
+ .getServiceTemplate()
+ .get( 0 )
+ .getTopologyTemplate()
+ .getNodeTemplate() )
{
- PictogramElement pe = getSelectedPictogramElement();
- Object bo = null;
- if( pe != null ) {
- bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
+ if( tempNodeTemplate.getId()
+ .toString()
+ .compareTo( serviceTemplate.getId().toString() ) == 0 )
+ {
+ substituteNode = tempNodeTemplate;
+ break;
}
+ }
+ if( substituteNode == null )
+ return;
+ final TNodeTemplateExtension nodeTemplate = ( TNodeTemplateExtension )substituteNode;
+ PoliciesType nodePolicyList = nodeTemplate.getPolicies();
+ final EList<TPolicy> policy = nodePolicyList.getPolicy();
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
- // Find the substitute TNodeTemplate
- TServiceTemplate serviceTemplate = (TServiceTemplate) bo;
- TNodeTemplate substituteNode = null;
- ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
- for (TNodeTemplate tempNodeTemplate : model.getDocumentRoot()
- .getDefinitions()
- .getServiceTemplate()
- .get( 0 )
- .getTopologyTemplate()
- .getNodeTemplate()){
-
- if (tempNodeTemplate.getId().toString().compareTo( serviceTemplate.getId().toString()) == 0 )
- {
- substituteNode = tempNodeTemplate;
- break;
- }
-
- }
-
- if ( substituteNode == null)
- return;
-
- final TNodeTemplateExtension nodeTemplate = (TNodeTemplateExtension) substituteNode;
-
- PoliciesType nodePolicyList = nodeTemplate.getPolicies();
- final EList<TPolicy> policy = nodePolicyList.getPolicy();
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
-
- @Override
- protected void doExecute() {
- for( TPolicy tempPolicy : policy ) {
- if( tempPolicy.getPolicyType().toString().contains( "Constraint" ) ) //$NON-NLS-1$
- if( tempPolicy.getName().compareTo( selectedObject.getName() ) == 0 )
- {
- policy.remove( tempPolicy );
- if( policy.size() == 0 )
- nodeTemplate.setPolicies( null );
- // remove corresponding Policy Template
- String removedPolicyId = tempPolicy.getPolicyRef().toString();
- ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
- DefinitionsType toscaDefinitions = model.getDocumentRoot()
- .getDefinitions();
- final EList<TPolicyTemplate> policyTemplate = toscaDefinitions.getPolicyTemplate();
- for( TPolicyTemplate tempPolicyTemplate : policyTemplate ) {
- if( tempPolicyTemplate.getId().equals( removedPolicyId ) ) {
- policyTemplate.remove( tempPolicyTemplate );
- }
- }
- break;
- }
- }
+ @Override
+ protected void doExecute() {
+ for( TPolicy tempPolicy : policy ) {
+ if( tempPolicy.getPolicyType().toString().contains( "Constraint" ) ) //$NON-NLS-1$
+ if( tempPolicy.getName().compareTo( selectedObject.getName() ) == 0 )
+ {
+ policy.remove( tempPolicy );
+ if( policy.size() == 0 )
+ nodeTemplate.setPolicies( null );
+ break;
+ }
}
- } );
- this.appComponentElasticityRequirements.remove( selectedObject );
- this.tableViewer.refresh();
- }
-
- // Return the selected Elasticity Requirement
- TPolicy getSelectedObject() {
- TPolicy result = null;
- IStructuredSelection selection = ( IStructuredSelection )this.tableViewer.getSelection();
- Object obj = selection.getFirstElement();
- result = ( TPolicy )obj;
- return result;
- }
-
- // Return the selected Elasticity Action
- TPolicy getSelectedElasticityStrategy() {
- TPolicy result = null;
- IStructuredSelection selection = ( IStructuredSelection )this.tableResizingActionsViewer.getSelection();
- Object obj = selection.getFirstElement();
- result = ( TPolicy )obj;
- return result;
- }
-
- /**
- * Get Application Component Elasticity Actions
- */
- public void getResizingActions() {
- PictogramElement pe = getSelectedPictogramElement();
- Object bo = null;
- if( pe != null ) {
- bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- }
- // Find the substitute TNodeTemplate
- TServiceTemplate serviceTemplate = (TServiceTemplate) bo;
- TNodeTemplate substituteNode = null;
- ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
- for (TNodeTemplate tempNodeTemplate : model.getDocumentRoot()
- .getDefinitions()
- .getServiceTemplate()
- .get( 0 )
- .getTopologyTemplate()
- .getNodeTemplate()){
-
- if ( tempNodeTemplate.getId().toString().compareTo( serviceTemplate.getId().toString()) == 0 )
- {
- substituteNode = tempNodeTemplate;
- break;
}
-
- }
-
- if ( substituteNode == null)
- return;
-
- TNodeTemplateExtension appComponent = (TNodeTemplateExtension) substituteNode;
-
- PoliciesType nodePolicyList = appComponent.getPolicies();
- if( nodePolicyList == null )
- return;
- for( TPolicy tempPolicy : nodePolicyList.getPolicy() ) {
- if( tempPolicy.getPolicyType().toString().contains( "Strategy" ) ) //$NON-NLS-1$
- this.appComponentResizingActions.add( tempPolicy );
- }
- }
+ } );
+ this.appComponentElasticityRequirements.remove( selectedObject );
+ this.tableViewer.refresh();
+}
- /**
- * Get Application Component Elasticity Constraints
- */
- public void getElasticityConstraints() {
- PictogramElement pe = getSelectedPictogramElement();
- Object bo = null;
- if( pe != null ) {
- bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
- }
- // Find the substitute TNodeTemplate
- TServiceTemplate serviceTemplate = (TServiceTemplate) bo;
- TNodeTemplate substituteNode = null;
- ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
- for (TNodeTemplate tempNodeTemplate : model.getDocumentRoot()
- .getDefinitions()
- .getServiceTemplate()
- .get( 0 )
- .getTopologyTemplate()
- .getNodeTemplate()){
-
- if ( tempNodeTemplate.getId().toString().compareTo( serviceTemplate.getId().toString()) == 0 )
- {
- substituteNode = tempNodeTemplate;
- break;
- }
-
- }
-
- if ( substituteNode == null)
- return;
-
- TNodeTemplateExtension appComponent = (TNodeTemplateExtension) substituteNode;
- PoliciesType nodePolicyList = appComponent.getPolicies();
- if( nodePolicyList == null )
- return;
- for( TPolicy tempPolicy : nodePolicyList.getPolicy() ) {
- if( tempPolicy.getPolicyType().toString().contains( "Constraint" ) ) //$NON-NLS-1$
- this.appComponentElasticityRequirements.add( tempPolicy );
- }
- }
+// Return the selected Elasticity Requirement
+TPolicy getSelectedObject() {
+ TPolicy result = null;
+ IStructuredSelection selection = ( IStructuredSelection )this.tableViewer.getSelection();
+ Object obj = selection.getFirstElement();
+ result = ( TPolicy )obj;
+ return result;
+}
- // Remove Application Component Elasticity Action
- void removeApplicationComponentResizingAction( final TPolicy selectedObject )
+// Return the selected Elasticity Action
+TPolicy getSelectedElasticityStrategy() {
+ TPolicy result = null;
+ IStructuredSelection selection = ( IStructuredSelection )this.tableResizingActionsViewer.getSelection();
+ Object obj = selection.getFirstElement();
+ result = ( TPolicy )obj;
+ return result;
+}
+
+/**
+ * Get Application Component Elasticity Actions
+ */
+public void getResizingActions() {
+ PictogramElement pe = getSelectedPictogramElement();
+ Object bo = null;
+ if( pe != null ) {
+ bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ }
+ // Find the substitute TNodeTemplate
+ TServiceTemplate serviceTemplate = ( TServiceTemplate )bo;
+ if (serviceTemplate == null)
+ return;
+ TNodeTemplate substituteNode = null;
+ ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+ for( TNodeTemplate tempNodeTemplate : model.getDocumentRoot()
+ .getDefinitions()
+ .getServiceTemplate()
+ .get( 0 )
+ .getTopologyTemplate()
+ .getNodeTemplate() )
{
- PictogramElement pe = getSelectedPictogramElement();
- Object bo = null;
- if( pe != null ) {
- bo = Graphiti.getLinkService()
- .getBusinessObjectForLinkedPictogramElement( pe );
+ if( tempNodeTemplate.getId()
+ .toString()
+ .compareTo( serviceTemplate.getId().toString() ) == 0 )
+ {
+ substituteNode = tempNodeTemplate;
+ break;
}
- // Find the substitute TNodeTemplate
- TServiceTemplate serviceTemplate = (TServiceTemplate) bo;
- TNodeTemplate substituteNode = null;
- ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
- for (TNodeTemplate tempNodeTemplate : model.getDocumentRoot()
- .getDefinitions()
- .getServiceTemplate()
- .get( 0 )
- .getTopologyTemplate()
- .getNodeTemplate()){
-
- if ( tempNodeTemplate.getId().toString().compareTo( serviceTemplate.getId().toString()) == 0 )
- {
- substituteNode = tempNodeTemplate;
- break;
- }
-
- }
-
- if ( substituteNode == null)
- return;
-
- final TNodeTemplateExtension nodeTemplate = (TNodeTemplateExtension) substituteNode;
- PoliciesType nodePolicyList = nodeTemplate.getPolicies();
- final EList<TPolicy> policy = nodePolicyList.getPolicy();
- TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
- editingDomain.getCommandStack()
- .execute( new RecordingCommand( editingDomain ) {
+ }
+ if( substituteNode == null )
+ return;
+ TNodeTemplateExtension appComponent = ( TNodeTemplateExtension )substituteNode;
+ PoliciesType nodePolicyList = appComponent.getPolicies();
+ if( nodePolicyList == null )
+ return;
+ for( TPolicy tempPolicy : nodePolicyList.getPolicy() ) {
+ if( tempPolicy.getPolicyType().toString().contains( "Strategy" ) ) //$NON-NLS-1$
+ this.appComponentResizingActions.add( tempPolicy );
+ }
+}
- @Override
- protected void doExecute() {
- for( TPolicy tempPolicy : policy ) {
- if( tempPolicy.getPolicyType().toString().contains( "Strategy" ) ) //$NON-NLS-1$
- if( tempPolicy.getName().compareTo( selectedObject.getName() ) == 0 )
- {
- policy.remove( tempPolicy );
- if( policy.size() == 0 )
- nodeTemplate.setPolicies( null );
- // remove corresponding Policy Template
- String removedPolicyId = tempPolicy.getPolicyRef().toString();
- ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
- DefinitionsType toscaDefinitions = model.getDocumentRoot()
- .getDefinitions();
- final EList<TPolicyTemplate> policyTemplate = toscaDefinitions.getPolicyTemplate();
- for( TPolicyTemplate tempPolicyTemplate : policyTemplate ) {
- if( tempPolicyTemplate.getId().equals( removedPolicyId ) ) {
- policyTemplate.remove( tempPolicyTemplate );
- }
- }
- break;
- }
- }
+/**
+ * Get Application Component Elasticity Constraints
+ */
+public void getElasticityConstraints() {
+ PictogramElement pe = getSelectedPictogramElement();
+ Object bo = null;
+ if( pe != null ) {
+ bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ }
+ // Find the substitute TNodeTemplate
+ TServiceTemplate serviceTemplate = ( TServiceTemplate )bo;
+
+ if (serviceTemplate == null)
+ return;
+
+ TNodeTemplate substituteNode = null;
+ ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+
+ for( TNodeTemplate tempNodeTemplate : model.getDocumentRoot()
+ .getDefinitions()
+ .getServiceTemplate()
+ .get( 0 )
+ .getTopologyTemplate()
+ .getNodeTemplate() )
+ {
+ if( tempNodeTemplate.getId()
+ .toString()
+ .compareTo( serviceTemplate.getId().toString() ) == 0 )
+ {
+ substituteNode = tempNodeTemplate;
+ break;
+ }
+ }
+ if( substituteNode == null )
+ return;
+ TNodeTemplateExtension appComponent = ( TNodeTemplateExtension )substituteNode;
+ PoliciesType nodePolicyList = appComponent.getPolicies();
+ if( nodePolicyList == null )
+ return;
+ for( TPolicy tempPolicy : nodePolicyList.getPolicy() ) {
+ if( tempPolicy.getPolicyType().toString().contains( "Constraint" ) ) //$NON-NLS-1$
+ this.appComponentElasticityRequirements.add( tempPolicy );
+ }
+}
+
+// Remove Application Component Elasticity Action
+void removeApplicationComponentResizingAction( final TPolicy selectedObject )
+{
+ PictogramElement pe = getSelectedPictogramElement();
+ Object bo = null;
+ if( pe != null ) {
+ bo = Graphiti.getLinkService()
+ .getBusinessObjectForLinkedPictogramElement( pe );
+ }
+ // Find the substitute TNodeTemplate
+ TServiceTemplate serviceTemplate = ( TServiceTemplate )bo;
+ TNodeTemplate substituteNode = null;
+ ToscaModelLayer model = ModelHandler.getModel( EcoreUtil.getURI( getDiagram() ) );
+ for( TNodeTemplate tempNodeTemplate : model.getDocumentRoot()
+ .getDefinitions()
+ .getServiceTemplate()
+ .get( 0 )
+ .getTopologyTemplate()
+ .getNodeTemplate() )
+ {
+ if( tempNodeTemplate.getId()
+ .toString()
+ .compareTo( serviceTemplate.getId().toString() ) == 0 )
+ {
+ substituteNode = tempNodeTemplate;
+ break;
+ }
+ }
+ if( substituteNode == null )
+ return;
+ final TNodeTemplateExtension nodeTemplate = ( TNodeTemplateExtension )substituteNode;
+ PoliciesType nodePolicyList = nodeTemplate.getPolicies();
+ final EList<TPolicy> policy = nodePolicyList.getPolicy();
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( bo );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
+
+ @Override
+ protected void doExecute() {
+ for( TPolicy tempPolicy : policy ) {
+ if( tempPolicy.getPolicyType().toString().contains( "Strategy" ) ) //$NON-NLS-1$
+ if( tempPolicy.getName().compareTo( selectedObject.getName() ) == 0 )
+ {
+ policy.remove( tempPolicy );
+ if( policy.size() == 0 )
+ nodeTemplate.setPolicies( null );
+ break;
+ }
}
- } );
- this.appComponentResizingActions.remove( selectedObject );
- this.tableResizingActionsViewer.refresh();
- }
+ }
+ } );
+ this.appComponentResizingActions.remove( selectedObject );
+ this.tableResizingActionsViewer.refresh();
+}
- /*
- * Refresh Elasticity Tab(non-Javadoc)
- * @see
- * org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#refresh()
- */
- @Override
- public void refresh() {
- // Refresh Elasticity Constraints
- this.appComponentElasticityRequirements.clear();
- getElasticityConstraints();
- this.tableViewer.refresh();
- // Refresh Elasticity Actions
- this.appComponentResizingActions.clear();
- getResizingActions();
- this.tableResizingActionsViewer.refresh();
- }
+/*
+ * Refresh Elasticity Tab(non-Javadoc)
+ * @see
+ * org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#refresh()
+ */
+@Override
+public void refresh() {
+ // Refresh Elasticity Constraints
+ this.appComponentElasticityRequirements.clear();
+ getElasticityConstraints();
+ this.tableViewer.refresh();
+ // Refresh Elasticity Actions
+ this.appComponentResizingActions.clear();
+ getResizingActions();
+ this.tableResizingActionsViewer.refresh();
+}
}
diff --git a/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/elementCreators/CreateArtifactTemplate.java b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/elementCreators/CreateArtifactTemplate.java
new file mode 100644
index 0000000..7b77352
--- /dev/null
+++ b/plugins/org.eclipse.camf.tosca.editor/src/org/eclipse/camf/tosca/elementCreators/CreateArtifactTemplate.java
@@ -0,0 +1,91 @@
+package org.eclipse.camf.tosca.elementCreators;
+
+import java.io.File;
+
+import javax.xml.namespace.QName;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.FeatureMapUtil;
+import org.eclipse.emf.ecore.util.FeatureMap.Entry;
+import org.eclipse.emf.transaction.RecordingCommand;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+
+import org.eclipse.camf.tosca.ArtifactReferencesType;
+import org.eclipse.camf.tosca.DefinitionsType;
+import org.eclipse.camf.tosca.PropertiesType;
+import org.eclipse.camf.tosca.TArtifactReference;
+import org.eclipse.camf.tosca.TArtifactTemplate;
+import org.eclipse.camf.tosca.ToscaFactory;
+import org.eclipse.camf.tosca.editor.ToscaModelLayer;
+import org.eclipse.camf.tosca.elasticity.ScriptArtifactPropertiesType;
+import org.eclipse.camf.tosca.elasticity.Tosca_Elasticity_ExtensionsFactory;
+import org.eclipse.camf.tosca.elasticity.Tosca_Elasticity_ExtensionsPackage;
+
+
+public class CreateArtifactTemplate {
+
+ TArtifactTemplate newArtifactTemplate = null;
+
+ public CreateArtifactTemplate(String artifactName, QName artifactType, final ToscaModelLayer model){
+ if (templateExists(model, artifactName)){
+ return;
+ }
+
+ // Create Artifact Template
+ final TArtifactTemplate artifactTemplate = ToscaFactory.eINSTANCE.createTArtifactTemplate();
+ // Create Script Artifact Properties
+ ScriptArtifactPropertiesType scriptProperties = Tosca_Elasticity_ExtensionsFactory.eINSTANCE.createScriptArtifactPropertiesType();
+ scriptProperties.setLanguage( "Shell" );
+ // Set the Properties of the Policy Template
+ PropertiesType properties = ToscaFactory.eINSTANCE.createPropertiesType();
+ // Add the SYBL Policy to the FeatureMap of the Policy's Properties element
+ Entry e = FeatureMapUtil.createEntry( Tosca_Elasticity_ExtensionsPackage.eINSTANCE.getDocumentRoot_ScriptArtifactProperties(),
+ scriptProperties );
+ properties.getAny().add( e );
+ artifactTemplate.setProperties( properties );
+ artifactTemplate.setId( artifactName );
+ artifactTemplate.setName( "SD"+artifactName );
+ artifactTemplate.setType( artifactType );
+ // Set artifact ref
+ TArtifactReference artifactRef = ToscaFactory.eINSTANCE.createTArtifactReference();
+ artifactRef.setReference( "Scripts" + System.getProperty( "file.separator" ) + artifactName );
+ ArtifactReferencesType artifactRefType = ToscaFactory.eINSTANCE.createArtifactReferencesType();
+ artifactRefType.getArtifactReference().add( artifactRef );
+ artifactTemplate.setArtifactReferences( artifactRefType );
+
+ // Add the new Artifact Template to the TOSCA Definitions element
+ DefinitionsType definitions = model.getDocumentRoot().getDefinitions();
+ TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain( definitions );
+ editingDomain.getCommandStack()
+ .execute( new RecordingCommand( editingDomain ) {
+
+ @Override
+ protected void doExecute() {
+ model.getDocumentRoot()
+ .getDefinitions()
+ .getArtifactTemplate()
+ .add( artifactTemplate );
+ }
+ } );
+
+ this.newArtifactTemplate = artifactTemplate;
+
+ }
+
+ private boolean templateExists(final ToscaModelLayer model, String artifactName){
+
+ for (TArtifactTemplate tempArtifactTemplate : model.getDocumentRoot()
+ .getDefinitions()
+ .getArtifactTemplate()){
+ if (tempArtifactTemplate.getId().equals( artifactName ))
+ return true;
+ }
+
+ return false;
+ }
+
+ public TArtifactTemplate getNewArtifactTemplate(){
+ return this.newArtifactTemplate;
+ }
+}