You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2011/05/15 22:23:56 UTC
svn commit: r1103535 - in
/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench:
ClientHelper.java details/ObjectPanel.java
Author: fmui
Date: Sun May 15 20:23:55 2011
New Revision: 1103535
URL: http://svn.apache.org/viewvc?rev=1103535&view=rev
Log:
CMIS Workbench: added support for all JSR 223 scripting languages
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ClientHelper.java
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/ObjectPanel.java
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ClientHelper.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ClientHelper.java?rev=1103535&r1=1103534&r2=1103535&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ClientHelper.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ClientHelper.java Sun May 15 20:23:55 2011
@@ -482,13 +482,13 @@ public class ClientHelper {
}
}
- public static void runJavaScriptScript(final Component parent, final ClientModel model, final File file,
- final Writer out) {
+ public static void runJSR223Script(final Component parent, final ClientModel model, final File file,
+ final String ext, final Writer out) {
try {
parent.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
ScriptEngineManager mgr = new ScriptEngineManager();
- ScriptEngine engine = mgr.getEngineByExtension("js");
+ ScriptEngine engine = mgr.getEngineByExtension(ext);
engine.getContext().setWriter(out);
engine.getContext().setErrorWriter(out);
engine.put("session", model.getClientSession().getSession());
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/ObjectPanel.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/ObjectPanel.java?rev=1103535&r1=1103534&r2=1103535&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/ObjectPanel.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/ObjectPanel.java Sun May 15 20:23:55 2011
@@ -29,8 +29,12 @@ import java.io.File;
import java.io.IOException;
import java.io.Writer;
import java.util.Collections;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
+import javax.script.ScriptEngineFactory;
+import javax.script.ScriptEngineManager;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JButton;
@@ -55,6 +59,8 @@ public class ObjectPanel extends InfoPan
private static final long serialVersionUID = 1L;
+ private final Set<String> scriptExtensions;
+
private JTextField nameField;
private JTextField idField;
private JTextField typeField;
@@ -76,6 +82,13 @@ public class ObjectPanel extends InfoPan
model.addObjectListener(this);
+ // get all installed script engines
+ scriptExtensions = new HashSet<String>();
+ ScriptEngineManager mgr = new ScriptEngineManager();
+ for (ScriptEngineFactory sef : mgr.getEngineFactories()) {
+ scriptExtensions.addAll(sef.getExtensions());
+ }
+
createGUI();
}
@@ -166,7 +179,8 @@ public class ObjectPanel extends InfoPan
if (object instanceof Document) {
String name = object.getName().toLowerCase();
- if (name.endsWith(".groovy") || name.endsWith(".js")) {
+ int x = name.lastIndexOf('.');
+ if ((x > -1) && (scriptExtensions.contains(name.substring(x + 1)))) {
scriptPanel.setVisible(true);
scriptOutput.setVisible(false);
} else {
@@ -242,7 +256,7 @@ public class ObjectPanel extends InfoPan
if (console != null) {
console.loadScriptFile(file);
}
- } else if (name.endsWith(".js")) {
+ } else {
ClientHelper.open(ObjectPanel.this, doc, null);
}
} catch (Exception ex) {
@@ -259,16 +273,14 @@ public class ObjectPanel extends InfoPan
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
Document doc = (Document) getClientModel().getCurrentObject();
File file = ClientHelper.createTempFileFromDocument(doc, null);
+ String name = doc.getName().toLowerCase();
+ String ext = name.substring(name.lastIndexOf('.') + 1);
+
scriptOutput.setText("");
scriptOutput.setVisible(true);
scriptOutput.invalidate();
- String name = doc.getName().toLowerCase();
- if (name.endsWith(".groovy")) {
- ClientHelper.runGroovyScript(ObjectPanel.this, getClientModel(), file, scriptOutputWriter);
- } else if (name.endsWith(".js")) {
- ClientHelper.runJavaScriptScript(ObjectPanel.this, getClientModel(), file, scriptOutputWriter);
- }
+ ClientHelper.runJSR223Script(ObjectPanel.this, getClientModel(), file, ext, scriptOutputWriter);
} catch (Exception ex) {
ClientHelper.showError(null, ex);
} finally {