1 8 package org.apache.avalon.phoenix.components.kernel.beanshell; 9 10 import bsh.EvalError; 11 import bsh.Interpreter; 12 import bsh.util.JConsole; 13 import java.awt.BorderLayout ; 14 import java.awt.Dimension ; 15 import java.awt.event.ActionEvent ; 16 import java.awt.event.ActionListener ; 17 import javax.swing.JFrame ; 18 import javax.swing.JMenu ; 19 import javax.swing.JMenuBar ; 20 import javax.swing.JMenuItem ; 21 import javax.swing.JPanel ; 22 import org.apache.avalon.phoenix.interfaces.Kernel; 23 24 28 public class BeanShellGUI 29 extends JPanel 30 implements ActionListener 31 { 32 private JConsole m_jConsole; 33 34 private Interpreter m_interpreter; 35 36 private Thread m_thread; 37 38 private JFrame m_frame; 39 40 43 public BeanShellGUI( Kernel kernel ) 44 { 45 setPreferredSize( new Dimension ( 600, 480 ) ); 46 47 m_jConsole = new JConsole(); 48 49 this.setLayout( new BorderLayout () ); 50 this.add( m_jConsole, BorderLayout.CENTER ); 51 52 m_interpreter = new Interpreter( m_jConsole ); 53 try 54 { 55 m_interpreter.set( "phoenix-kernel", kernel ); 56 } 57 catch( EvalError ee ) 58 { 59 ee.printStackTrace(); 60 } 61 } 62 63 67 public void init() 68 { 69 m_frame = new JFrame ( "BeanShell - Phoenix management" ); 70 m_frame.setDefaultCloseOperation( JFrame.DO_NOTHING_ON_CLOSE ); 71 m_frame.getContentPane().add( this, BorderLayout.CENTER ); 72 73 JMenuBar menubar = new JMenuBar (); 74 JMenu menu = new JMenu ( "File" ); 75 JMenuItem mi = new JMenuItem ( "Close" ); 76 77 mi.addActionListener( this ); 78 menu.add( mi ); 79 menubar.add( menu ); 80 81 m_frame.setJMenuBar( menubar ); 82 83 m_thread = new Thread ( m_interpreter ); 84 85 m_thread.start(); 86 m_frame.setVisible( true ); 87 m_frame.pack(); 88 } 89 90 96 public void actionPerformed( final ActionEvent event ) 97 { 98 final String command = event.getActionCommand(); 99 100 if( command.equals( "Close" ) ) 101 { 102 m_thread.interrupt(); 103 m_frame.dispose(); 104 } 105 } 106 } 107 | Popular Tags |