Changeset 1080


Ignore:
Timestamp:
07/04/17 14:42:52 (7 years ago)
Author:
davidb
Message:

Updates to cope with changes in Java ScriptEngine

Location:
trunk/src/org/expeditee
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/expeditee/actions/Javascript2.java

    r1078 r1080  
    5252    protected void init() {
    5353        ERROR_FRAMESET = "JavascriptErrors";
    54         scriptEngineManager = new ScriptEngineManager();
    5554        scriptEngine = scriptEngineManager.getEngineByMimeType("application/javascript");
    5655        scriptEngine.put("invocable", (Invocable) scriptEngine);
  • trunk/src/org/expeditee/actions/Python.java

    r1078 r1080  
    5353    protected void init() {
    5454        ERROR_FRAMESET = "PythonErrors";
    55         scriptEngineManager = new ScriptEngineManager();
    5655        scriptEngine = scriptEngineManager.getEngineByMimeType("application/python");
    5756        scriptEngine.put("invocable", (Invocable) scriptEngine);
  • trunk/src/org/expeditee/actions/ScriptBase.java

    r1078 r1080  
    5151public abstract class ScriptBase {
    5252       
    53     public String ERROR_FRAMESET;       
    54     public ScriptEngineManager scriptEngineManager;
    55     public ScriptEngine scriptEngine = null;
    56        
     53    protected static ScriptEngineManager scriptEngineManager;
     54    protected String ERROR_FRAMESET;   
     55    protected ScriptEngine scriptEngine = null;
     56
     57    static {
     58        scriptEngineManager = new ScriptEngineManager();
     59    }
     60   
    5761    protected abstract void init();
    5862   
     
    117121
    118122    protected ScriptBase(Frame frame, boolean followLinks) {
    119         if (scriptEngine == null) {
    120             init();
    121         }
     123        init();
    122124        this.parseFrame(frame, followLinks);
    123125    }
  • trunk/src/org/expeditee/items/JSItem.java

    r919 r1080  
    2626import javax.script.Invocable;
    2727import javax.script.ScriptEngine;
    28 
    29 import org.expeditee.actions.Javascript2;
     28import javax.script.ScriptEngineManager;
     29import javax.script.ScriptException;
     30
    3031import org.expeditee.gui.DisplayIO;
    3132import org.expeditee.items.widgets.InteractiveWidget;
    3233
    3334public class JSItem extends XRayable implements JSThreadable {
    34        
    35         private static final Object global = Javascript2.eval("new Object()");
     35
     36        private static ScriptEngineManager scriptEngineManager = null;
     37        private static ScriptEngine globalScriptEngine = null;
     38        private static Object global = null;
    3639       
    3740        // a method to run that will set up and return the root JComponent for this Widget
     
    4952       
    5053        private int _width, _height;
    51        
     54
     55        static {
     56            try {
     57                scriptEngineManager = new ScriptEngineManager();
     58                globalScriptEngine = scriptEngineManager.getEngineByMimeType("application/javascript");
     59                global = globalScriptEngine.eval("new Object()");
     60            } catch (ScriptException e) {
     61                e.printStackTrace();
     62            }
     63        }
     64   
    5265        private static Text getSauce(int width, int height) {
    5366                Text source = new Text(DisplayIO.getCurrentFrame().getNextItemID(), "@js: " + width + " " + height);
     
    6275                this.load = load;
    6376                this.paint = paint;
    64                 this.scriptEngine = Javascript2.scriptEngineManager.getEngineByMimeType("application/javascript");
     77                this.scriptEngine = scriptEngineManager.getEngineByMimeType("application/javascript");
    6578                this.invocable = (Invocable) this.scriptEngine;
    6679                this.scriptEngine.put("global", global);
  • trunk/src/org/expeditee/items/widgets/JSWidget.java

    r1078 r1080  
    2727import javax.script.Invocable;
    2828import javax.script.ScriptEngine;
     29import javax.script.ScriptEngineManager;
     30import javax.script.ScriptException;
     31
    2932import javax.swing.JPanel;
    3033
    31 import org.expeditee.actions.Javascript2;
    3234import org.expeditee.gui.DisplayIO;
    3335import org.expeditee.items.ItemParentStateChangedEvent;
     
    4345public class JSWidget extends DataFrameWidget implements JSThreadable {
    4446       
     47        private static ScriptEngineManager scriptEngineManager = null;
     48        private static ScriptEngine globalScriptEngine = null;
    4549        private static Object global = null;
    4650       
     
    5963        // container for our component
    6064        private final JPanel container;
    61        
     65
     66        static {
     67            try {
     68                scriptEngineManager = new ScriptEngineManager();
     69                globalScriptEngine = scriptEngineManager.getEngineByMimeType("application/javascript");
     70                global = globalScriptEngine.eval("new Object()");
     71            } catch (ScriptException e) {
     72                e.printStackTrace();
     73            }
     74        }
     75   
    6276        private static Text getSauce() {
    6377                Text source = new Text(DisplayIO.getCurrentFrame().getNextItemID(), "@iw: org.expeditee.items.widgets.JSWidget");
     
    6882        private JSWidget(Text source, int width, int height, String init, String save, String load) throws Exception {
    6983                super(source, new JPanel(new BorderLayout()), -1, width, -1, -1, height, -1);
    70                 if (global == null) {
    71                     global = Javascript2.eval("new Object()");
    72                 }
     84
    7385                this.init = init;
    7486                this.save = save;
    7587                this.load = load;
    7688                this.container = (JPanel) super._swingComponent;
    77                 this.scriptEngine = Javascript2.scriptEngineManager.getEngineByMimeType("application/javascript");
     89                this.scriptEngine = scriptEngineManager.getEngineByMimeType("application/javascript");
    7890                this.invocable = (Invocable) this.scriptEngine;
    7991                this.scriptEngine.put("global", global);
Note: See TracChangeset for help on using the changeset viewer.