diff options
author | Bernard Normier <bernard@zeroc.com> | 2005-10-16 22:59:26 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2005-10-16 22:59:26 +0000 |
commit | 5d13916a52684cdfd4e5e32584191c81c53be709 (patch) | |
tree | 4c2a6858e01f7486d623097b37053047183fa711 /java/src/IceGrid/ParametersDialog.java | |
parent | Variable substitution in Application, Node and Replica Group (diff) | |
download | ice-5d13916a52684cdfd4e5e32584191c81c53be709.tar.bz2 ice-5d13916a52684cdfd4e5e32584191c81c53be709.tar.xz ice-5d13916a52684cdfd4e5e32584191c81c53be709.zip |
New menu items for grand parents, and table/parameter/list dialogs are not
more intuitive (no more popup menu)
Diffstat (limited to 'java/src/IceGrid/ParametersDialog.java')
-rwxr-xr-x | java/src/IceGrid/ParametersDialog.java | 161 |
1 files changed, 72 insertions, 89 deletions
diff --git a/java/src/IceGrid/ParametersDialog.java b/java/src/IceGrid/ParametersDialog.java index fa699869ccc..157ac416266 100755 --- a/java/src/IceGrid/ParametersDialog.java +++ b/java/src/IceGrid/ParametersDialog.java @@ -13,8 +13,6 @@ import java.awt.Dimension; import java.awt.Frame;
import java.awt.event.ActionEvent;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
@@ -27,6 +25,9 @@ import javax.swing.JPanel; import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTable;
+import javax.swing.KeyStroke;
+import javax.swing.event.TableModelEvent;
+import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableColumn;
@@ -41,74 +42,6 @@ import com.jgoodies.forms.factories.ButtonBarFactory; public class ParametersDialog extends JDialog
{
- class PopupListener extends MouseAdapter
- {
- public void mousePressed(MouseEvent e)
- {
- maybeShowPopup(e);
- }
-
- public void mouseReleased(MouseEvent e)
- {
- maybeShowPopup(e);
- }
-
- private void maybeShowPopup(MouseEvent e)
- {
- if (e.isPopupTrigger())
- {
- _popup.show( e.getX(), e.getY());
- }
- }
- }
-
- class PopupMenu extends JPopupMenu
- {
- PopupMenu()
- {
- _addRow = new AbstractAction("Add a new parameter")
- {
- public void actionPerformed(ActionEvent e)
- {
- java.util.Vector newVector = new java.util.Vector(2);
- newVector.add(null);
- newVector.add(_nullObject);
- _model.addRow(newVector);
- }
- };
-
- _deleteRow = new AbstractAction("Delete selected parameter(s)")
- {
- public void actionPerformed(ActionEvent e)
- {
- for(;;)
- {
- int selectedRow = _table.getSelectedRow();
- if(selectedRow == -1)
- {
- break;
- }
- else
- {
- _model.removeRow(selectedRow);
- }
- }
- }
- };
-
- add(_addRow);
- add(_deleteRow);
- }
-
- void show(int x, int y)
- {
- _deleteRow.setEnabled(_table.getSelectedRowCount() > 0);
- show(_table, x, y);
- }
-
- private Action _addRow;
- private Action _deleteRow;
- }
public ParametersDialog(Frame parentFrame, String title,
String valHeading, boolean editNames,
@@ -156,13 +89,37 @@ public class ParametersDialog extends JDialog };
JButton cancelButton = new JButton(cancel);
- JScrollPane scrollPane = new JScrollPane(_table);
if(_editNames)
{
- PopupListener popupListener = new PopupListener();
- _table.addMouseListener(popupListener);
- scrollPane.addMouseListener(popupListener);
+ Action deleteRow = new AbstractAction("Delete selected parameter(s)")
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ for(;;)
+ {
+ if(_table.isEditing())
+ {
+ _table.getCellEditor().stopCellEditing();
+ }
+
+ int selectedRow = _table.getSelectedRow();
+ if(selectedRow == -1)
+ {
+ break;
+ }
+ else
+ {
+ _model.removeRow(selectedRow);
+ }
+ }
+ }
+ };
+ _table.getActionMap().put("delete", deleteRow);
+ _table.getInputMap().put(
+ KeyStroke.getKeyStroke("DELETE"), "delete");
}
+
+ JScrollPane scrollPane = new JScrollPane(_table);
scrollPane.setBorder(Borders.DIALOG_BORDER);
getContentPane().add(scrollPane, BorderLayout.CENTER);
@@ -205,12 +162,12 @@ public class ParametersDialog extends JDialog vector.add(row);
}
- if(_editNames && vector.size() == 0)
+ if(_editNames)
{
- java.util.Vector newVector = new java.util.Vector(2);
- newVector.add(null);
- newVector.add(_nullObject);
- vector.add(newVector);
+ java.util.Vector newRow = new java.util.Vector(2);
+ newRow.add("");
+ newRow.add(_nullObject);
+ vector.add(newRow);
}
_model = new DefaultTableModel(vector, _columnNames)
@@ -228,6 +185,23 @@ public class ParametersDialog extends JDialog }
};
+
+ _model.addTableModelListener(new TableModelListener()
+ {
+ public void tableChanged(TableModelEvent e)
+ {
+ if(_editNames)
+ {
+ Object lastKey = _model.getValueAt(
+ _model.getRowCount() - 1 , 0);
+ if(lastKey != null && !lastKey.equals(""))
+ {
+ _model.addRow(new Object[]{"", _nullObject});
+ }
+ }
+ }
+ });
+
_table.setModel(_model);
TableColumn valColumn = _table.getColumnModel().getColumn(1);
@@ -266,20 +240,30 @@ public class ParametersDialog extends JDialog // Eliminate rows with null or empty names
//
String name = (String)row.elementAt(0);
- if(name != null && name.length() > 0)
+ if(name != null)
{
if(_editNames)
{
- names.add(name);
+ name = name.trim();
}
- Object val = row.elementAt(1);
-
- //
- // Eliminate entries with "default" value
- //
- if(val != _nullObject)
+
+ if(!name.equals(""))
{
- values.put(name, val);
+ if(_editNames)
+ {
+ names.add(name);
+ }
+
+ Object val = row.elementAt(1);
+
+ //
+ // Eliminate entries with "default" value
+ //
+ if(val != _nullObject)
+ {
+ assert val != null;
+ values.put(name, val);
+ }
}
}
}
@@ -293,7 +277,6 @@ public class ParametersDialog extends JDialog private JTable _table;
private DefaultTableModel _model;
private java.util.Vector _columnNames;
- private PopupMenu _popup = new PopupMenu();
private TableCellEditor _cellEditor;
}
|