/* author: Rony G. Flatscher | |
name: TableFiller.rex | |
date: 2006-11-26 | |
purpose: demonstrate how to use the xsl-BSF-engine from ooRexx, modelled after | |
"TableFiller.java" | |
needs: Java 1.4.x *or* | |
Note on using Java 5, Java 6 or higher: | |
- if the sample does not work in these environments then, copy the Xalan-jars from | |
"http://xml.apache.org/xalan-j/downloads.html" distribution into the "endorsed" | |
directory of these Java versions (e.g. "JAVA_JRE_HOME /jre/lib/endorsed/"); make | |
sure that the archive "xalan.jar" (from the xalan-tool jar) is available as well; | |
tested with Xalan 2.7 and 2.8 on Java 5 and beta-version of Java 6 | |
usage: rexxj TableFiller.rex style1.xsl table-data.xml | |
rexxj TableFiller.rex style2.xsl table-data.xml | |
*/ | |
parse arg xslFileName xmlFileName | |
if xmlFileName="" then | |
do | |
say "Usage: rexxj TableFiller.rex xslfilename xmlfilename" | |
exit -1 | |
end | |
frame=.bsf~new("java.awt.Frame", "Table Filler (ooRexx)") | |
frame~bsf.addEventListener('window', 'windowClosing', 'call bsf "exit"') | |
panel=.bsf~new("java.awt.Panel", .bsf~new("java.awt.GridLayout", -1, 2)) | |
-- import the Java Font class, store it in .local as "jfont" | |
call bsf.import "java.awt.Font", "jfont" | |
f=.jfont~new("SansSerif", .jfont~bold , 14) | |
do text over .list~of("First", "Last") | |
l=.bsf~new("java.awt.Label", text) ~~setFont(f) | |
panel~add(l) | |
end | |
frame~add("Center", panel) | |
mgr=.bsf~new("org.apache.bsf.BSFManager") -- create a new BSFManager instance | |
mgr~declareBean("panel", panel, panel~getClass) | |
mgr~registerBean("xslt:src", .bsf~new("java.io.FileReader", xmlFileName)) | |
-- xslString=bsf.import("org.apache.bsf.util.IOUtils")~getStringFromReader(.bsf~new("java.io.Filereader", xslFileName)) | |
xslString=charin(xslFileName, 1, chars(xslFileName)) -- read content of file | |
mgr~exec("xslt", xslFileName, 0, 0, xslString) | |
frame ~~pack ~~setVisible(.true) | |
do forever | |
a = bsf("pollEventText") /* wait for an eventText to be sent */ | |
interpret a /* execute as a Rexx program */ | |
say "(in Rexx), polled: ["a"]" | |
if result= "SHUTDOWN, REXX !" then leave /* JVM will be shutdown */ | |
end | |
say "Now exiting Rexx." | |
::requires bsf.cls -- load BSF (Java) support |