package jadex.bdi.benchmarks; import jadex.bdi.runtime.AgentEvent; import jadex.bdi.runtime.IBDIExternalAccess; import jadex.bdi.runtime.IBDIInternalAccess; import jadex.bdi.runtime.IBeliefListener; import jadex.bridge.IComponentListener; import jadex.bridge.IComponentStep; import jadex.bridge.IInternalAccess; import jadex.commons.ChangeEvent; import jadex.commons.SGUI; import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingUtilities; /** * Gui for displaying messages. */ public class MessageGui extends JFrame { /** * Create a new message gui. */ public MessageGui(IBDIExternalAccess agent) { final JLabel sent = new JLabel("Sent: [0]"); final JLabel rec = new JLabel("Received: [0]"); agent.scheduleStep(new IComponentStep() { public Object execute(IInternalAccess ia) { IBDIInternalAccess bia = (IBDIInternalAccess)ia; bia.getBeliefbase().getBelief("sent").addBeliefListener(new IBeliefListener() { public void beliefChanged(AgentEvent ae) { sent.setText("Sent: ["+ae.getValue()+"]"); } }); bia.getBeliefbase().getBelief("received").addBeliefListener(new IBeliefListener() { public void beliefChanged(AgentEvent ae) { rec.setText("Received: ["+ae.getValue()+"]"); } }); bia.addComponentListener(new IComponentListener() { public void componentTerminating(ChangeEvent ae) { SwingUtilities.invokeLater(new Runnable() { public void run() { MessageGui.this.dispose(); } }); } public void componentTerminated(ChangeEvent ae) { } }); return null; } }); // agent.getBeliefbase().getBelief("sent").addResultListener(new IResultListener() // { // public void resultAvailable(Object source, Object result) // { // ((IEABelief)result).addBeliefListener(new IBeliefListener() // { // public void beliefChanged(AgentEvent ae) // { // sent.setText("Sent: ["+ae.getValue()+"]"); // } // }); // } // // public void exceptionOccurred(Object source, Exception exception) // { // } // }); // agent.getBeliefbase().getBelief("received").addResultListener(new IResultListener() // { // public void resultAvailable(Object source, Object result) // { // ((IEABelief)result).addBeliefListener(new IBeliefListener() // { // public void beliefChanged(AgentEvent ae) // { // rec.setText("Received: ["+ae.getValue()+"]"); // } // }); // } // // public void exceptionOccurred(Object source, Exception exception) // { // } // }); // agent.addAgentListener(new IAgentListener() // { // public void agentTerminating(AgentEvent ae) // { // SwingUtilities.invokeLater(new Runnable() // { // public void run() // { // MessageGui.this.dispose(); // } // }); // } // // public void agentTerminated(AgentEvent ae) // { // } // }); JPanel infos = new JPanel(new GridLayout(2,1)); infos.add(sent); infos.add(rec); getContentPane().add(infos); pack(); setLocation(SGUI.calculateMiddlePosition(this)); setVisible(true); } }