00001
00002
00003
00004
00005
00006
00007 package GuiComponents.scripting;
00008 import org.apache.bsf.*;
00009 import GuiComponents.Console.*;
00010
00015 public class JythonFactory implements ScriptFactory {
00016
00017 public JConsole createConsole() {
00018 return new JConsole();
00019 }
00020
00021 public BSFEngine createEngine(BSFManager manager) {
00022 try {
00023 return manager.loadScriptingEngine("jython");
00024 } catch (BSFException be) {
00025 System.err.println("Error loading jython scripting engine: " + be);
00026 return null;
00027 }
00028 }
00029
00030 public NameCompleter createNameCompleter(BSFEngine engine, SearchableObjectRegistry registry) {
00031 return registry;
00032 }
00033
00034 public Interpreter createInterpreter(BSFManager manager) {
00035 BSFEngine engine = createEngine(manager);
00036 JConsole console = new JConsole();
00037 NameCompleter nc = createNameCompleter(engine, (SearchableObjectRegistry)manager.getObjectRegistry());
00038 return new JythonInterpreter(console, engine, nc);
00039 }
00040
00041 }