001 /*
002 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003 *
004 * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005 *
006 * The contents of this file are subject to the terms of either the GNU
007 * General Public License Version 2 only ("GPL") or the Common
008 * Development and Distribution License("CDDL") (collectively, the
009 * "License"). You may not use this file except in compliance with the
010 * License. You can obtain a copy of the License at
011 * http://www.netbeans.org/cddl-gplv2.html
012 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013 * specific language governing permissions and limitations under the
014 * License. When distributing the software, include this License Header
015 * Notice in each file and include the License file at
016 * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017 * particular file as subject to the "Classpath" exception as provided
018 * by Sun in the GPL Version 2 section of the License file that
019 * accompanied this code. If applicable, add the following below the
020 * License Header, with the fields enclosed by brackets [] replaced by
021 * your own identifying information:
022 * "Portions Copyrighted [year] [name of copyright owner]"
023 *
024 * Contributor(s):
025 *
026 * The Original Software is NetBeans. The Initial Developer of the Original
027 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
028 * Microsystems, Inc. All Rights Reserved.
029 *
030 * If you wish your version of this file to be governed by only the CDDL
031 * or only the GPL Version 2, indicate your decision by adding
032 * "[Contributor] elects to include this software in this distribution
033 * under the [CDDL or GPL Version 2] license." If you do not indicate a
034 * single choice of license, a recipient has the option to distribute
035 * your version of this file under either the CDDL, the GPL Version 2 or
036 * to extend the choice of license to its licensees as provided above.
037 * However, if you add GPL Version 2 code and therefore, elected the GPL
038 * Version 2 license, then the option applies only if the new code is
039 * made subject to such option by the copyright holder.
040 */
041 package org.netbeans.modules.j2ee.deployment.devmodules.api;
042
043 import java.awt.Dialog;
044 import java.awt.EventQueue;
045 import org.openide.DialogDescriptor;
046 import org.openide.DialogDisplayer;
047 import org.openide.util.HelpCtx;
048 import org.openide.util.NbBundle;
049 import javax.swing.JButton;
050 import org.netbeans.modules.j2ee.deployment.impl.ServerInstance;
051 import org.netbeans.modules.j2ee.deployment.impl.ServerRegistry;
052 import org.netbeans.modules.j2ee.deployment.impl.ui.ServersCustomizer;
053 import org.netbeans.modules.j2ee.deployment.impl.ui.wizard.AddServerInstanceWizard;
054
055 /**
056 * ServerManager class provides access to the Server Manager dialog.
057 *
058 * @author sherold
059 * @since 1.7
060 */
061 public final class ServerManager {
062
063 /** Do not allow to create instances of this class */
064 private ServerManager() {
065 }
066
067 /**
068 * Display the modal Server Manager dialog with the specified server instance
069 * preselected. This method should be called form the AWT event dispatch
070 * thread.
071 *
072 * @param serverInstanceID server instance which should be preselected, if
073 * null the first server instance will be preselected.
074 *
075 * @throws IllegalThreadStateException if the method is not called from the
076 * event dispatch thread.
077 */
078 public static void showCustomizer(String serverInstanceID) {
079 checkDispatchThread();
080 ServerInstance instance = ServerRegistry.getInstance()
081 .getServerInstance(serverInstanceID);
082 ServersCustomizer customizer = new ServersCustomizer(instance);
083 JButton close = new JButton(NbBundle.getMessage(
084 ServerManager.class, "CTL_Close"));
085 close.getAccessibleContext().setAccessibleDescription(
086 NbBundle.getMessage(ServerManager.class, "AD_Close"));
087 DialogDescriptor descriptor = new DialogDescriptor(customizer,
088 NbBundle.getMessage(ServerManager.class,
089 "TXT_ServerManager"), true,
090 new Object[] { close }, close,
091 DialogDescriptor.DEFAULT_ALIGN, new HelpCtx(
092 ServerManager.class), null);
093 Dialog dlg = DialogDisplayer.getDefault().createDialog(
094 descriptor);
095 try {
096 dlg.setVisible(true);
097 } finally {
098 dlg.dispose();
099 }
100 }
101
102 /**
103 * Displays the add server instance wizarad and returns the ID of the added
104 * server instance.
105 *
106 * @return server instance ID of the new server instance, or <code>null</code>
107 * if the wizard was cancelled.
108 *
109 * @throws IllegalThreadStateException if the method is not called from the
110 * event dispatch thread.
111 *
112 * @since 1.28
113 */
114 public static String showAddServerInstanceWizard() {
115 checkDispatchThread();
116 return AddServerInstanceWizard.showAddServerInstanceWizard();
117 }
118
119 private static void checkDispatchThread() {
120 if (!EventQueue.isDispatchThread()) {
121 throw new IllegalThreadStateException(
122 "Can only be called from the event dispatch thread."); // NOI18N
123 }
124 }
125 }
|