| import java.awt.*; |
| import com.googlecode.prolog_cafe.lang.*; |
| /** |
| * <code>PrologFrame</code><br> |
| * @author Naoyuki Tamura (tamura@kobe-u.ac.jp) |
| */ |
| public abstract class PrologFrame extends Frame implements Runnable { |
| PrologControlPanel control = null; |
| Thread frameThread = null; |
| PrologControl prolog = null; |
| |
| public PrologFrame() { |
| frameThread = new Thread(this); |
| frameThread.start(); |
| } |
| |
| void sendArgument() {} |
| |
| void receiveResult() {} |
| |
| void aborted() {} |
| |
| void quit() { |
| System.exit(0); |
| } |
| |
| public void run() { |
| try { |
| Thread.sleep(500); |
| } catch (InterruptedException e) {} |
| setVisible(true); |
| while (Thread.currentThread() == frameThread) { |
| // repaint(); |
| try { |
| Thread.sleep(500); |
| } catch (InterruptedException e) {} |
| int state = control.getState(); |
| if (state == control.ABORT) { |
| aborted(); |
| } else if (state == control.QUIT) { |
| break; |
| } |
| } |
| control.close(); |
| quit(); |
| } |
| } |