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 + -
显示快捷键?