From: Terrance S. <ts...@us...> - 2003-11-20 18:19:11
|
Update of /cvsroot/xsb/XSB/packages/iprolog/com/declarativa/interprolog/examples In directory sc8-pr-cvs1:/tmp/cvs-serv29590/com/declarativa/interprolog/examples Modified Files: BackEnd.java HelloWindow.java HelloWindow2.java HelloWorld.java Log Message: Only real change is removing junit.jar. Jar files shd. not be kept undre CVS in my opinion. Index: BackEnd.java =================================================================== RCS file: /cvsroot/xsb/XSB/packages/iprolog/com/declarativa/interprolog/examples/BackEnd.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- BackEnd.java 16 Aug 2002 19:30:16 -0000 1.1 +++ BackEnd.java 20 Nov 2003 18:18:40 -0000 1.2 @@ -1,32 +1,32 @@ -package com.declarativa.interprolog.examples; -import com.declarativa.interprolog.*; -import com.xsb.interprolog.*; -import java.util.*; -public class BackEnd{ - public static class Record implements java.io.Serializable{ - String plainText; - int plainCount; - String cyberText; - float cyberCount; - public String toString(){ - return "plain:"+plainText+" plainCount:"+plainCount+" \ncyberText:"+cyberText+" cyberCount="+cyberCount; - } - } - public static void main(String args[]) { - String prologCommand = com.declarativa.interprolog.gui.ListenerWindow.commandArgs(args); - PrologEngine engine = new NativeEngine(prologCommand); - engine.deterministicGoal("import reverse/2,length/2 from basics"); // list processing predicates - if (!engine.deterministicGoal("length([1,2],2)")) System.out.println("huhuhuh"); - engine.teachOneObject(new Record()); // send an object prototype to Prolog - Record r = new Record(); - r.plainText="Declarative is good"; r.plainCount=19; - Object[] objectsToGo = new Object[]{r}; - String goal = "ipObjectSpec('com.declarativa.interprolog.examples.BackEnd$Record',[plainCount=PC,plainText=string(S)],R)"; - goal += ", name(S,Chars), length(Chars,PC), reverse(Chars,Reversed), name(RS,Reversed), CC is PC+0.0"; - goal += ", ipObjectSpec('com.declarativa.interprolog.examples.BackEnd$Record',[cyberText=string(RS),cyberCount=CC],NewR)"; - System.out.println("Calling "+goal); - Object[] bindings = engine.deterministicGoal(goal, "[R]", objectsToGo, "[NewR]"); - Record result = (Record)bindings[0]; - System.out.println(result); - } +package com.declarativa.interprolog.examples; +import com.declarativa.interprolog.*; +import com.xsb.interprolog.*; +import java.util.*; +public class BackEnd{ + public static class Record implements java.io.Serializable{ + String plainText; + int plainCount; + String cyberText; + float cyberCount; + public String toString(){ + return "plain:"+plainText+" plainCount:"+plainCount+" \ncyberText:"+cyberText+" cyberCount="+cyberCount; + } + } + public static void main(String args[]) { + String prologCommand = com.declarativa.interprolog.gui.ListenerWindow.commandArgs(args); + PrologEngine engine = new NativeEngine(prologCommand); + engine.deterministicGoal("import reverse/2,length/2 from basics"); // list processing predicates + if (!engine.deterministicGoal("length([1,2],2)")) System.out.println("huhuhuh"); + engine.teachOneObject(new Record()); // send an object prototype to Prolog + Record r = new Record(); + r.plainText="Declarative is good"; r.plainCount=19; + Object[] objectsToGo = new Object[]{r}; + String goal = "ipObjectSpec('com.declarativa.interprolog.examples.BackEnd$Record',[plainCount=PC,plainText=string(S)],R)"; + goal += ", name(S,Chars), length(Chars,PC), reverse(Chars,Reversed), name(RS,Reversed), CC is PC+0.0"; + goal += ", ipObjectSpec('com.declarativa.interprolog.examples.BackEnd$Record',[cyberText=string(RS),cyberCount=CC],NewR)"; + System.out.println("Calling "+goal); + Object[] bindings = engine.deterministicGoal(goal, "[R]", objectsToGo, "[NewR]"); + Record result = (Record)bindings[0]; + System.out.println(result); + } } Index: HelloWindow.java =================================================================== RCS file: /cvsroot/xsb/XSB/packages/iprolog/com/declarativa/interprolog/examples/HelloWindow.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- HelloWindow.java 16 Aug 2002 19:30:16 -0000 1.1 +++ HelloWindow.java 20 Nov 2003 18:18:40 -0000 1.2 @@ -1,36 +1,36 @@ -package com.declarativa.interprolog.examples; -import com.declarativa.interprolog.*; -import com.declarativa.interprolog.util.*; -import javax.swing.*; -import java.awt.*; -import java.awt.event.*; -public class HelloWindow extends JFrame{ - PrologEngine myEngine; - public HelloWindow(PrologEngine pe){ - super("Java-Prolog-Java call example"); - myEngine = pe; - JTextField text = new JTextField(15); - final Object fieldObject = myEngine.makeInvisible(text); - text.setBorder(BorderFactory.createTitledBorder("text")); - JButton button = new JButton("Greet"); - Box box = new Box(BoxLayout.Y_AXIS); - box.add(text); box.add(button); - getContentPane().add(box); - setSize(200,100); show(); - - button.addActionListener( - new ActionListener(){ - public void actionPerformed(ActionEvent e){ - myEngine.deterministicGoal("greetat(Obj)","[Obj]",new Object[]{fieldObject}); - } - }); - } -} -/* -In Prolog call this to create the window: -ipPrologEngine(Engine), javaMessage('HelloWindow','HelloWindow'(Engine)). - -then -assert( (greetat(TextID) :- javaMessage( TextID, setText(string('Hello world!')) )) ). - +package com.declarativa.interprolog.examples; +import com.declarativa.interprolog.*; +import com.declarativa.interprolog.util.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; +public class HelloWindow extends JFrame{ + PrologEngine myEngine; + public HelloWindow(PrologEngine pe){ + super("Java-Prolog-Java call example"); + myEngine = pe; + JTextField text = new JTextField(15); + final Object fieldObject = myEngine.makeInvisible(text); + text.setBorder(BorderFactory.createTitledBorder("text")); + JButton button = new JButton("Greet"); + Box box = new Box(BoxLayout.Y_AXIS); + box.add(text); box.add(button); + getContentPane().add(box); + setSize(200,100); show(); + + button.addActionListener( + new ActionListener(){ + public void actionPerformed(ActionEvent e){ + myEngine.deterministicGoal("greetat(Obj)","[Obj]",new Object[]{fieldObject}); + } + }); + } +} +/* +In Prolog call this to create the window: +ipPrologEngine(Engine), javaMessage('HelloWindow','HelloWindow'(Engine)). + +then +assert( (greetat(TextID) :- javaMessage( TextID, setText(string('Hello world!')) )) ). + */ Index: HelloWindow2.java =================================================================== RCS file: /cvsroot/xsb/XSB/packages/iprolog/com/declarativa/interprolog/examples/HelloWindow2.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- HelloWindow2.java 16 Aug 2002 19:30:16 -0000 1.1 +++ HelloWindow2.java 20 Nov 2003 18:18:40 -0000 1.2 @@ -1,42 +1,42 @@ -/* Example for Java-side UI construction, with event handler setup on the Prolog side -*/ -package com.declarativa.interprolog.examples; -import com.declarativa.interprolog.*; -import javax.swing.*; -import java.awt.*; -import java.awt.event.*; -// Hello World, Prolog-biased implementation; the Java part knows nothing about event handling -public class HelloWindow2 extends JFrame{ - public HelloWindow2(PrologEngine pe /* this argument not really needed, cf. comments below */){ - super("Java-Prolog-Java call test2"); - JTextField text = new JTextField(15); - text.setBorder(BorderFactory.createTitledBorder("text")); - JButton button = new JButton("Greet"); - Box box = new Box(BoxLayout.Y_AXIS); - box.add(text); box.add(button); - getContentPane().add(box); - setSize(200,100); validate(); show(); - // The following 2 lines are not strictly necessary, as long as someone is able to register - // button and text with an engine of choice, hence the constructor argument above - // Concluding, pe and these 2 messages below are just for the benefit of dynamically introspecting - // into 2 graphical objects, telling our engine about them, and letting the Prolog - // programmer know their allocated IDs, nothing more - System.out.println("Button ID:"+pe.registerJavaObject(button)); - System.out.println("Text ID:"+pe.registerJavaObject(text)); - } -} -/* -To create the window, in Prolog call: -ipPrologEngine(Engine), javaMessage('HelloWindow2','HelloWindow2'(Engine)). - -watch the console window and write down the Text and Button IDs - -Then, assuming we have defined in Prolog an event handler predicate, like: -assert( ( greetat(TextID) :- javaMessage( TextID, setText( string('Hello world!')) )) ). - -...we can now call: -ipPrologEngine(Engine), buildTermModel(greetat(TextID),TM), -javaMessage('com.declarativa.interprolog.PrologEventBroker',R,'PrologEventBroker'(Engine,TM)), -javaMessage(ButtonID,addActionListener(R)). - +/* Example for Java-side UI construction, with event handler setup on the Prolog side +*/ +package com.declarativa.interprolog.examples; +import com.declarativa.interprolog.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; +// Hello World, Prolog-biased implementation; the Java part knows nothing about event handling +public class HelloWindow2 extends JFrame{ + public HelloWindow2(PrologEngine pe /* this argument not really needed, cf. comments below */){ + super("Java-Prolog-Java call test2"); + JTextField text = new JTextField(15); + text.setBorder(BorderFactory.createTitledBorder("text")); + JButton button = new JButton("Greet"); + Box box = new Box(BoxLayout.Y_AXIS); + box.add(text); box.add(button); + getContentPane().add(box); + setSize(200,100); validate(); show(); + // The following 2 lines are not strictly necessary, as long as someone is able to register + // button and text with an engine of choice, hence the constructor argument above + // Concluding, pe and these 2 messages below are just for the benefit of dynamically introspecting + // into 2 graphical objects, telling our engine about them, and letting the Prolog + // programmer know their allocated IDs, nothing more + System.out.println("Button ID:"+pe.registerJavaObject(button)); + System.out.println("Text ID:"+pe.registerJavaObject(text)); + } +} +/* +To create the window, in Prolog call: +ipPrologEngine(Engine), javaMessage('HelloWindow2','HelloWindow2'(Engine)). + +watch the console window and write down the Text and Button IDs + +Then, assuming we have defined in Prolog an event handler predicate, like: +assert( ( greetat(TextID) :- javaMessage( TextID, setText( string('Hello world!')) )) ). + +...we can now call: +ipPrologEngine(Engine), buildTermModel(greetat(TextID),TM), +javaMessage('com.declarativa.interprolog.PrologEventBroker',R,'PrologEventBroker'(Engine,TM)), +javaMessage(ButtonID,addActionListener(R)). + */ Index: HelloWorld.java =================================================================== RCS file: /cvsroot/xsb/XSB/packages/iprolog/com/declarativa/interprolog/examples/HelloWorld.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- HelloWorld.java 16 Aug 2002 19:30:16 -0000 1.1 +++ HelloWorld.java 20 Nov 2003 18:18:40 -0000 1.2 @@ -1,24 +1,24 @@ -package com.declarativa.interprolog.examples; -import com.declarativa.interprolog.*; -import com.xsb.interprolog.*; -public class HelloWorld{ - public static void main(String args[]) { - PrologEngine engine = new NativeEngine(args[0]); - engine.command("import append/3 from basics"); - Object[] bindings = engine.deterministicGoal( - "name(User,UL),append(\"Hello,\", UL, ML), name(Message,ML)", - "[string(User)]", - new Object[]{System.getProperty("user.name")}, - "[string(Message)]"); - String message = (String)bindings[0]; - System.out.println("\nMessage:"+message); - // the above demonstrates object passing both ways; - // since we may simply concatenate strings, an alternative coding would be: - bindings = engine.deterministicGoal( - "name('"+System.getProperty("user.name")+"',UL),append(\"Hello,\", UL, ML), name(Message,ML)", - "[string(Message)]"); - // (notice the ' surrounding the user name, unnecessary in the first case) - System.out.println("Same:"+bindings[0]); - System.exit(0); - } +package com.declarativa.interprolog.examples; +import com.declarativa.interprolog.*; +import com.xsb.interprolog.*; +public class HelloWorld{ + public static void main(String args[]) { + PrologEngine engine = new NativeEngine(args[0]); + engine.command("import append/3 from basics"); + Object[] bindings = engine.deterministicGoal( + "name(User,UL),append(\"Hello,\", UL, ML), name(Message,ML)", + "[string(User)]", + new Object[]{System.getProperty("user.name")}, + "[string(Message)]"); + String message = (String)bindings[0]; + System.out.println("\nMessage:"+message); + // the above demonstrates object passing both ways; + // since we may simply concatenate strings, an alternative coding would be: + bindings = engine.deterministicGoal( + "name('"+System.getProperty("user.name")+"',UL),append(\"Hello,\", UL, ML), name(Message,ML)", + "[string(Message)]"); + // (notice the ' surrounding the user name, unnecessary in the first case) + System.out.println("Same:"+bindings[0]); + System.exit(0); + } } |