/********************************************************************* % File : Draw.java % Author : Neng-Fa ZHOU % Date : 1998 % Purpose: A server that processes drawing requests from bprolog *********************************************************************/ import java.awt.*; import java.awt.event.*; import java.util.*; import java.applet.*; import bprolog.plc.Plc; public class Draw extends Applet implements Runnable { int maxComps = 100; public int screenWidth=500; public int screenHeight=500; public Hashtable ht; DJComponent[] comps = new DJComponent[maxComps]; DJComponent comp; int noComps = 0; Color color = Color.black; public static void main(String args[]) { Frame f = new Frame("Draw"); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); }}); Draw dj = new Draw(); dj.init(); f.add("Center",dj); f.setSize(dj.screenWidth,dj.screenHeight); f.show(); dj.run(); System.exit(0); } public void init(){ initializeHashtable(); } public void run() { Plc.startPlc(new String []{}); Plc goal = new Plc("draw", new Object[] {this}); Plc.exec("consult('draw')"); goal.call(); while (true); } void initializeHashtable(){ ht = new Hashtable(13); ht.put("black",Color.black); ht.put("blue",Color.blue); ht.put("cyan",Color.cyan); ht.put("darkGray",Color.darkGray); ht.put("gray",Color.gray); ht.put("green",Color.green); ht.put("lightGray",Color.lightGray); ht.put("magenta",Color.magenta); ht.put("orange",Color.orange); ht.put("pink",Color.pink); ht.put("red",Color.red); ht.put("white",Color.white); ht.put("yellow",Color.yellow); } public void paint(Graphics g){ for (int i=0;i