summaryrefslogtreecommitdiff
path: root/java/src/IceGridGUI/LiveDeployment/RegistryEditor.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/IceGridGUI/LiveDeployment/RegistryEditor.java')
-rwxr-xr-xjava/src/IceGridGUI/LiveDeployment/RegistryEditor.java192
1 files changed, 189 insertions, 3 deletions
diff --git a/java/src/IceGridGUI/LiveDeployment/RegistryEditor.java b/java/src/IceGridGUI/LiveDeployment/RegistryEditor.java
index 1087e234f2d..b4f0f395bf9 100755
--- a/java/src/IceGridGUI/LiveDeployment/RegistryEditor.java
+++ b/java/src/IceGridGUI/LiveDeployment/RegistryEditor.java
@@ -9,11 +9,18 @@
package IceGridGUI.LiveDeployment;
import java.awt.event.ActionEvent;
+import java.awt.event.ActionEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JLabel;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
@@ -31,6 +38,98 @@ class RegistryEditor extends Editor
_hostname.setEditable(false);
_endpoints.setEditable(false);
+ Action openDefinition = new AbstractAction("Open definition")
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ int selectedRow = _applications.getSelectedRow();
+ if(selectedRow != -1)
+ {
+ String appName = (String)_applications.getValueAt(selectedRow, 0);
+ ApplicationPane app = _target.getCoordinator().openLiveApplication(appName);
+
+ if(app != null && app.getRoot().getSelectedNode() == null)
+ {
+ app.getRoot().setSelectedNode(app.getRoot());
+ }
+ }
+ }
+
+ };
+
+ Action showDetails = new AbstractAction("Show details")
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ int selectedRow = _applications.getSelectedRow();
+ if(selectedRow != -1)
+ {
+ String appName = (String)_applications.getValueAt(selectedRow, 0);
+ _target.showApplicationDetails(appName);
+ }
+ }
+
+ };
+
+ Action removeApplication = new AbstractAction("Remove from registry")
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ int selectedRow = _applications.getSelectedRow();
+ if(selectedRow != -1)
+ {
+ String appName = (String)_applications.getValueAt(selectedRow, 0);
+
+ int confirm = JOptionPane.showConfirmDialog(
+ _target.getCoordinator().getMainFrame(),
+ "You are about to remove application '" + appName + "' from the IceGrid registry. "
+ + "Do you want to proceed?",
+ "Remove Confirmation",
+ JOptionPane.YES_NO_OPTION);
+
+ if(confirm == JOptionPane.YES_OPTION)
+ {
+ _target.getCoordinator().removeApplicationFromRegistry(appName);
+ }
+ }
+ }
+ };
+
+ removeApplication.putValue(Action.ACCELERATOR_KEY,
+ KeyStroke.getKeyStroke("DELETE"));
+
+ _applications.getActionMap().put("delete", removeApplication);
+ _applications.getInputMap().put(
+ KeyStroke.getKeyStroke("DELETE"), "delete");
+
+ final JPopupMenu appPopup = new JPopupMenu();
+ appPopup.add(openDefinition);
+ appPopup.add(showDetails);
+ appPopup.addSeparator();
+ appPopup.add(removeApplication);
+
+ _applications.addMouseListener(new MouseAdapter()
+ {
+ public void mousePressed(MouseEvent e)
+ {
+ maybeShowPopup(e);
+ }
+
+ public void mouseReleased(MouseEvent e)
+ {
+ maybeShowPopup(e);
+ }
+
+ private void maybeShowPopup(MouseEvent e)
+ {
+ if (e.isPopupTrigger() && _applications.getSelectedRow() != -1)
+ {
+ appPopup.show(_applications, e.getX(), e.getY());
+ }
+ }
+ });
+
+
Action deleteObject = new AbstractAction("Remove selected object")
{
public void actionPerformed(ActionEvent e)
@@ -45,6 +144,9 @@ class RegistryEditor extends Editor
}
}
};
+ deleteObject.putValue(Action.ACCELERATOR_KEY,
+ KeyStroke.getKeyStroke("DELETE"));
+
_objects.getActionMap().put("delete", deleteObject);
_objects.getInputMap().put(
KeyStroke.getKeyStroke("DELETE"), "delete");
@@ -60,6 +162,9 @@ class RegistryEditor extends Editor
}
}
};
+ addObject.putValue(Action.ACCELERATOR_KEY,
+ KeyStroke.getKeyStroke("INSERT"));
+
_objects.getActionMap().put("insert", addObject);
_objects.getInputMap().put(
KeyStroke.getKeyStroke("INSERT"), "insert");
@@ -67,6 +172,35 @@ class RegistryEditor extends Editor
_objects.setToolTipText("<html>Well-known objects registered through the Admin interface.<br>"
+ "Well-known objects registered using Adapter or Replica Group<br>"
+ "definitions are not displayed here.</html>");
+
+
+ final JPopupMenu objectsPopup = new JPopupMenu();
+ objectsPopup.add(addObject);
+ objectsPopup.addSeparator();
+ final JMenuItem deleteObjectMenuItem = objectsPopup.add(deleteObject);
+
+ _objects.addMouseListener(new MouseAdapter()
+ {
+ public void mousePressed(MouseEvent e)
+ {
+ maybeShowPopup(e);
+ }
+
+ public void mouseReleased(MouseEvent e)
+ {
+ maybeShowPopup(e);
+ }
+
+ private void maybeShowPopup(MouseEvent e)
+ {
+ if (e.isPopupTrigger())
+ {
+ deleteObjectMenuItem.setEnabled(_objects.getSelectedRow() != -1);
+ objectsPopup.show(_objects, e.getX(), e.getY());
+ }
+ }
+ });
+
Action deleteAdapter = new AbstractAction("Remove selected adapter")
{
@@ -82,10 +216,37 @@ class RegistryEditor extends Editor
}
}
};
+ deleteAdapter.putValue(Action.ACCELERATOR_KEY,
+ KeyStroke.getKeyStroke("DELETE"));
+
_adapters.getActionMap().put("delete", deleteAdapter);
_adapters.getInputMap().put(
KeyStroke.getKeyStroke("DELETE"), "delete");
_adapters.setToolTipText("<html>Object adapters registered at run time.</html>");
+
+ final JPopupMenu adaptersPopup = new JPopupMenu();
+ adaptersPopup.add(deleteAdapter);
+
+ _adapters.addMouseListener(new MouseAdapter()
+ {
+ public void mousePressed(MouseEvent e)
+ {
+ maybeShowPopup(e);
+ }
+
+ public void mouseReleased(MouseEvent e)
+ {
+ maybeShowPopup(e);
+ }
+
+ private void maybeShowPopup(MouseEvent e)
+ {
+ if (e.isPopupTrigger() && _adapters.getSelectedRow() != -1)
+ {
+ adaptersPopup.show(_adapters, e.getX(), e.getY());
+ }
+ }
+ });
}
protected void appendProperties(DefaultFormBuilder builder)
@@ -100,7 +261,7 @@ class RegistryEditor extends Editor
builder.append(_endpoints, 3);
builder.nextLine();
- builder.appendSeparator("Dynamic Well-Known Objects");
+ builder.appendSeparator("Deployed Applications");
builder.append("");
builder.nextLine();
builder.append("");
@@ -117,13 +278,36 @@ class RegistryEditor extends Editor
builder.nextLine();
builder.append("");
builder.nextRow(-14);
- JScrollPane scrollPane = new JScrollPane(_objects);
- scrollPane.setToolTipText(_objects.getToolTipText());
+ JScrollPane scrollPane = new JScrollPane(_applications);
+ scrollPane.setToolTipText(_applications.getToolTipText());
builder.add(scrollPane,
cc.xywh(builder.getColumn(), builder.getRow(), 3, 14));
builder.nextRow(14);
builder.nextLine();
+ builder.appendSeparator("Dynamic Well-Known Objects");
+ builder.append("");
+ builder.nextLine();
+ builder.append("");
+ builder.nextLine();
+ builder.append("");
+ builder.nextLine();
+ builder.append("");
+ builder.nextLine();
+ builder.append("");
+ builder.nextLine();
+ builder.append("");
+ builder.nextLine();
+ builder.append("");
+ builder.nextLine();
+ builder.append("");
+ builder.nextRow(-14);
+ scrollPane = new JScrollPane(_objects);
+ scrollPane.setToolTipText(_objects.getToolTipText());
+ builder.add(scrollPane, cc.xywh(builder.getColumn(), builder.getRow(), 3, 14));
+ builder.nextRow(14);
+ builder.nextLine();
+
builder.appendSeparator("Dynamic Object Adapters");
builder.append("");
builder.nextLine();
@@ -160,12 +344,14 @@ class RegistryEditor extends Editor
_target = root;
_hostname.setText(root.getRegistryInfo().hostname);
_endpoints.setText(root.getRegistryInfo().endpoints);
+ _applications.setSortedMap(root.getApplicationMap());
_objects.setObjects(root.getObjects());
_adapters.setAdapters(root.getAdapters());
}
private JTextField _hostname = new JTextField(20);
private JTextField _endpoints = new JTextField(20);
+ private TableField _applications = new TableField("Name", "Last Update");
private TableField _objects = new TableField("Proxy", "Type");
private TableField _adapters = new TableField("ID", "Endpoints", "Replica Group");