ktpframe.java

来自「《移动Agent技术》一书的所有章节源代码。」· Java 代码 · 共 462 行

JAVA
462
字号
/* KTPFrame.java * $Id: KTPFrame.java,v 2.5 1997-12-07 15:05:43+09 ht Exp $ * $Name: alpha5_1-release $ */package com.ibm.acl.kqmlsample;import com.ibm.acl.kqml.*;import com.ibm.acl.util.MalformedSExpressionException;import com.ibm.acl.util.NotListException;import java.util.*;import java.awt.*;import java.awt.image.*;import java.io.*;/** * Class KTPFrame * * @version     $Revision: 2.5 $ $Date: 1997-12-07 15:05:43+09 $ * @author      Osamu Furusawa * @author      Hajime Tsuchitani */public class KTPFrame extends Frame {  private static final String rcsid = "$Id: KTPFrame.java,v 2.5 1997-12-07 15:05:43+09 ht Exp $ $Name: alpha5_1-release $";  protected KTPAgent                agent;  protected Choice kqmlperformative = new Choice();  protected TextField performative  = new TextField("");  protected TextField name          = new TextField("");  protected TextField sender        = new TextField("");  protected TextField receiver      = new TextField("");  protected TextField from	      = new TextField("");  protected TextField to	      = new TextField("");  protected TextField rw            = new TextField("");  protected TextField irt           = new TextField("");  protected TextField language      = new TextField("");  protected TextField ontology      = new TextField("");  protected TextArea  content       = new TextArea(3,20);  protected TextArea  result        = new TextArea(3,20);  protected Button    go            = new Button("Go");  protected Button    close         = new Button("Close");      /**   * Constructor   *   * @param agent reference to KTPAgent   * @param title   */  public KTPFrame(KTPAgent agent, String title) {    super(title);        this.agent = agent;        // lifecycle     kqmlperformative.addItem("register_W");    kqmlperformative.addItem("unregister_W");    kqmlperformative.addItem("ask-one_W");        // yellowpage    kqmlperformative.addItem("insert_Y");    kqmlperformative.addItem("delete-one_Y");    kqmlperformative.addItem("ask-all_Y");        // other kqmlperformative    kqmlperformative.addItem("advertise_K");    kqmlperformative.addItem("unadvertise_K");    kqmlperformative.addItem("recommend-one_K");    kqmlperformative.addItem("recommend-all_K");    kqmlperformative.addItem("recruit-one_K");    kqmlperformative.addItem("recruit-all_K");    kqmlperformative.addItem("broker-one_K");    kqmlperformative.addItem("broker-all_K");    kqmlperformative.addItem("subscribe_K");    kqmlperformative.addItem("forward_K");    kqmlperformative.addItem("tell_K");    kqmlperformative.addItem("uninsert_K");    kqmlperformative.addItem("discard_K");    kqmlperformative.addItem("undelete_K");    kqmlperformative.addItem("transport-address_K");            GridBagLayout grid = new GridBagLayout();    GridBagConstraints gbc = new GridBagConstraints();    setLayout(grid);        // all componet    gbc.ipadx = gbc.ipadx = 3;    gbc.fill = GridBagConstraints.HORIZONTAL;    gbc.insets = new Insets(3,3,3,3);        // set kqmlperformative    gbc.weightx = 0.5;    Label labelAct = new Label("Action:");    grid.setConstraints(labelAct, gbc);    add(labelAct);        gbc.weightx = 1.0;    gbc.gridwidth = GridBagConstraints.REMAINDER;    grid.setConstraints(kqmlperformative, gbc);    add(kqmlperformative);        // set performative    gbc.weightx = 0.5;    gbc.gridwidth = 1;    Label labelPerfo = new Label("Performative:");    grid.setConstraints(labelPerfo, gbc);    add(labelPerfo);        gbc.weightx = 1.0;    gbc.gridwidth = GridBagConstraints.REMAINDER;    grid.setConstraints(performative, gbc);    add(performative);        // set name    gbc.weightx = 0.5;    gbc.gridwidth = 1;    Label labelName = new Label("Name:");    grid.setConstraints(labelName, gbc);    add(labelName);        gbc.weightx = 1.0;    gbc.gridwidth = GridBagConstraints.REMAINDER;    grid.setConstraints(name, gbc);    add(name);        // set sender    gbc.weightx = 0.5;    gbc.gridwidth = 1;    Label labelSender = new Label("Sender:");    grid.setConstraints(labelSender, gbc);    add(labelSender);        gbc.weightx = 1.0;    gbc.gridwidth = GridBagConstraints.REMAINDER;    grid.setConstraints(sender, gbc);    add(sender);        // set receiver    gbc.weightx = 0.5;    gbc.gridwidth = 1;    Label labelReceiver = new Label("Receiver:");    grid.setConstraints(labelReceiver, gbc);    add(labelReceiver);        gbc.weightx = 1.0;    gbc.gridwidth = GridBagConstraints.REMAINDER;    grid.setConstraints(receiver, gbc);    add(receiver);        // set from    gbc.weightx = 0.5;    gbc.gridwidth = 1;    Label labelFrom = new Label("From:");    grid.setConstraints(labelFrom, gbc);    add(labelFrom);        gbc.weightx = 1.0;    gbc.gridwidth = GridBagConstraints.REMAINDER;    grid.setConstraints(from, gbc);    add(from);        // set to    gbc.weightx = 0.5;    gbc.gridwidth = 1;    Label labelTo = new Label("To:");    grid.setConstraints(labelTo, gbc);    add(labelTo);        gbc.weightx = 1.0;    gbc.gridwidth = GridBagConstraints.REMAINDER;    grid.setConstraints(to, gbc);    add(to);        // set reply-with    gbc.weightx = 0.5;    gbc.gridwidth = 1;    Label labelRw = new Label("reply-with:");    grid.setConstraints(labelRw, gbc);    add(labelRw);        gbc.weightx = 1.0;    gbc.gridwidth = GridBagConstraints.REMAINDER;    grid.setConstraints(rw, gbc);    add(rw);        // set in-reply-to    gbc.weightx = 0.5;    gbc.gridwidth = 1;    Label labelIrt = new Label("in-reply-to:");    grid.setConstraints(labelIrt, gbc);    add(labelIrt);        gbc.weightx = 1.0;    gbc.gridwidth = GridBagConstraints.REMAINDER;    grid.setConstraints(irt, gbc);    add(irt);        // set language    gbc.weightx = 0.5;    gbc.gridwidth = 1;    Label labelLanguage = new Label("language:");    grid.setConstraints(labelLanguage, gbc);    add(labelLanguage);        gbc.weightx = 1.0;    gbc.gridwidth = GridBagConstraints.REMAINDER;    grid.setConstraints(language, gbc);    add(language);        // set ontology    gbc.weightx = 0.5;    gbc.gridwidth = 1;    Label labelOntology = new Label("ontology:");    grid.setConstraints(labelOntology, gbc);    add(labelOntology);        gbc.weightx = 1.0;    gbc.gridwidth = GridBagConstraints.REMAINDER;    grid.setConstraints(ontology, gbc);    add(ontology);            // set content    gbc.weightx = 0.5;    gbc.gridwidth = 1;    Label labelContent = new Label("content:");    grid.setConstraints(labelContent, gbc);    add(labelContent);        gbc.weightx = 1.0;    gbc.weighty = 1.0;    gbc.gridheight = 1;    gbc.gridwidth = GridBagConstraints.REMAINDER;    gbc.fill = GridBagConstraints.BOTH;    grid.setConstraints(content, gbc);    add(content);        // set result    gbc.weightx = 0.5;    gbc.weighty = 0;    gbc.gridwidth = 1;    gbc.fill = GridBagConstraints.HORIZONTAL;    Label labelResult = new Label("result:");    grid.setConstraints(labelResult, gbc);    add(labelResult);        gbc.weightx = 1.0;    gbc.weighty = 1.0;    gbc.gridheight = 1;    gbc.gridwidth = GridBagConstraints.REMAINDER;    gbc.fill = GridBagConstraints.BOTH;    grid.setConstraints(result, gbc);    add(result);        // set Button    Panel panel = new Panel();    panel.setLayout(new FlowLayout());    panel.add(go);    panel.add(close);        gbc.weighty = 0.0;    gbc.gridheight = 1;    gbc.fill = GridBagConstraints.NONE;    grid.setConstraints(panel, gbc);    add(panel);        KQML kqml = agent.requestKQML("register_W");    setKQMLMessage(kqml);    sender.setText(kqml.getParameter(":sender"));    receiver.setText(kqml.getParameter(":receiver"));    resize(550,600);      }    /**   * action on Button and Choice   *   * @param e event   * @param o object   */  public boolean action(Event e, Object o) {        if (e.target instanceof Button) {      if (e.target == go) {		// actually create KQML message from each TextField	// and TextArea.	StringBuffer sExp = new StringBuffer("( ");		if ( 0 != performative.getText().length())	  sExp.append(performative.getText());	if ( 0 != name.getText().length())	  sExp.append(" :name " + name.getText());	if ( 0 != sender.getText().length())	  sExp.append(" :sender " + sender.getText());	if ( 0 != receiver.getText().length())	  sExp.append(" :receiver " + receiver.getText());	if ( 0 != from.getText().length())	  sExp.append(" :from " + from.getText());	if ( 0 != to.getText().length())	  sExp.append(" :to " + to.getText());	if ( 0 != rw.getText().length())	  sExp.append(" :reply-with " + rw.getText());	if ( 0 != irt.getText().length())	  sExp.append(" :in-reply-to " + irt.getText());	if ( 0 != language.getText().length())	  sExp.append(" :language " + language.getText());	    	if ( 0 != ontology.getText().length())	  sExp.append(" :ontology " + ontology.getText());	if ( 0 != content.getText().length())	  sExp.append(" :content " + content.getText());		sExp.append(" )");		KQML kqml = null;		try {	  kqml = new KQML(sExp.toString());	} catch (NotListException ex) {	  ex.printStackTrace();	} catch (MalformedSExpressionException ex) {	  ex.printStackTrace();	}		try {	  agent.sendKQMLMessage(kqml);	} catch (Exception ex) {	  ex.printStackTrace();	}	// set new replywith	rw.setText(agent.newReplyWith());	      } else if (e.target == close) {	dispose();	System.exit(0);      }      return true;    } else if (e.target instanceof Choice) {      if ("register_W".equals(o)) {	setKQMLMessage(agent.requestKQML("register_W"));	return true;      } else if ("unregister_W".equals(o)) {	setKQMLMessage(agent.requestKQML("unregister_W"));	return true;      } else if ("ask-one_W".equals(o)) {	setKQMLMessage(agent.requestKQML("ask-one_W"));	return true;      } else if ("insert_Y".equals(o)) {	setKQMLMessage(agent.requestKQML("insert_Y"));	return true;      } else if ("ask-all_Y".equals(o)) {	setKQMLMessage(agent.requestKQML("ask-all_Y"));	return true;      } else if ("delete-one_Y".equals(o)) {	setKQMLMessage(agent.requestKQML("delete-one_Y"));	return true;      } else if ("advertise_K".equals(o)) {	setKQMLMessage(agent.requestKQML("advertise_K"));	return true;      } else if ("unadvertise_K".equals(o)) {	setKQMLMessage(agent.requestKQML("unadvertise_K"));	return true;      } else if ("recruit-one_K".equals(o)) {	setKQMLMessage(agent.requestKQML("recruit-one_K"));	return true;      } else if ("recruit-all_K".equals(o)) {	setKQMLMessage(agent.requestKQML("recruit-all_K"));	return true;      } else if ("broker-one_K".equals(o)) {	setKQMLMessage(agent.requestKQML("broker-one_K"));	return true;      } else if ("broker-all_K".equals(o)) {	setKQMLMessage(agent.requestKQML("broker-all_K"));	return true;      } else if ("subscribe_K".equals(o)) {	setKQMLMessage(agent.requestKQML("subscribe_K"));	return true;      } else if ("forward_K".equals(o)) {	setKQMLMessage(agent.requestKQML("forward_K"));	return true;      } else if ("recommend-one_K".equals(o)) {	setKQMLMessage(agent.requestKQML("recommend-one_K"));	return true;      } else if ("recommend-all_K".equals(o)) {	setKQMLMessage(agent.requestKQML("recommend-all_K"));	return true;      } else if ("tell_K".equals(o)) {	setKQMLMessage(agent.requestKQML("tell_K"));	return true;      } else if ("uninsert_K".equals(o)) {	setKQMLMessage(agent.requestKQML("uninsert_K"));	return true;      } else if ("discard_K".equals(o)) {	setKQMLMessage(agent.requestKQML("discard_K"));	return true;      } else if ("undelete_K".equals(o)) {	setKQMLMessage(agent.requestKQML("undelete_K"));	return true;      } else if ("transport-address_K".equals(o)) {	setKQMLMessage(agent.requestKQML("transport-address_K"));	return true;      }    }    return super.action(e, o);  }      /**   * handle event   *   * @param e event   */  public boolean handleEvent(Event e) {    if (e.id == Event.WINDOW_DESTROY) {      dispose();      System.exit(0);      return true;    }    return super.handleEvent(e);  }      /**   * set result view   *   * @param text result returned from facilitator   */  public void setResult(String text) {    result.setText(text);  }      /**   * set paramter to view   *   * @param kqml KQML message   *   */  protected void setKQMLMessage(KQML kqml) {    performative.setText(kqml.getPerformative());    name.setText(kqml.getParameter(":name"));    //sender.setText(kqml.getParameter(":sender"));    receiver.setText(kqml.getParameter(":receiver"));    from.setText(kqml.getParameter(":from"));    to.setText(kqml.getParameter(":to"));    rw.setText(kqml.getParameter(":reply-with"));    irt.setText(kqml.getParameter(":in-reply-to"));    ontology.setText(kqml.getParameter(":ontology"));    language.setText(kqml.getParameter(":language"));        String temp;    if ( null != ( temp = (String)kqml.getContent()))      content.setText(temp);      }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?