--- a/usr/src/java/vpanels/app/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/AddServiceAction.java Thu Jun 16 17:24:56 2011 -0400
+++ b/usr/src/java/vpanels/app/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/AddServiceAction.java Thu Jun 23 21:36:28 2011 -0400
@@ -20,14 +20,15 @@
*/
/*
- * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
*/
package org.opensolaris.os.vp.panels.firewall.client.swing;
-import java.awt.Component;
+import java.awt.*;
import java.awt.event.*;
import java.util.*;
+import java.util.List;
import javax.swing.*;
import javax.swing.event.*;
import org.opensolaris.os.vp.panel.common.action.*;
@@ -36,11 +37,9 @@
import org.opensolaris.os.vp.panel.swing.action.AddManagedObjectAction;
import org.opensolaris.os.vp.util.misc.finder.Finder;
import org.opensolaris.os.vp.util.swing.*;
-import org.opensolaris.os.vp.util.swing.layout.*;
@SuppressWarnings({"serial"})
-public class AddServiceAction
- extends AddManagedObjectAction<ManagedObject,
+public class AddServiceAction extends AddManagedObjectAction<ManagedObject,
ServiceManagedObject, ServiceManagedObject> {
//
@@ -119,91 +118,67 @@
// treats input value as valid even when user selected the cancel option.
//
private Object getInput(List<ManagedObject> selection) {
- JLabel label = new JLabel(
+ SettingsPanel panel = new SettingsPanel();
+ panel.setBorder(GUIUtil.getEmptyBorder());
+ panel.getHelpField().setText(
Finder.getString("service.action.add.message"));
- final JList list = new JList(selection.toArray());
- JScrollPane scrollPane = new JScrollPane(list);
- final JButton okButton = new JButton("OK");
- final JButton cancelButton = new JButton("Cancel");
- okButton.setEnabled(false);
+ SettingsButtonBar bar = panel.getButtonBar();
+ final JButton okayButton = bar.getOkayButton();
+ final JList list = new JList(selection.toArray());
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setVisibleRowCount(10);
list.addListSelectionListener(
new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
- okButton.setEnabled(!list.isSelectionEmpty());
+ okayButton.setEnabled(!list.isSelectionEmpty());
}
- });
+ });
- int gap = GUIUtil.getHalfGap();
- ColumnLayoutConstraint c = new ColumnLayoutConstraint(
- HorizontalAnchor.FILL, gap);
- RowLayoutConstraint r = new RowLayoutConstraint(
- VerticalAnchor.CENTER, gap);
-
- JPanel formPanel = new JPanel();
- formPanel.setOpaque(false);
- Form form = new Form(formPanel, VerticalAnchor.TOP);
+ JScrollPane scroll = new JScrollPane(list);
+ panel.setContent(scroll, false, false);
- form.addRow(HorizontalAnchor.LEFT, c);
- form.add(label);
-
- form.addRow(HorizontalAnchor.LEFT, c);
- form.add(scrollPane);
+ Window pWin = SwingUtilities.getWindowAncestor(
+ getHasComponent().getComponent());
+ final JDialog dialog = new JDialog(pWin,
+ Dialog.ModalityType.DOCUMENT_MODAL);
- final JOptionPane pane = new JOptionPane(formPanel,
- JOptionPane.PLAIN_MESSAGE);
- Component pComponent = getHasComponent().getComponent();
- pane.setComponentOrientation(pComponent.getComponentOrientation());
- final JDialog dialog = pane.createDialog(pComponent,
- Finder.getString("service.action.add.title"));
-
- okButton.addActionListener(
- new ActionListener() {
+ okayButton.addActionListener(
+ new ActionListener() {
public void actionPerformed(ActionEvent e) {
- pane.setInputValue(list.getSelectedValue());
- pane.setValue(JOptionPane.OK_OPTION);
dialog.setVisible(false);
}
- });
+ });
- cancelButton.addActionListener(
- new ActionListener() {
+ bar.getCancelButton().addActionListener(
+ new ActionListener() {
public void actionPerformed(ActionEvent e) {
- pane.setValue(JOptionPane.CANCEL_OPTION);
+ list.clearSelection();
dialog.setVisible(false);
}
- });
- pane.setOptions(new Object[] {okButton, cancelButton});
+ });
- //
// Allow double-clicking to add a service
- //
list.addMouseListener(
new MouseAdapter() {
- @Override
- public void mouseClicked(MouseEvent e) {
- if (e.getClickCount() >= 2) {
- pane.setInputValue(list.getSelectedValue());
- pane.setValue(JOptionPane.OK_OPTION);
- dialog.setVisible(false);
- }
- }
- });
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ if (e.getClickCount() >= 2) {
+ dialog.setVisible(false);
+ }
+ }
+ });
+ Container cont = dialog.getContentPane();
+ cont.setLayout(new BorderLayout());
+ cont.add(panel, BorderLayout.CENTER);
+
+ dialog.pack();
+ dialog.setLocationRelativeTo(pWin);
dialog.setVisible(true);
dialog.dispose();
- Object response = pane.getInputValue();
- if (response == JOptionPane.UNINITIALIZED_VALUE)
- return null;
-
- Object option = pane.getValue();
- if (option == null || option.equals(JOptionPane.CANCEL_OPTION))
- return null;
-
- return response;
+ return list.getSelectedValue();
}
}
--- a/usr/src/java/vpanels/app/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/resources/Resources.properties Thu Jun 16 17:24:56 2011 -0400
+++ b/usr/src/java/vpanels/app/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/resources/Resources.properties Thu Jun 23 21:36:28 2011 -0400
@@ -107,7 +107,7 @@
service.objects.access.option.default.tooltip = default: {0}
service.action.add.button = Add service policy...
-service.action.add.message = Select the service that requires a custom policy:
+service.action.add.message = Select the service that requires a custom policy.
service.action.add.title = Add service
service.action.remove.button = Remove
service.action.remove.message = Select to remove service from configureable list