diff options
author | Bernard Normier <bernard@zeroc.com> | 2005-06-21 20:24:44 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2005-06-21 20:24:44 +0000 |
commit | dd25df7f26f493813a703b8f7513bb142e764afb (patch) | |
tree | 1c200ce628a70e207dd34d644f5cd1d0aace2dea /java/src | |
parent | Separate in client and server libs (diff) | |
download | ice-dd25df7f26f493813a703b8f7513bb142e764afb.tar.bz2 ice-dd25df7f26f493813a703b8f7513bb142e764afb.tar.xz ice-dd25df7f26f493813a703b8f7513bb142e764afb.zip |
Fixed Connect dialog issues
Diffstat (limited to 'java/src')
-rwxr-xr-x | java/src/IceGrid/Model.java | 13 | ||||
-rwxr-xr-x | java/src/IceGrid/SessionKeeper.java | 65 | ||||
-rwxr-xr-x | java/src/IceGrid/TreeNode/ApplicationViewRoot.java | 6 | ||||
-rwxr-xr-x | java/src/IceGrid/TreeNode/NodeViewRoot.java | 8 |
4 files changed, 65 insertions, 27 deletions
diff --git a/java/src/IceGrid/Model.java b/java/src/IceGrid/Model.java index d1298993984..9d63a515658 100755 --- a/java/src/IceGrid/Model.java +++ b/java/src/IceGrid/Model.java @@ -132,10 +132,21 @@ class Model //
- // Notification from the SessionKeeper thread
+ // Runs in UI thread
//
void lostSession()
{
+ _latestSerial = -1;
+
+ NodeViewRoot nodeViewRoot =
+ (NodeViewRoot)TreeModelI.getTreeModel(TreeModelI.NODE_VIEW).getRoot();
+
+ nodeViewRoot.clear();
+
+ ApplicationViewRoot applicationViewRoot =
+ (ApplicationViewRoot)TreeModelI.getTreeModel(TreeModelI.APPLICATION_VIEW).getRoot();
+
+ applicationViewRoot.clear();
}
boolean save()
diff --git a/java/src/IceGrid/SessionKeeper.java b/java/src/IceGrid/SessionKeeper.java index d74ca2cfed4..cdf56ec811c 100755 --- a/java/src/IceGrid/SessionKeeper.java +++ b/java/src/IceGrid/SessionKeeper.java @@ -35,34 +35,20 @@ class SessionKeeper {
class ConnectDialog extends JDialog
{
- ConnectDialog(ConnectInfo info)
+ ConnectDialog()
{
super(_parent, "New Connection - IceGrid Admin", true);
- setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
+ setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);
- _info = info;
-
_locatorProxy = new JTextField(30);
- _locatorProxy.setText(_info.locatorProxy);
_username = new JTextField(30);
- _username.setText(_info.username);
_passwordLabel = new JLabel("Password");
_password = new JPasswordField(30);
-
_adminIdentity = new JTextField(30);
- _adminIdentity.setText(_info.adminIdentity);
_sessionManagerIdentity = new JTextField(30);
- _sessionManagerIdentity.setText(_info.sessionManagerIdentity);
-
_useGlacier = new JCheckBox("Connect using Glacier");
- _useGlacier.setSelected(_info.useGlacier);
_autoconnect = new JCheckBox("Autoconnect");
- _autoconnect.setSelected(_info.autoconnect);
-
- _autoconnect.setEnabled(!info.useGlacier);
- _passwordLabel.setEnabled(info.useGlacier);
- _password.setEnabled(info.useGlacier);
-
+
_useGlacier.addItemListener(new ItemListener()
{
public void itemStateChanged(ItemEvent e)
@@ -92,7 +78,7 @@ class SessionKeeper if(doConnect(ConnectDialog.this, _info))
{
- dispose();
+ setVisible(false);
}
//
// Otherwise go back to the dialog
@@ -107,7 +93,7 @@ class SessionKeeper {
public void actionPerformed(ActionEvent e)
{
- dispose();
+ setVisible(false);
}
};
cancelButton.addActionListener(cancelListener);
@@ -153,10 +139,33 @@ class SessionKeeper setResizable(false);
}
- void getSession()
+ boolean showDialog(ConnectInfo info)
{
- setLocationRelativeTo(_parent);
- setVisible(true);
+ if(isVisible() == false)
+ {
+ _info = info;
+ _locatorProxy.setText(_info.locatorProxy);
+ _username.setText(_info.username);
+ _adminIdentity.setText(_info.adminIdentity);
+ _sessionManagerIdentity.setText(_info.sessionManagerIdentity);
+
+ _useGlacier.setSelected(_info.useGlacier);
+ _autoconnect.setSelected(_info.autoconnect);
+ _autoconnect.setEnabled(!info.useGlacier);
+ _passwordLabel.setEnabled(info.useGlacier);
+ _password.setEnabled(info.useGlacier);
+
+ setLocationRelativeTo(_parent);
+ setVisible(true);
+ return true;
+ }
+ else
+ {
+ //
+ // Otherwise it was already on the screen!
+ //
+ return false;
+ }
}
private ConnectInfo _info;
@@ -242,13 +251,14 @@ class SessionKeeper catch(final Ice.LocalException e)
{
_done = true;
- destroyObservers();
- _model.lostSession();
-
+
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
+ destroyObservers();
+ _model.lostSession();
+
JOptionPane.showMessageDialog(
_parent,
"Failed to contact the IceGrid registry: " + e.toString(),
@@ -295,6 +305,7 @@ class SessionKeeper Preferences prefs, StatusBar statusBar)
{
_parent = parent;
+ _connectDialog = new ConnectDialog();
_communicator = communicator;
_model = model;
_connectionPrefs = prefs.node("Connection");
@@ -320,7 +331,7 @@ class SessionKeeper // When the user presses OK on the connect dialog, doConnect
// is called
//
- (new ConnectDialog(connectInfo)).getSession();
+ _connectDialog.showDialog(connectInfo);
}
}
@@ -577,6 +588,8 @@ class SessionKeeper private Frame _parent;
+ private ConnectDialog _connectDialog;
+
private Ice.Communicator _communicator;
private Model _model;
private Preferences _connectionPrefs;
diff --git a/java/src/IceGrid/TreeNode/ApplicationViewRoot.java b/java/src/IceGrid/TreeNode/ApplicationViewRoot.java index 752bcf89327..9b25db96042 100755 --- a/java/src/IceGrid/TreeNode/ApplicationViewRoot.java +++ b/java/src/IceGrid/TreeNode/ApplicationViewRoot.java @@ -42,6 +42,12 @@ public class ApplicationViewRoot extends Parent _nodeViewRoot.fireStructureChanged(this);
}
+ public void clear()
+ {
+ clearChildren();
+ _descriptors = null;
+ fireStructureChanged(this);
+ }
public String toString()
{
diff --git a/java/src/IceGrid/TreeNode/NodeViewRoot.java b/java/src/IceGrid/TreeNode/NodeViewRoot.java index 5300782b8c4..5c606435483 100755 --- a/java/src/IceGrid/TreeNode/NodeViewRoot.java +++ b/java/src/IceGrid/TreeNode/NodeViewRoot.java @@ -37,6 +37,14 @@ public class NodeViewRoot extends Parent }
}
}
+
+ public void clear()
+ {
+ _nodeMap.clear();
+ clearChildren();
+ fireStructureChanged(this);
+ }
+
Node findNode(String name)
{
|