usr/src/java/vpanels/app/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/AddServiceAction.java
author Stephen Talley <stephen.talley@oracle.com>
Thu, 23 Jun 2011 21:36:28 -0400
changeset 733 31e9ec33c7d2
parent 720 58815d7de6df
permissions -rw-r--r--
18604 Non-localized messages in vpanels
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
333
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
     1
/*
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
     2
 * CDDL HEADER START
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
     3
 *
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
     4
 * The contents of this file are subject to the terms of the
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
     5
 * Common Development and Distribution License (the "License").
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
     6
 * You may not use this file except in compliance with the License.
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
     7
 *
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
     8
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
     9
 * or http://www.opensolaris.org/os/licensing.
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    10
 * See the License for the specific language governing permissions
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    11
 * and limitations under the License.
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    12
 *
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    13
 * When distributing Covered Code, include this CDDL HEADER in each
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    14
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    15
 * If applicable, add the following below this CDDL HEADER, with the
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    16
 * fields enclosed by brackets "[]" replaced with your own identifying
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    17
 * information: Portions Copyright [yyyy] [name of copyright owner]
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    18
 *
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    19
 * CDDL HEADER END
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    20
 */
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    21
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    22
/*
733
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
    23
 * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
333
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    24
 */
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    25
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    26
package org.opensolaris.os.vp.panels.firewall.client.swing;
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    27
733
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
    28
import java.awt.*;
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
    29
import java.awt.event.*;
333
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    30
import java.util.*;
733
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
    31
import java.util.List;
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
    32
import javax.swing.*;
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
    33
import javax.swing.event.*;
333
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    34
import org.opensolaris.os.vp.panel.common.action.*;
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    35
import org.opensolaris.os.vp.panel.common.control.*;
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    36
import org.opensolaris.os.vp.panel.common.model.ManagedObject;
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    37
import org.opensolaris.os.vp.panel.swing.action.AddManagedObjectAction;
591
7c5752b99fd6 12473 panels should probably be run in a sandbox
Stephen Talley <stephen.talley@oracle.com>
parents: 355
diff changeset
    38
import org.opensolaris.os.vp.util.misc.finder.Finder;
7c5752b99fd6 12473 panels should probably be run in a sandbox
Stephen Talley <stephen.talley@oracle.com>
parents: 355
diff changeset
    39
import org.opensolaris.os.vp.util.swing.*;
333
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    40
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    41
@SuppressWarnings({"serial"})
733
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
    42
public class AddServiceAction extends AddManagedObjectAction<ManagedObject,
333
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    43
    ServiceManagedObject, ServiceManagedObject> {
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    44
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    45
    //
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    46
    // Static data
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    47
    //
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    48
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
    49
    private static final String BUTTON_TEXT = Finder.getString(
333
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    50
	"service.action.add.button");
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    51
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    52
    //
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    53
    // Instance data
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    54
    //
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    55
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    56
    private MainControl control;
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    57
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    58
    //
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    59
    // Constructors
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    60
    //
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    61
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    62
    public AddServiceAction(MainControl control) {
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
    63
	super(BUTTON_TEXT, null, control);
333
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    64
	this.control = control;
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    65
	setLoops(true);
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    66
    }
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    67
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    68
    //
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    69
    // StructuredAction methods
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    70
    //
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    71
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    72
    @Override
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    73
    public ServiceManagedObject invoke(ServiceManagedObject rtInput)
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    74
	throws ActionAbortedException, ActionFailedException {
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    75
	List<ManagedObject> svcList = new ArrayList<ManagedObject>(
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    76
	    control.getPanelDescriptor().getAllServices());
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    77
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    78
	setPresetInput(svcList);
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    79
	return super.invoke(rtInput);
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    80
    }
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    81
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    82
    @Override
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    83
    public ServiceManagedObject getRuntimeInput(
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    84
	List<ManagedObject> selection, ServiceManagedObject rtInput)
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    85
	throws ActionAbortedException {
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    86
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
    87
        Object response = getInput(selection);
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
    88
        if (response == null)
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
    89
            throw new ActionAbortedException();
333
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    90
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
    91
        return (ServiceManagedObject) response;
333
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    92
    }
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    93
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    94
    //
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    95
    // DefaultStructuredAction methods
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    96
    //
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    97
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    98
    @Override
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
    99
    public ServiceManagedObject workBusy(List<ManagedObject> selection,
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
   100
	ServiceManagedObject svc) throws ActionAbortedException,
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
   101
	ActionFailedException, ActionUnauthorizedException {
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
   102
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
   103
	FirewallPanelDescriptor descriptor = control.getPanelDescriptor();
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
   104
	descriptor.addChildren(svc);
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
   105
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
   106
	// Navigate to the new service
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
   107
	Navigable navigable = new SimpleNavigable(
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
   108
	    ServiceEditControl.ID, null,
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
   109
	    ServiceEditControl.PARAM_SVC, svc.getId());
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
   110
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
   111
	control.getNavigator().goToAsync(false, control, navigable);
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
   112
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
   113
	return svc;
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
   114
    }
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   115
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   116
    //
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   117
    // A custom inputDialog method as the static JOptionPane.showInputDialog()
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   118
    // treats input value as valid even when user selected the cancel option.
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   119
    //
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   120
    private Object getInput(List<ManagedObject> selection) {
733
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   121
	SettingsPanel panel = new SettingsPanel();
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   122
	panel.setBorder(GUIUtil.getEmptyBorder());
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   123
	panel.getHelpField().setText(
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   124
            Finder.getString("service.action.add.message"));
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   125
733
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   126
        SettingsButtonBar bar = panel.getButtonBar();
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   127
	final JButton okayButton = bar.getOkayButton();
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   128
733
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   129
        final JList list = new JList(selection.toArray());
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   130
        list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   131
        list.setVisibleRowCount(10);
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   132
        list.addListSelectionListener(
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   133
            new ListSelectionListener() {
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   134
                public void valueChanged(ListSelectionEvent e) {
733
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   135
		    okayButton.setEnabled(!list.isSelectionEmpty());
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   136
                }
733
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   137
	    });
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   138
733
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   139
        JScrollPane scroll = new JScrollPane(list);
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   140
	panel.setContent(scroll, false, false);
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   141
733
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   142
	Window pWin = SwingUtilities.getWindowAncestor(
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   143
	    getHasComponent().getComponent());
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   144
        final JDialog dialog = new JDialog(pWin,
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   145
	    Dialog.ModalityType.DOCUMENT_MODAL);
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   146
733
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   147
        okayButton.addActionListener(
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   148
	    new ActionListener() {
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   149
                public void actionPerformed(ActionEvent e) {
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   150
                    dialog.setVisible(false);
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   151
                }
733
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   152
	    });
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   153
733
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   154
        bar.getCancelButton().addActionListener(
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   155
	    new ActionListener() {
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   156
		public void actionPerformed(ActionEvent e) {
733
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   157
                    list.clearSelection();
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   158
		    dialog.setVisible(false);
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   159
		}
733
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   160
	    });
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   161
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   162
        // Allow double-clicking to add a service
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   163
        list.addMouseListener(
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   164
            new MouseAdapter() {
733
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   165
		@Override
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   166
		public void mouseClicked(MouseEvent e) {
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   167
		    if (e.getClickCount() >= 2) {
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   168
			dialog.setVisible(false);
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   169
		    }
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   170
		}
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   171
	    });
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   172
733
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   173
	Container cont = dialog.getContentPane();
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   174
	cont.setLayout(new BorderLayout());
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   175
	cont.add(panel, BorderLayout.CENTER);
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   176
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   177
        dialog.pack();
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   178
	dialog.setLocationRelativeTo(pWin);
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   179
        dialog.setVisible(true);
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   180
        dialog.dispose();
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   181
733
31e9ec33c7d2 18604 Non-localized messages in vpanels
Stephen Talley <stephen.talley@oracle.com>
parents: 720
diff changeset
   182
	return list.getSelectedValue();
355
230e8900c0e0 11144 firewall: "add" clarification
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents: 333
diff changeset
   183
    }
333
315651ff58c5 10317 Firewall panel rewhacked
Truong Nguyen <Truong.Q.Nguyen@Sun.COM>
parents:
diff changeset
   184
}