MINERVA + Gui + Java Library + Own Library as Standalone and Applet
This example shows
The declaration of the extension for the Java library is property.mxt
The declaration of the extension for the own library is mystuff.mxt
The applet wrapper is wrap.html
The top level MINERVA source program is example4.min
Refer to 'Compile', 'Go' and the other files of this directory for details.
Questions? Problems? Feedback? Please let us know! mailto:support@ifcomputer.com
% MINERVA (c) IF Computer 1996,97
% http://www.ifcomputer.com/MINERVA mailto:support@ifcomputer.com % file: example1.min
:- package(gui). :- package(mystuff). :- package(property).
main(Applet, Args) :- textArea_create(16, 60, OutputWindow), textComponent_setEditable(OutputWindow,false), container_add(Applet, 'Center', OutputWindow), textArea_getOutputStream(OutputWindow, Output), set_output(Output), set_error(Output), run_add3, property(Args).
run_add3 :- write('add3(10,11,12) returned: '), add3(10,11,12,X), writeq(X), nl, flush_output.
property(Args) :- write(Args),nl,flush_output, p(system_getProperties(_)), p(system_getProperty('my.parameter',unknownParam,_)), p(system_getProperty('java.version',_)), p(system_getProperty('java.vendor',_)), p(system_getProperty('java.vendor.url',_)), p(system_getProperty('java.home',_)), p(system_getProperty('java.class.version',_)), p(system_getProperty('java.class.path',_)), p(system_getProperty('os.name',_)), p(system_getProperty('os.arch',_)), p(system_getProperty('os.version',_)), p(system_getProperty('file.separator',_)), p(system_getProperty('path.separator',_)), p(system_getProperty('line.separator',_)), p(system_getProperty('user.name',_)), p(system_getProperty('user.home',_)), p(system_getProperty('user.dir',_)), !.
p(Goal) :- catch(Goal,AnyError,sorry(Goal,AnyError)), writeq(Goal), nl, flush_output, !.
sorry(Goal,AnyError) :- println(['Oooops: ', quoted(Goal)]), println(['caused: ', quoted(AnyError)]), flush_output.
#!/bin/sh
CLASSPATH=.:$MINERVA_HOME:$CLASSPATH export CLASSPATH
mjavac AddTest.java minervax -gui -f MinervaGuiExtended -c PackageProperty property minervax -f Dummy -c PackageMystuff mystuff
mjavac PackageProperty.java mjavac PackageMystuff.java
rm tmp.java mv MinervaGuiExtended.java tmp.java
minervac extend minerva -l extend tmp.java MinervaGuiExtended.java
rm tmp.java
mjavac MinervaGuiExtended.java
cp -p MinervaGuiExtended.class $MINERVA_HOME/userclasses cp -p PackageProperty.class $MINERVA_HOME/userclasses cp -p PackageMystuff.class $MINERVA_HOME/userclasses cp -p add3.class $MINERVA_HOME/userclasses
minervac example4
% MINERVA (c) IF Computer 1996,97 % http://www.ifcomputer.com/MINERVA mailto:support@ifcomputer.com
% add3(+Integer,+Integer,+Integer,-Integer) <- java_predicates('AddTest', [ add3 = add3(int,int,int) ]).
// add3 adds three integers and returns the result public class AddTest { public static int add3(int a, int b, int c) { return a + b + c; } }
% MINERVA (c) IF Computer 1996,97 % http://www.ifcomputer.com/MINERVA mailto:support@ifcomputer.com
% PropertyExtension--------------------------------------------
java_predicates('java.util.Properties', [ create_properties = 'Properties', properties_getProperty = getProperty(string,string), properties_getProperty = getProperty(string), properties_propertyNames = propertyNames, system_getProperty = getProperty(string,string) ]).
java_predicates('java.lang.System', [ system_getProperty = getProperty(string), system_getProperties = getProperties ]).