diff options
author | jestin | 2002-06-05 09:35:57 +0000 |
---|---|---|
committer | jestin | 2002-06-05 09:35:57 +0000 |
commit | 044b408ae99989be9a7eed89ed51a6aba5aa42d9 (patch) | |
tree | 22b698dbc3e6a5b242161d50ba647031b13c23dc /examples/TestIvy.java | |
parent | 11cd642b20045e35293f8510fbab5be9eeca11d7 (diff) | |
download | ivy-java-044b408ae99989be9a7eed89ed51a6aba5aa42d9.zip ivy-java-044b408ae99989be9a7eed89ed51a6aba5aa42d9.tar.gz ivy-java-044b408ae99989be9a7eed89ed51a6aba5aa42d9.tar.bz2 ivy-java-044b408ae99989be9a7eed89ed51a6aba5aa42d9.tar.xz |
Clean package build.
Diffstat (limited to 'examples/TestIvy.java')
-rw-r--r-- | examples/TestIvy.java | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/examples/TestIvy.java b/examples/TestIvy.java new file mode 100644 index 0000000..802f982 --- /dev/null +++ b/examples/TestIvy.java @@ -0,0 +1,127 @@ +package fr.dgac.ivy ; + +import java.awt.* ; +import java.awt.event.* ; + +/** + * toy tool to probe the Ivy software bus. + * it relies on the AWT, and is less useable than TestIvySwing, which should + * be preferred. + * + * @see fr.dgac.ivy.TestIvySwing + * @author François-Régis Colin + * @author Yannick Jestin + * @author <a href="http://www.tls.cena.fr/products/ivy/">http://www.tls.cena.fr/products/ivy/</a> + * + * CHANGELOG + * 1.0.10: + * - System.exit on bus die + */ + +class TestIvy extends Panel implements IvyApplicationListener { + private Ivy bus ; + private String regexp=""; + private TextField tfRegex, tfSend ; + private TextArea ta ; + private Button buApply, buSend, buClear ; + private java.text.SimpleDateFormat format = new + java.text.SimpleDateFormat("hh:mm:ss"); + private int regexp_id; + + public TestIvy() throws IvyException { + super(new BorderLayout()); + ta = new TextArea(); + ta.setEditable(false); + add(ta,BorderLayout.CENTER); + Panel p = new Panel(new BorderLayout()); + p.add(new Label("Regex:"),BorderLayout.WEST); + tfRegex = new TextField(regexp); + tfRegex.addActionListener(new REGCB()); + p.add(tfRegex,BorderLayout.CENTER); + add(p,BorderLayout.NORTH); + p = new Panel(new BorderLayout()); + p.add(new Label("Msg:"),BorderLayout.WEST); + tfSend = new TextField(""); + tfSend.addActionListener(new SENDCB()); + p.add(tfSend,BorderLayout.CENTER); + add(p,BorderLayout.SOUTH); + bus = new Ivy("JAVATESTBUS","Testbus is ready",this); + bus.start(null); + append( "Ivy Domain: "+ bus.getDomain(null) ); + } + + public static Frame f; + + public static void main(String[] args) throws IvyException { + TestIvy tb = new TestIvy(); + f = new Frame("TestIvy"); + f.addWindowListener( tb.new WCCB(f,tb)) ; + f.add(tb, BorderLayout.CENTER); + f.pack(); + f.setVisible(true); + } + + public void connect(IvyClient client) { + append(client.getApplicationName() + " connected " ); + } + + public void disconnect(IvyClient client) { + append(client.getApplicationName() + " disconnected " ); + } + public void die(IvyClient client, int id) { + f.dispose(); + System.exit(0); + } + public void directMessage(IvyClient client, int id, String arg) { + append(client.getApplicationName() + " direct Message "+ id + arg ); + } + + class REGCB implements ActionListener, IvyMessageListener { + public void actionPerformed(ActionEvent e) { + try { + bus.unBindMsg(regexp_id); + } catch (IvyException ie) { + System.out.println("Big badaboum"); // this should not happen + } + regexp=tfRegex.getText(); + regexp.trim(); + regexp_id = bus.bindMsg(regexp,this); + tfRegex.setText(""); + } + public void receive(IvyClient client, String[] args) { + String out="client " + client.getApplicationName() + " envoie: [ "; + for (int i=0;i<args.length;i++) + out=out+args[i]+ ((i<args.length-1)?" , ":""); + out = out + " ]"; + append(out); + } + } + + class SENDCB implements ActionListener { + public void actionPerformed(ActionEvent e) { + int count; + String tosend = tfSend.getText(); + tfSend.setText(""); + count = bus.sendMsg(tosend); + append("Sending '" + tosend + "' count " + count ); + } + } + + private void append(String s) { + ta.append("[" + format.format(new java.util.Date()) + "] "+ s + "\n"); + } + + class WCCB extends WindowAdapter { + private Frame f; + public WCCB(Frame f, TestIvy b) { this.f=f; } + public void windowClosing(WindowEvent e) { + f.setVisible(false); + bus.stop(); + bus = null; + f.dispose(); + System.exit(0); + } + } + +} // class TestIvy +// EOF |