FileDocCategorySizeDatePackage
BSFAction.javaAPI DocExample2252Thu Feb 01 15:19:34 GMT 2001None

BSFAction

public class BSFAction extends Object
Longer sample of using Bean Scripting Framework with JPython

Fields Summary
protected String
FILENAME
protected BSFManager
manager
protected BSFEngine
jpythonengine
protected String
language
protected String
script
Constructors Summary
BSFAction()


		// Construct the Bean instance
		LabelText bean = new LabelText("Message to Python script");

		try {
			manager = new BSFManager();

			// register scripting language
			String[] fntypes = { ".py" };
			manager.registerScriptingEngine("jpython",
			  "com.ibm.bsf.engines.jpython.JPythonEngine", fntypes);
			jpythonengine = manager.loadScriptingEngine("jpython");

			// Tell BSF about the bean.
			manager.declareBean("bean", bean, LabelText.class);

			// Read the script file into BSF
			language = manager.getLangFromFilename(FILENAME);
			script = IOUtils.getStringFromReader(
				new FileReader(FILENAME));

		} catch (Exception ex) {
			System.err.println(ex.toString());
			System.exit(0);
		}

		System.out.println("Scripting setup done, building GUI.");

		final JFrame jf = new JFrame(getClass().getName());

		Container cp = jf.getContentPane();
		cp.setLayout(new FlowLayout());

		cp.add(bean);			// add the LabelText

		JButton b = new JButton("Click me!");
		cp.add(b);				// and the button under it.
		b.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				try {

					// When the button is pressed, run the script.
					System.out.println("Script output: -->");
					manager.exec(language, FILENAME, 0, 0, script);
					System.out.println("<-- End of Script output.");
				} catch (BSFException bse) {
					JOptionPane.showMessageDialog(jf,
						"ERROR: " + bse, "Script Error",
						JOptionPane.ERROR_MESSAGE);
				}
			}
		});

		// A Quit button at the bottom
		JButton qb = new JButton("Quit");
		cp.add(qb);
		qb.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				System.exit(0);
			}
		});

		// Routine JFrame setup
		jf.pack();
		jf.setVisible(true);
	
Methods Summary
public static voidmain(java.lang.String[] args)


	     
		new BSFAction();