/** * This is an example of using an XSL script to fill in a Java * table with data obtained from an XML file. */ import java.io.*; import java.awt.*; import java.awt.event.*; import org.apache.bsf.*; import org.apache.bsf.util.IOUtils; public class TableFiller { public static void main (String[] args) throws Exception { if (args.length != 2) { System.err.println ("Usage: java TableFiller xslfilename xmlfilename"); System.exit (0); } String xslfilename = args[0]; String xmlfilename = args[1]; Frame frame = new Frame ("Table Filler"); frame.addWindowListener (new WindowAdapter () { public void windowClosing (WindowEvent e) { System.exit (0); } }); Panel panel = new Panel (new GridLayout (-1, 2)); Font f = new Font ("SansSerif", Font.BOLD, 14); Label l = new Label ("First"); l.setFont (f); panel.add (l); l = new Label ("Last"); l.setFont (f); panel.add (l); frame.add ("Center", panel); BSFManager mgr = new BSFManager (); // make the panel available for playing in XSL mgr.declareBean ("panel", panel, panel.getClass ()); // tell lotusxsl what the input xml file is mgr.registerBean ("xslt:src", new FileReader (xmlfilename)); // load and run the xsl file to fill in the table. Note that we're // running the xsl script for its side effect of filling in the table // and so we don't care what the resulting document is. mgr.exec ("xslt", xslfilename, 0, 0, IOUtils.getStringFromReader (new FileReader (xslfilename))); // display the frame frame.pack (); // frame.show(); // javac 1.5 warns to use f.show(), Apache build scripts abort as a result :( frame.setVisible(true); // available since Java 1.1 } }