Support for direct execution of 3D models. (Needs seperate icon.)
diff --git a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/plugin.xml b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/plugin.xml
index 270c76c..f36f6a1 100644
--- a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/plugin.xml
+++ b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/plugin.xml
@@ -5,7 +5,7 @@
<copyright>
</copyright>
- $Id: plugin.xml,v 1.14 2010/05/06 04:29:14 mparker Exp $
+ $Id: plugin.xml,v 1.15 2010/06/03 17:04:40 mparker Exp $
-->
<plugin>
@@ -69,6 +69,11 @@
</command>
<command
categoryId="org.eclipse.amp.axf.ui"
+ id="org.eclipse.amp.escape.runtime.executeAMF3D"
+ name="Execute 3D">
+ </command>
+ <command
+ categoryId="org.eclipse.amp.axf.ui"
id="org.eclipse.amp.escape.runtime.executeAMFHeadless"
name="Execute Headless">
</command>
@@ -132,6 +137,14 @@
</reference>
</visibleWhen>
</command>
+ <command commandId="org.eclipse.amp.escape.runtime.executeAMF3D"
+ icon="icons/etool16/execute.gif" label="Execute 3D" style="push"
+ tooltip="Execute Escape AMF model with 3D visualization.">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.amp.escape.amf.allowexecute">
+ </reference>
+ </visibleWhen>
+ </command>
<command commandId="org.eclipse.amp.escape.runtime.executeAMFHeadless"
icon="icons/etool16/execute_headless.gif" label="Execute Headless" style="push"
tooltip="Execute Escape AMF model without views.">
@@ -207,6 +220,15 @@
</visibleWhen>
</command>
<command
+ commandId="org.eclipse.amp.escape.runtime.executeAMF3D"
+ icon="icons/etool16/execute.gif"
+ label="Execute 3D"
+ style="push"
+ tooltip="Execute Escape AMF model with 3D visualization.">
+ <visibleWhen checkEnabled="true">
+ </visibleWhen>
+ </command>
+ <command
commandId="org.eclipse.amp.escape.runtime.executeAMFHeadless"
icon="icons/etool16/execute_headless.gif"
label="Execute Headless"
@@ -275,6 +297,14 @@
</reference>
</visibleWhen>
</command>
+ <command commandId="org.eclipse.amp.escape.runtime.executeAMF3D"
+ icon="icons/etool16/execute.gif" label="Execute 3D" style="push"
+ tooltip="Execute Escape AMF model with 3D visualization.">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.amp.escape.amf.allowexecute">
+ </reference>
+ </visibleWhen>
+ </command>
<command commandId="org.eclipse.amp.escape.runtime.executeAMFHeadless"
icon="icons/etool16/execute_headless.gif" label="Execute Headless" style="push"
tooltip="Execute Escape AMF model without views.">
@@ -408,6 +438,20 @@
</enabledWhen>
</handler>
<handler
+ class="org.eclipse.amp.escape.amf.ide.ExecuteAMF3DHandler"
+ commandId="org.eclipse.amp.escape.runtime.executeAMF3D">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.amp.escape.amf.allowexecute">
+ </reference>
+ </activeWhen>
+ <enabledWhen>
+ <reference
+ definitionId="org.eclipse.amp.escape.amf.allowexecute">
+ </reference>
+ </enabledWhen>
+ </handler>
+ <handler
class="org.eclipse.amp.escape.amf.ide.ExecuteAMFHeadlessHandler"
commandId="org.eclipse.amp.escape.runtime.executeAMFHeadless">
<activeWhen>
diff --git a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteAMF3DHandler.java b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteAMF3DHandler.java
new file mode 100644
index 0000000..899aa0b
--- /dev/null
+++ b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteAMF3DHandler.java
@@ -0,0 +1,27 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2009 Metascape, LLC.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Metascape - Initial API and Implementation
+ *
+ * </copyright>
+ *
+ */
+package org.eclipse.amp.escape.amf.ide;
+
+import org.metaabm.SImplementation;
+
+
+public class ExecuteAMF3DHandler extends ExecuteAMFHandler {
+
+ protected String getModelClass(SImplementation impl) {
+ final String modelClassName = impl.getQualifiedName() + "3D";
+ return modelClassName;
+ }
+}
diff --git a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteAMFHandler.java b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteAMFHandler.java
index d17558a..f036c76 100644
--- a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteAMFHandler.java
+++ b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteAMFHandler.java
@@ -23,50 +23,54 @@
import org.eclipse.amp.escape.ide.EscapeIDEPlugin;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IProgressMonitor;
-
import org.metaabm.SContext;
import org.metaabm.SImplementation;
import org.metaabm.xsd.MetaABMPersist;
public class ExecuteAMFHandler extends ExecuteHandler {
- protected IResource modelResource;
- private SContext model;
+ protected IResource modelResource;
+ private SContext model;
- public ExecuteAMFHandler() {
- super(false);
- }
+ public ExecuteAMFHandler() {
+ super(false);
+ }
- public ExecuteAMFHandler(boolean headless) {
- super(headless);
- }
+ public ExecuteAMFHandler(boolean headless) {
+ super(headless);
+ }
- protected void executeOpen(EclipseEscapeRunner eclipseRunner, Object executed, IProgressMonitor monitor) {
- if (executed instanceof IResource) {
- modelResource = (IResource) executed;
- File file = modelResource.getLocation().toFile();
- if (modelResource.getFileExtension().equals("metaabm")) {
- try {
- model = MetaABMPersist.create(file).load();
- SImplementation impl = model.getImplementation();
- final String modelClassName = impl.getQualifiedName();
- eclipseRunner.open(modelResource, modelClassName, model.getLabel());
- } catch (IOException e) {
- EscapeIDEPlugin.warn("Couldn't load model.", e);
- }
- }
- }
- }
-
- protected boolean handleSelect(Object sel) {
- return sel instanceof IResource && ((IResource) sel).getFileExtension() != null
- && ((IResource) sel).getFileExtension().equals("metaabm");
- }
+ protected void executeOpen(EclipseEscapeRunner eclipseRunner, Object executed, IProgressMonitor monitor) {
+ if (executed instanceof IResource) {
+ modelResource = (IResource) executed;
+ File file = modelResource.getLocation().toFile();
+ if (modelResource.getFileExtension().equals("metaabm")) {
+ try {
+ model = MetaABMPersist.create(file).load();
+ SImplementation impl = model.getImplementation();
+ final String modelClassName = getModelClass(impl);
+ eclipseRunner.open(modelResource, modelClassName, model.getLabel());
+ } catch (IOException e) {
+ EscapeIDEPlugin.warn("Couldn't load model.", e);
+ }
+ }
+ }
+ }
- /**
- * @return the model
- */
- public SContext getModel() {
- return model;
- }
+ protected String getModelClass(SImplementation impl) {
+ final String modelClassName = impl.getQualifiedName();
+ return modelClassName;
+ }
+
+ protected boolean handleSelect(Object sel) {
+ return sel instanceof IResource && ((IResource) sel).getFileExtension() != null
+ && ((IResource) sel).getFileExtension().equals("metaabm");
+ }
+
+ /**
+ * @return the model
+ */
+ public SContext getModel() {
+ return model;
+ }
}