atpframe.java

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

JAVA
469
字号
/* ATPFrame.java * $Id: ATPFrame.java,v 2.8 1998-06-16 11:18:46+09 ht Exp $ * $Name: alpha5_1-release $ * COPYRIGHT NOTICE goes here */package com.ibm.acl.kqmlsample;import com.ibm.acl.kqml.*;import com.ibm.acl.protocol.*;import com.ibm.acl.protocol.atp.*;import com.ibm.acl.util.MalformedSExpressionException;import com.ibm.acl.util.NotListException;import com.ibm.aglet.*;//import com.ibm.aglets.*;import java.lang.*;import java.util.*;import java.awt.*;import java.awt.image.*;import java.io.*;/** * Class ATPFrame * * @version	$Revision: 2.8 $ $Date: 1998-06-16 11:18:46+09 $ * @author	Osamu Furusawa * @author      Hajime Tsuchitani */public class ATPFrame extends Frame {private static final String rcsid = "$Id: ATPFrame.java,v 2.8 1998-06-16 11:18:46+09 ht Exp $ $Name: alpha5_1-release $";static final long serialVersionUID = -4573123353948334058L;    protected ATPAgent		    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 ATPAgent     * @param title     */    public ATPFrame(ATPAgent 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 reply-with        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) {	    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 akm = null;	    try {	      akm = new KQML(sExp.toString());	    } catch (NotListException ex) {	      ex.printStackTrace();	    } catch (MalformedSExpressionException ex) {	      ex.printStackTrace();	    }	    try {	      agent.sendKQMLMessage(akm);	    } catch (Exception ex) {	      ex.printStackTrace();	    } 	    rw.setText(agent.newReplyWith());	    } else if (e.target == close) {		dispose();	    }	    return true;	}	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();	    return true;	}	return super.handleEvent(e);    }    /**     * set result view     *     * @param text result returned from facilitator     */    protected void setResult(String text) {	result.setText(text);    }    /**     * set reply-with view     *     * @param text result returned from facilitator     */    protected void setReplyWith(String text) {	rw.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 + -
显示快捷键?