Merge "Bug 519430 - Allow the possibility to set a specification prefix in Lyo Modeller"
diff --git a/org.eclipse.lyo.tools.toolchain.design/description/ToolChainModel.odesign b/org.eclipse.lyo.tools.toolchain.design/description/ToolChainModel.odesign
index 8652d0a..e69b05c 100644
--- a/org.eclipse.lyo.tools.toolchain.design/description/ToolChainModel.odesign
+++ b/org.eclipse.lyo.tools.toolchain.design/description/ToolChainModel.odesign
@@ -275,6 +275,18 @@
<containerView name="containerView"/>
<initialOperation/>
</ownedTools>
+ <ownedTools xsi:type="tool_1:PopupMenu" name="Specification.DomainSpecificationMenu" label="OSLC" precondition="[self.oclIsTypeOf(DomainSpecification)/]">
+ <menuItemDescription xsi:type="tool_1:OperationAction" name="Specification.DomainSpecificationMenu.SetPrefix" label="Set Domain Prefix" precondition="[self.oclIsTypeOf(DomainSpecification)/]">
+ <view name="views">
+ <subVariables xsi:type="tool_1:AcceleoVariable" name="domainSpecification" computationExpression="[views->any(true).oclAsType(DNodeContainer).target/]"/>
+ </view>
+ <initialOperation>
+ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="[domainSpecification.namespacePrefix/]">
+ <subModelOperations xsi:type="tool_1:SetValue" featureName="name" valueExpression="[let userInput : String = self.promptForString('Enter the domain namespace prefix', 'Enter the domain namespace prefix', self.name) in (if (userInput = null) then name else userInput endif) /]"/>
+ </firstModelOperations>
+ </initialOperation>
+ </menuItemDescription>
+ </ownedTools>
</toolSections>
</defaultLayer>
</ownedRepresentations>
@@ -709,5 +721,6 @@
</defaultLayer>
</ownedRepresentations>
<ownedJavaExtensions qualifiedClassName="org::eclipse::lyo::tools::toolchain::design::queries"/>
+ <ownedJavaExtensions qualifiedClassName="org::eclipse::lyo::tools::toolchain::design::DialogInputServices"/>
</ownedViewpoints>
</description:Group>
diff --git a/org.eclipse.lyo.tools.toolchain.design/src/org/eclipse/lyo/tools/toolchain/design/DialogInputServices.java b/org.eclipse.lyo.tools.toolchain.design/src/org/eclipse/lyo/tools/toolchain/design/DialogInputServices.java
new file mode 100644
index 0000000..c372945
--- /dev/null
+++ b/org.eclipse.lyo.tools.toolchain.design/src/org/eclipse/lyo/tools/toolchain/design/DialogInputServices.java
@@ -0,0 +1,22 @@
+package org.eclipse.lyo.tools.toolchain.design;
+
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Display;
+
+import org.eclipse.emf.ecore.EObject;
+
+public class DialogInputServices {
+
+ public DialogInputServices() {
+ }
+
+ public String promptForString(EObject self, String title, String message, String initialValue) {
+ InputDialog dlg = new InputDialog(Display.getCurrent().getActiveShell(), title, message, initialValue, null);
+ if (dlg.open() == Window.OK) {
+ return dlg.getValue();
+ } else {
+ return null;
+ }
+ }
+}
diff --git a/org.eclipse.lyo.tools.toolchain.design/src/org/eclipse/lyo/tools/toolchain/design/DialogInputServices.mtl b/org.eclipse.lyo.tools.toolchain.design/src/org/eclipse/lyo/tools/toolchain/design/DialogInputServices.mtl
new file mode 100644
index 0000000..47f0222
--- /dev/null
+++ b/org.eclipse.lyo.tools.toolchain.design/src/org/eclipse/lyo/tools/toolchain/design/DialogInputServices.mtl
@@ -0,0 +1,11 @@
+[comment encoding = Cp1252 /]
+[module DialogInputServices('http://www.eclipse.org/emf/2002/Ecore')/]
+
+[query public DialogInputServices(anOclAny: OclAny) : OclVoid
+ = invoke('org.eclipse.lyo.tools.toolchain.design.DialogInputServices', 'DialogInputServices()', Sequence{})
+/]
+
+[query public promptForString(arg0 : EObject, arg1 : String, arg2 : String, arg3 : String) : String
+ = invoke('org.eclipse.lyo.tools.toolchain.design.DialogInputServices', 'promptForString(org.eclipse.emf.ecore.EObject, java.lang.String, java.lang.String, java.lang.String)', Sequence{arg0, arg1, arg2, arg3})
+/]
+