diff options
Diffstat (limited to 'java/demo/Ice/swing/Client.java')
-rw-r--r-- | java/demo/Ice/swing/Client.java | 157 |
1 files changed, 80 insertions, 77 deletions
diff --git a/java/demo/Ice/swing/Client.java b/java/demo/Ice/swing/Client.java index e84f7c1fe38..f06ade4cf27 100644 --- a/java/demo/Ice/swing/Client.java +++ b/java/demo/Ice/swing/Client.java @@ -145,12 +145,7 @@ public class Client extends JFrame } }); - final String[] modes = new String[] - { - "Twoway", "Twoway Secure", "Oneway", "Oneway Batch", "Oneway Secure", "Oneway Secure Batch", "Datagram", - "Datagram Batch" - }; - _mode.setModel(new DefaultComboBoxModel<String>(modes)); + _mode.setModel(new DefaultComboBoxModel<String>(DELIVERY_MODE_DESC)); _hello.addActionListener(new ActionListener() { @@ -356,6 +351,27 @@ public class Client extends JFrame setVisible(true); } + // These two arrays match and match the order of the delivery mode enumeration. + private final static DeliveryMode DELIVERY_MODES[] = { + DeliveryMode.TWOWAY, + DeliveryMode.TWOWAY_SECURE, + DeliveryMode.ONEWAY, + DeliveryMode.ONEWAY_BATCH, + DeliveryMode.ONEWAY_SECURE, + DeliveryMode.ONEWAY_SECURE_BATCH, + DeliveryMode.DATAGRAM, + DeliveryMode.DATAGRAM_BATCH, + }; + private final static String DELIVERY_MODE_DESC[] = new String[] { + "Twoway", + "Twoway Secure", + "Oneway", + "Oneway Batch", + "Oneway Secure", + "Oneway Secure Batch", + "Datagram", + "Datagram Batch" + }; private enum DeliveryMode { TWOWAY, @@ -415,6 +431,11 @@ public class Client extends JFrame return prx; } + public boolean isOneway() + { + return this == ONEWAY || this == ONEWAY_SECURE; + } + public boolean isBatch() { return this == ONEWAY_BATCH || this == DATAGRAM_BATCH || this == ONEWAY_SECURE_BATCH; @@ -442,45 +463,6 @@ public class Client extends JFrame _status.setText("Ready"); } - class SayHelloI extends Demo.Callback_Hello_sayHello - { - @Override - synchronized public void response() - { - assert (!_response); - _response = true; - _status.setText("Ready"); - } - - @Override - synchronized public void exception(final Ice.LocalException ex) - { - assert (!_response); - _response = true; - handleException(ex); - } - - @Override - synchronized public void sent(boolean ss) - { - if(_response) - { - return; - } - - if(_deliveryMode == DeliveryMode.TWOWAY || _deliveryMode == DeliveryMode.TWOWAY_SECURE) - { - _status.setText("Waiting for response"); - } - else - { - _status.setText("Ready"); - } - } - - private boolean _response = false; - } - private void sayHello() { if(_helloPrx == null) @@ -494,7 +476,39 @@ public class Client extends JFrame if(!_deliveryMode.isBatch()) { _status.setText("Sending request"); - _helloPrx.begin_sayHello(delay, new SayHelloI()); + final DeliveryMode mode = _deliveryMode; + _helloPrx.begin_sayHello(delay, new Demo.Callback_Hello_sayHello() { + @Override + public void response() + { + assert (!_response); + _response = true; + _status.setText("Ready"); + } + + @Override + public void exception(final Ice.LocalException ex) + { + assert (!_response); + _response = true; + handleException(ex); + } + + @Override + public void sent(boolean ss) + { + if(mode.isOneway()) + { + _status.setText("Ready"); + } + else if(!_response) + { + _status.setText("Waiting for response"); + } + } + + private boolean _response = false; + }); } else { @@ -520,24 +534,39 @@ public class Client extends JFrame { if(!_deliveryMode.isBatch()) { + _status.setText("Sending request"); + final DeliveryMode mode = _deliveryMode; _helloPrx.begin_shutdown(new Demo.Callback_Hello_shutdown() { @Override public void response() { + _response = true; _status.setText("Ready"); } @Override public void exception(final Ice.LocalException ex) { + _response = true; handleException(ex); } + + @Override + public void sent(boolean ss) + { + if(mode.isOneway()) + { + _status.setText("Ready"); + } + else if(!_response) + { + _status.setText("Waiting for response"); + } + } + + private boolean _response = false; }); - if(_deliveryMode == DeliveryMode.TWOWAY || _deliveryMode == DeliveryMode.TWOWAY_SECURE) - { - _status.setText("Waiting for response"); - } } else { @@ -569,33 +598,7 @@ public class Client extends JFrame private void changeDeliveryMode(long id) { - switch ((int)id) - { - case 0: - _deliveryMode = DeliveryMode.TWOWAY; - break; - case 1: - _deliveryMode = DeliveryMode.TWOWAY_SECURE; - break; - case 2: - _deliveryMode = DeliveryMode.ONEWAY; - break; - case 3: - _deliveryMode = DeliveryMode.ONEWAY_BATCH; - break; - case 4: - _deliveryMode = DeliveryMode.ONEWAY_SECURE; - break; - case 5: - _deliveryMode = DeliveryMode.ONEWAY_SECURE_BATCH; - break; - case 6: - _deliveryMode = DeliveryMode.DATAGRAM; - break; - case 7: - _deliveryMode = DeliveryMode.DATAGRAM_BATCH; - break; - } + _deliveryMode = DELIVERY_MODES[(int)id]; updateProxy(); } |