diff options
Diffstat (limited to 'java/src/IceGridGUI/LiveDeployment/ObjectDialog.java')
-rw-r--r-- | java/src/IceGridGUI/LiveDeployment/ObjectDialog.java | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/java/src/IceGridGUI/LiveDeployment/ObjectDialog.java b/java/src/IceGridGUI/LiveDeployment/ObjectDialog.java new file mode 100644 index 00000000000..8d9c1e40032 --- /dev/null +++ b/java/src/IceGridGUI/LiveDeployment/ObjectDialog.java @@ -0,0 +1,177 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2011 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +package IceGridGUI.LiveDeployment; + +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Frame; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.BoxLayout; +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JComponent; +import javax.swing.JDialog; +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.JTextField; + +import com.jgoodies.forms.builder.DefaultFormBuilder; +import com.jgoodies.forms.factories.Borders; +import com.jgoodies.forms.factories.ButtonBarFactory; +import com.jgoodies.forms.layout.CellConstraints; +import com.jgoodies.forms.layout.FormLayout; +import com.jgoodies.forms.util.LayoutStyle; + +class ObjectDialog extends JDialog +{ + ObjectDialog(final Root root, boolean readOnly) + { + super(root.getCoordinator().getMainFrame(), + (readOnly ? "" : "New ") + "Dynamic Well-Known Object - IceGrid Admin", true); + + setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE); + _mainFrame = root.getCoordinator().getMainFrame(); + + _proxy.setLineWrap(true); + + if(readOnly) + { + _proxy.setEditable(false); + _proxy.setOpaque(false); + _type.setEditable(false); + } + else + { + _typeCombo.setEditable(true); + } + + FormLayout layout = new FormLayout("right:pref, 3dlu, pref", ""); + DefaultFormBuilder builder = new DefaultFormBuilder(layout); + builder.setDefaultDialogBorder(); + builder.setRowGroupingEnabled(true); + builder.setLineGapSize(LayoutStyle.getCurrent().getLinePad()); + + builder.append("Proxy"); + builder.nextLine(); + builder.append(""); + builder.nextRow(-2); + CellConstraints cc = new CellConstraints(); + JScrollPane scrollPane = new JScrollPane(_proxy); + builder.add(scrollPane, cc.xywh(builder.getColumn(), builder.getRow(), 1, 3)); + builder.nextRow(2); + builder.nextLine(); + + if(readOnly) + { + builder.append("Type", _type); + } + else + { + builder.append("Type", _typeCombo); + } + builder.nextLine(); + + Container contentPane = getContentPane(); + if(readOnly) + { + contentPane.add(builder.getPanel()); + } + else + { + JButton okButton = new JButton("OK"); + ActionListener okListener = new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + if(_proxy.isEditable()) + { + String type = null; + if(_typeCombo.getSelectedItem() != QUERY_OBJECT) + { + type = _typeCombo.getSelectedItem().toString(); + } + + if(root.addObject(_proxy.getText(), type)) + { + setVisible(false); + } + } + else + { + setVisible(false); + } + } + }; + okButton.addActionListener(okListener); + getRootPane().setDefaultButton(okButton); + + JButton cancelButton = new JButton("Cancel"); + ActionListener cancelListener = new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + setVisible(false); + } + }; + cancelButton.addActionListener(cancelListener); + + JComponent buttonBar = + ButtonBarFactory.buildOKCancelBar(okButton, cancelButton); + buttonBar.setBorder(Borders.DIALOG_BORDER); + + contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS)); + contentPane.add(builder.getPanel()); + contentPane.add(buttonBar); + } + + pack(); + setResizable(false); + } + + void showDialog() + { + assert _proxy.isEditable(); + + _proxy.setText(""); + _typeCombo.setSelectedItem(QUERY_OBJECT); + setLocationRelativeTo(_mainFrame); + setVisible(true); + } + + void showDialog(String proxy, String type) + { + assert !_proxy.isEditable(); + + _proxy.setText(proxy); + _type.setText(type); + + setLocationRelativeTo(_mainFrame); + setVisible(true); + } + + private JTextArea _proxy = new JTextArea(3, 40); + private JTextField _type = new JTextField(40); + private JComboBox _typeCombo = new JComboBox(new Object[]{QUERY_OBJECT}); + private JFrame _mainFrame; + + static private final Object QUERY_OBJECT = new Object() + { + public String toString() + { + return "Query object to retrieve type"; + } + }; +} |