00001 00004 package GuiComponents.scripting; 00005 00006 import GuiComponents.Console.*; 00007 import org.apache.bsf.*; 00008 00014 public class BeanShellFactory implements ScriptFactory { 00015 public BSFEngine createEngine(BSFManager manager) { 00016 try { 00017 //Register beanshell - it isn't a default 00018 String [] extensions = { "bsh" }; 00019 //manager.registerScriptingEngine("beanshell", "bsh.util.BeanShellBSFEngine", extensions ); 00020 return manager.loadScriptingEngine("beanshell"); 00021 } catch (BSFException be) { 00022 System.err.println("Error loading beanshell scripting engine: " + be); 00023 return null; 00024 } 00025 } 00026 00027 public JConsole createConsole() { 00028 return new JConsole(); 00029 } 00030 00031 public NameCompleter createNameCompleter(BSFEngine engine, SearchableObjectRegistry registry) { 00032 //return new BeanShellNameCompleter(engine); 00033 return registry; 00034 } 00035 00036 public Interpreter createInterpreter(BSFManager manager) { 00037 BSFEngine engine = createEngine(manager); 00038 JConsole console = new JConsole(); 00039 NameCompleter nc = createNameCompleter(engine, (SearchableObjectRegistry)manager.getObjectRegistry()); 00040 return new BeanShellInterpreter(console, engine, nc); 00041 } 00042 }