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             
00018             String [] extensions = { "bsh" };
00019             
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         
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 }