alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

What this is

This file is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Other links

The source code

/*
 *                 Sun Public License Notice
 *
 * The contents of this file are subject to the Sun Public License
 * Version 1.0 (the "License"). You may not use this file except in
 * compliance with the License. A copy of the License is available at
 * http://www.sun.com/
 *
 * The Original Code is NetBeans. The Initial Developer of the Original
 * Code is Sun Microsystems, Inc. Portions Copyright 1997-2004 Sun
 * Microsystems, Inc. All Rights Reserved.
 */

package org.netbeans.modules.tomcat5.ide;

import java.io.File;
import java.io.FileNotFoundException;

import javax.swing.JFileChooser;

import org.openide.DialogDisplayer;
import org.openide.NotifyDescriptor;
import org.openide.util.NbBundle;
import org.openide.ErrorManager;

import org.netbeans.modules.tomcat5.config.Host;
import org.netbeans.modules.tomcat5.config.Server;
import org.netbeans.modules.tomcat5.config.Service;

import org.netbeans.modules.tomcat5.util.TomcatInstallUtil;
import org.netbeans.modules.tomcat5.TomcatFactory;
import org.netbeans.modules.tomcat5.TomcatManager;

import org.w3c.dom.Document;
import org.xml.sax.*;

import org.openide.xml.XMLUtil;
import org.openide.xml.EntityCatalog;

import java.io.FileInputStream;
import java.io.InputStream;
import java.io.BufferedInputStream;
import java.io.IOException;

import java.util.Properties;

import org.netbeans.modules.j2ee.deployment.plugins.api.InstanceProperties;

/**
 *
 * @author Martin Grebac
 */
public class TomcatInstall extends javax.swing.JPanel {
    
    public static final String OK_ENABLED = "ok_enabled";                       //NOI18N
    
    private File homeDir;
    private File baseDir;

    private String homeDirName;
    private String baseDirName;

    private String displayName;
    private String url;
    private String username;
    private String password = "";
    
    private final static String DEFAULT_PORT = TomcatManager.DEFAULT_SERVER_PORT.toString();
    private final static String DEFAULT_ADMIN_PORT = TomcatManager.DEFAULT_ADMIN_PORT.toString();
    private final static String DEFAULT_HOST = "localhost";                     //NOI18N

    private String port = DEFAULT_PORT;
    private String adminport = DEFAULT_ADMIN_PORT;
    private String host = DEFAULT_HOST;
    
    private String managerContext = "/manager";                                 //NOI18N
    
    private boolean okEnabled = false;    
    
    /** Creates new form JPanel */
    public TomcatInstall() {

        okEnabled = false;
        initComponents();
        int size = jLabelHomeDir.getFont().getSize();
        setPreferredSize(new java.awt.Dimension(24*size+290,21*size+120));
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    private void initComponents() {//GEN-BEGIN:initComponents
        java.awt.GridBagConstraints gridBagConstraints;

        jLabelHomeDir = new javax.swing.JLabel();
        jLabelBaseDir = new javax.swing.JLabel();
        jTextFieldHomeDir = new javax.swing.JTextField();
        jTextFieldBaseDir = new javax.swing.JTextField();
        jButtonBaseBrowse = new javax.swing.JButton();
        jButtonHomeBrowse = new javax.swing.JButton();
        jCheckBoxMonitor = new javax.swing.JCheckBox();
        jTextAreaBelow = new javax.swing.JTextArea();
        jTextAreaAbove = new javax.swing.JTextArea();
        jCheckBoxShared = new javax.swing.JCheckBox();
        jLabelHint = new javax.swing.JLabel();
        jTextAreaMonitor = new javax.swing.JTextArea();
        jTextFieldUsername = new javax.swing.JTextField();
        jTextFieldPassword = new javax.swing.JPasswordField();
        jLabelUsername = new javax.swing.JLabel();
        jLabelPassword = new javax.swing.JLabel();
        jTextAreaDisplayName = new javax.swing.JTextArea();
        jLabelDisplayName = new javax.swing.JLabel();
        jTextFieldDisplayName = new javax.swing.JTextField();

        setLayout(new java.awt.GridBagLayout());

        getAccessibleContext().setAccessibleName(NbBundle.getMessage(TomcatInstall.class, "A11Y_NAME_panel"));
        getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(TomcatInstall.class, "A11Y_DESC_panel"));
        jLabelHomeDir.setDisplayedMnemonic(NbBundle.getMessage(TomcatInstall.class, "LBL_homeDir_Mnem").charAt(0));
        jLabelHomeDir.setFont(new java.awt.Font("Dialog", 0, 12));
        jLabelHomeDir.setLabelFor(jTextFieldHomeDir);
        jLabelHomeDir.setText(NbBundle.getMessage(TomcatInstall.class, "LBL_home_dir"));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0);
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        add(jLabelHomeDir, gridBagConstraints);
        jLabelHomeDir.getAccessibleContext().setAccessibleName(NbBundle.getMessage(TomcatInstall.class, "A11Y_NAME_labelHomeDir"));
        jLabelHomeDir.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(TomcatInstall.class, "A11Y_DESC_labelHomeDir"));

        jLabelBaseDir.setDisplayedMnemonic(NbBundle.getMessage(TomcatInstall.class, "LBL_baseDir_Mnem").charAt(0));
        jLabelBaseDir.setFont(new java.awt.Font("Dialog", 0, 12));
        jLabelBaseDir.setLabelFor(jTextFieldBaseDir);
        jLabelBaseDir.setText(NbBundle.getMessage(TomcatInstall.class, "LBL_base_dir"));
        jLabelBaseDir.setEnabled(false);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.insets = new java.awt.Insets(0, 30, 0, 0);
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        add(jLabelBaseDir, gridBagConstraints);
        jLabelBaseDir.getAccessibleContext().setAccessibleName(NbBundle.getMessage(TomcatInstall.class, "A11Y_NAME_labelBaseDir"));
        jLabelBaseDir.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(TomcatInstall.class, "A11Y_DESC_labelBaseDir"));

        jTextFieldHomeDir.setColumns(20);
        jTextFieldHomeDir.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusGained(java.awt.event.FocusEvent evt) {
                jTextFieldHomeDirFocusGained(evt);
            }
            public void focusLost(java.awt.event.FocusEvent evt) {
                jTextFieldHomeDirFocusLost(evt);
            }
        });

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(6, 6, 0, 0);
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.weightx = 1.0;
        add(jTextFieldHomeDir, gridBagConstraints);
        jTextFieldHomeDir.getAccessibleContext().setAccessibleName(NbBundle.getMessage(TomcatInstall.class, "A11Y_NAME_homeDir"));
        jTextFieldHomeDir.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(TomcatInstall.class, "A11Y_DESC_homeDir"));

        jTextFieldBaseDir.setEditable(false);
        jTextFieldBaseDir.setEnabled(false);
        jTextFieldBaseDir.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusGained(java.awt.event.FocusEvent evt) {
                jTextFieldBaseDirFocusGained(evt);
            }
            public void focusLost(java.awt.event.FocusEvent evt) {
                jTextFieldBaseDirFocusLost(evt);
            }
        });

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 0);
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.weightx = 1.0;
        add(jTextFieldBaseDir, gridBagConstraints);
        jTextFieldBaseDir.getAccessibleContext().setAccessibleName(NbBundle.getMessage(TomcatInstall.class, "A11Y_NAME_baseDir"));
        jTextFieldBaseDir.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(TomcatInstall.class, "A11Y_DESC_baseDir"));

        jButtonBaseBrowse.setFont(new java.awt.Font("Dialog", 0, 12));
        jButtonBaseBrowse.setMnemonic(NbBundle.getMessage(TomcatInstall.class, "LBL_browseBase_Mnem").charAt(0));
        jButtonBaseBrowse.setText(NbBundle.getMessage(TomcatInstall.class, "LBL_file_chooser_base"));
        jButtonBaseBrowse.setLabel(NbBundle.getMessage(TomcatInstall.class, "LBL_file_chooser_base"));
        jButtonBaseBrowse.setEnabled(false);
        jButtonBaseBrowse.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonBaseBrowseActionPerformed(evt);
            }
        });

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 11);
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        add(jButtonBaseBrowse, gridBagConstraints);
        jButtonBaseBrowse.getAccessibleContext().setAccessibleName(NbBundle.getMessage(TomcatInstall.class, "A11Y_NAME_ButtonBaseBrowse"));
        jButtonBaseBrowse.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(TomcatInstall.class, "A11Y_DESC_ButtonBaseBrowse"));

        jButtonHomeBrowse.setFont(new java.awt.Font("Dialog", 0, 12));
        jButtonHomeBrowse.setMnemonic(NbBundle.getMessage(TomcatInstall.class, "LBL_browseHome_Mnem").charAt(0));
        jButtonHomeBrowse.setText(NbBundle.getMessage(TomcatInstall.class, "LBL_file_chooser_home"));
        jButtonHomeBrowse.setLabel(NbBundle.getMessage(TomcatInstall.class, "LBL_file_chooser_home"));
        jButtonHomeBrowse.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonHomeBrowseActionPerformed(evt);
            }
        });

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.insets = new java.awt.Insets(6, 6, 0, 11);
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        add(jButtonHomeBrowse, gridBagConstraints);
        jButtonHomeBrowse.getAccessibleContext().setAccessibleName(NbBundle.getMessage(TomcatInstall.class, "A11Y_NAME_ButtonHomeBrowse"));
        jButtonHomeBrowse.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(TomcatInstall.class, "A11Y_DESC_ButtonHomeBrowse"));

        jCheckBoxMonitor.setFont(new java.awt.Font("Dialog", 0, 12));
        jCheckBoxMonitor.setMnemonic(NbBundle.getMessage(TomcatInstall.class, "LBL_Monitor_Mnem").charAt(0));
        jCheckBoxMonitor.setSelected(true);
        jCheckBoxMonitor.setText(NbBundle.getMessage(TomcatInstall.class, "LBL_Monitor"));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 10;
        gridBagConstraints.gridwidth = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(23, 12, 0, 0);
        add(jCheckBoxMonitor, gridBagConstraints);
        jCheckBoxMonitor.getAccessibleContext().setAccessibleName(NbBundle.getMessage(TomcatInstall.class, "A11Y_NAME_monitor"));
        jCheckBoxMonitor.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(TomcatInstall.class, "A11Y_DESC_monitor"));

        jTextAreaBelow.setFont(new java.awt.Font("Dialog", 0, 12));
        jTextAreaBelow.setBackground(jLabelHomeDir.getBackground());
        jTextAreaBelow.setEditable(false);
        jTextAreaBelow.setLineWrap(true);
        jTextAreaBelow.setText(NbBundle.getMessage(TomcatInstall.class, "MSG_TextBelow"));
        jTextAreaBelow.setWrapStyleWord(true);
        jTextAreaBelow.setFocusable(false);
        jTextAreaBelow.setSelectionColor(new java.awt.Color(204, 204, 204));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 11;
        gridBagConstraints.gridwidth = 3;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.insets = new java.awt.Insets(0, 30, 6, 12);
        add(jTextAreaBelow, gridBagConstraints);
        jTextAreaBelow.getAccessibleContext().setAccessibleName(NbBundle.getMessage(TomcatInstall.class, "A11Y_NAME_textAreaBelow"));
        jTextAreaBelow.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(TomcatInstall.class, "A11Y_DESC_textAreaBelow"));

        jTextAreaAbove.setFont(new java.awt.Font("Dialog", 0, 12));
        jTextAreaAbove.setBackground(jLabelHomeDir.getBackground());
        jTextAreaAbove.setEditable(false);
        jTextAreaAbove.setLineWrap(true);
        jTextAreaAbove.setText(NbBundle.getMessage(TomcatInstall.class, "MSG_TextAbove"));
        jTextAreaAbove.setWrapStyleWord(true);
        jTextAreaAbove.setDisabledTextColor(new java.awt.Color(255, 153, 153));
        jTextAreaAbove.setFocusable(false);
        jTextAreaAbove.setSelectionColor(new java.awt.Color(204, 204, 204));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.gridwidth = 3;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.insets = new java.awt.Insets(12, 12, 0, 12);
        add(jTextAreaAbove, gridBagConstraints);
        jTextAreaAbove.getAccessibleContext().setAccessibleName(NbBundle.getMessage(TomcatInstall.class, "A11Y_NAME_textAreaAbove"));
        jTextAreaAbove.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(TomcatInstall.class, "A11Y_DESC_textAreaAbove"));

        jCheckBoxShared.setFont(new java.awt.Font("Dialog", 0, 12));
        jCheckBoxShared.setMnemonic(NbBundle.getMessage(TomcatInstall.class, "LBL_SharedInstall_Mnem").charAt(0));
        jCheckBoxShared.setText(NbBundle.getMessage(TomcatInstall.class, "LBL_SharedInstall"));
        jCheckBoxShared.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBoxSharedActionPerformed(evt);
            }
        });

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.gridwidth = 2;
        gridBagConstraints.insets = new java.awt.Insets(0, 12, 0, 0);
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        add(jCheckBoxShared, gridBagConstraints);
        jCheckBoxShared.getAccessibleContext().setAccessibleName(NbBundle.getMessage(TomcatInstall.class, "A11Y_NAME_shared"));
        jCheckBoxShared.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(TomcatInstall.class, "A11Y_DESC_shared"));

        jLabelHint.setFont(new java.awt.Font("Dialog", 0, 12));
        jLabelHint.setForeground(new java.awt.Color(89, 79, 191));
        jLabelHint.setText(NbBundle.getMessage(TomcatInstall.class, "MSG_SpecifyHomeDir"));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 12;
        gridBagConstraints.gridwidth = 3;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.ipady = 17;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTH;
        gridBagConstraints.weighty = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(0, 12, 0, 12);
        add(jLabelHint, gridBagConstraints);
        jLabelHint.getAccessibleContext().setAccessibleName(NbBundle.getMessage(TomcatInstall.class, "A11Y_NAME_SpecifyHomeDir"));
        jLabelHint.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(TomcatInstall.class, "A11Y_DESC_SpecifyHomeDir"));

        jTextAreaMonitor.setFont(new java.awt.Font("Dialog", 0, 12));
        jTextAreaMonitor.setBackground(jLabelHomeDir.getBackground());
        jTextAreaMonitor.setEditable(false);
        jTextAreaMonitor.setLineWrap(true);
        jTextAreaMonitor.setText(NbBundle.getMessage(TomcatInstall.class, "MSG_TextMonitor"));
        jTextAreaMonitor.setWrapStyleWord(true);
        jTextAreaMonitor.setFocusable(false);
        jTextAreaMonitor.setSelectionColor(new java.awt.Color(204, 204, 204));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 6;
        gridBagConstraints.gridwidth = 3;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.insets = new java.awt.Insets(12, 12, 0, 12);
        add(jTextAreaMonitor, gridBagConstraints);
        jTextAreaMonitor.getAccessibleContext().setAccessibleName(NbBundle.getMessage(TomcatInstall.class, "A11Y_NAME_textAreaMiddle"));
        jTextAreaMonitor.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(TomcatInstall.class, "A11Y_DESC_textAreaMiddle"));

        jTextFieldUsername.setColumns(20);
        jTextFieldUsername.addCaretListener(new javax.swing.event.CaretListener() {
            public void caretUpdate(javax.swing.event.CaretEvent evt) {
                jTextFieldUsernameCaretUpdate(evt);
            }
        });

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 8;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.weightx = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(6, 6, 0, 0);
        add(jTextFieldUsername, gridBagConstraints);
        jTextFieldUsername.getAccessibleContext().setAccessibleName(NbBundle.getMessage(TomcatInstall.class, "A11Y_NAME_username"));
        jTextFieldUsername.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(TomcatInstall.class, "A11Y_DESC_username"));

        jTextFieldPassword.setColumns(20);
        jTextFieldPassword.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jTextFieldPasswordFocusLost(evt);
            }
        });

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 9;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.weightx = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(6, 6, 0, 0);
        add(jTextFieldPassword, gridBagConstraints);
        jTextFieldPassword.getAccessibleContext().setAccessibleName(NbBundle.getMessage(TomcatInstall.class, "A11Y_NAME_password"));
        jTextFieldPassword.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(TomcatInstall.class, "A11Y_DESC_password"));

        jLabelUsername.setDisplayedMnemonic(NbBundle.getMessage(TomcatInstall.class, "LBL_Username_Mnem").charAt(0));
        jLabelUsername.setFont(new java.awt.Font("Dialog", 0, 12));
        jLabelUsername.setLabelFor(jTextFieldUsername);
        jLabelUsername.setText(NbBundle.getMessage(TomcatInstall.class, "LBL_Username"));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 8;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0);
        add(jLabelUsername, gridBagConstraints);
        jLabelUsername.getAccessibleContext().setAccessibleName(NbBundle.getMessage(TomcatInstall.class, "A11Y_NAME_labelUsername"));
        jLabelUsername.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(TomcatInstall.class, "A11Y_DESC_labelUsername"));

        jLabelPassword.setDisplayedMnemonic(NbBundle.getMessage(TomcatInstall.class, "LBL_Password_Mnem").charAt(0));
        jLabelPassword.setFont(new java.awt.Font("Dialog", 0, 12));
        jLabelPassword.setLabelFor(jTextFieldPassword);
        jLabelPassword.setText(NbBundle.getMessage(TomcatInstall.class, "LBL_Password"));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 9;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0);
        add(jLabelPassword, gridBagConstraints);
        jLabelPassword.getAccessibleContext().setAccessibleName(NbBundle.getMessage(TomcatInstall.class, "A11Y_NAME_labelPassword"));
        jLabelPassword.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(TomcatInstall.class, "A11Y_DESC_labelPassword"));

        jTextAreaDisplayName.setFont(new java.awt.Font("Dialog", 0, 12));
        jTextAreaDisplayName.setBackground(jLabelDisplayName.getBackground());
        jTextAreaDisplayName.setEditable(false);
        jTextAreaDisplayName.setLineWrap(true);
        jTextAreaDisplayName.setText(NbBundle.getMessage (TomcatInstall.class, "MSG_DisplayName"));
        jTextAreaDisplayName.setWrapStyleWord(true);
        jTextAreaDisplayName.setFocusable(false);
        jTextAreaDisplayName.setSelectionColor(new java.awt.Color(204, 204, 204));
        jTextAreaDisplayName.setSelectionEnd(11);
        jTextAreaDisplayName.setSelectionStart(11);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 4;
        gridBagConstraints.gridwidth = 3;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.insets = new java.awt.Insets(12, 12, 0, 12);
        add(jTextAreaDisplayName, gridBagConstraints);
        jTextAreaDisplayName.getAccessibleContext().setAccessibleName(NbBundle.getMessage (TomcatInstall.class, "A11Y_NAME_MSG_DisplayName"));
        jTextAreaDisplayName.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage (TomcatInstall.class, "A11Y_DESC_MSG_DisplayName"));

        jLabelDisplayName.setDisplayedMnemonic(NbBundle.getMessage (TomcatInstall.class, "LBL_DisplayName_Mnem").charAt(0));
        jLabelDisplayName.setFont(new java.awt.Font("Dialog", 0, 12));
        jLabelDisplayName.setLabelFor(jTextFieldDisplayName);
        jLabelDisplayName.setText(NbBundle.getMessage (TomcatInstall.class, "LBL_DisplayName"));
        jLabelDisplayName.setMaximumSize(new java.awt.Dimension(90, 15));
        jLabelDisplayName.setMinimumSize(new java.awt.Dimension(90, 15));
        jLabelDisplayName.setPreferredSize(new java.awt.Dimension(90, 15));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 5;
        gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0);
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        add(jLabelDisplayName, gridBagConstraints);
        jLabelDisplayName.getAccessibleContext().setAccessibleName(NbBundle.getMessage (TomcatInstall.class, "A11Y_NAME_DisplayName"));
        jLabelDisplayName.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage (TomcatInstall.class, "A11Y_DESC_DisplayName"));

        jTextFieldDisplayName.addCaretListener(new javax.swing.event.CaretListener() {
            public void caretUpdate(javax.swing.event.CaretEvent evt) {
                jTextFieldDisplayNameCaretUpdate(evt);
            }
        });

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 5;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(6, 6, 0, 0);
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.weightx = 1.0;
        add(jTextFieldDisplayName, gridBagConstraints);
        jTextFieldDisplayName.getAccessibleContext().setAccessibleName(NbBundle.getMessage (TomcatInstall.class, "A11Y_NAME_DisplayName"));
        jTextFieldDisplayName.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage (TomcatInstall.class, "A11Y_DESC_DisplayName"));

    }//GEN-END:initComponents

    private void jTextFieldUsernameCaretUpdate(javax.swing.event.CaretEvent evt) {//GEN-FIRST:event_jTextFieldUsernameCaretUpdate
        String uname = jTextFieldUsername.getText();
        if (uname.equals(this.username) ) {
            return;
        }
        username = uname;
        updateHint();
    }//GEN-LAST:event_jTextFieldUsernameCaretUpdate

    private void jTextFieldDisplayNameCaretUpdate(javax.swing.event.CaretEvent evt) {//GEN-FIRST:event_jTextFieldDisplayNameCaretUpdate
        String aDisplayName = jTextFieldDisplayName.getText();
        if (aDisplayName.equals(displayName) ) {
            return;
        }
        displayName = jTextFieldDisplayName.getText();        
        updateHint();
    }//GEN-LAST:event_jTextFieldDisplayNameCaretUpdate

    private void jTextFieldPasswordFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jTextFieldPasswordFocusLost
        String pwd = jTextFieldPassword.getText();
        if (pwd.equals(this.password) ) {
            return;
        }
        password = pwd;
        updateHint();
    }//GEN-LAST:event_jTextFieldPasswordFocusLost

    private void jTextFieldBaseDirFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jTextFieldBaseDirFocusLost
        String path = jTextFieldBaseDir.getText();
        if ( baseDirName.equals( path ) )
            return;
        baseDirName = path;
        
        if ( path.length() > 0 )
            baseDir = getValidDir( baseDirName, jTextFieldBaseDir);
        else
            baseDir = null;
        if ( baseDir != null )
            if ( ! validateInput( false ) ) {
                jTextFieldBaseDir.setText( "" );  // NOI18N
                baseDir = null;
                jTextFieldBaseDir.requestFocus();
            }
        updateUrl();
        updateHint();
    }//GEN-LAST:event_jTextFieldBaseDirFocusLost

    private void jTextFieldBaseDirFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jTextFieldBaseDirFocusGained
        baseDirName = jTextFieldBaseDir.getText();
        updateUrl();
        updateHint();
    }//GEN-LAST:event_jTextFieldBaseDirFocusGained

    private void jTextFieldHomeDirFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jTextFieldHomeDirFocusGained
        homeDirName = jTextFieldHomeDir.getText();
        updateUrl();
        updateHint();
    }//GEN-LAST:event_jTextFieldHomeDirFocusGained

    private void jTextFieldHomeDirFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jTextFieldHomeDirFocusLost
        String path = jTextFieldHomeDir.getText();
        if ( homeDirName.equals( path ) )
            return;
        homeDirName = path;
        
        if ( path.length() > 0 )
            homeDir = getValidDir( homeDirName, jTextFieldHomeDir);
        else
            homeDir = null;
        if ( homeDir != null )
            if ( ! validateInput( true ) ) {
                jTextFieldHomeDir.setText( "" );  // NOI18N
                homeDir = null;
                jTextFieldHomeDir.requestFocus();
            }
        updateUrl();
        updateHint();
    }//GEN-LAST:event_jTextFieldHomeDirFocusLost

    private void jButtonBaseBrowseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonBaseBrowseActionPerformed
        JFileChooser chooser = new JFileChooser();
        chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        if ( baseDir != null )
            chooser.setSelectedFile( baseDir );
        boolean repeatchooser = true;
        while ( repeatchooser ) {
            repeatchooser = false;
            if ( chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION ) {
                baseDir = chooser.getSelectedFile();
                if ( validateInput( false ) )
                    jTextFieldBaseDir.setText( baseDir.getAbsolutePath() );
                else {
                    jTextFieldBaseDir.setText( "" );  // NOI18N
                    baseDir = null;
                    repeatchooser = true;
                }
            }
        }
        updateUrl();
        updateHint();
    }//GEN-LAST:event_jButtonBaseBrowseActionPerformed

    private void jButtonHomeBrowseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonHomeBrowseActionPerformed
        JFileChooser chooser = new JFileChooser();
        chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        if ( homeDir != null )
            chooser.setSelectedFile( homeDir );
        
        boolean repeatchooser = true;
        while ( repeatchooser ) {
            repeatchooser = false;
            if ( chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION ) {
                homeDir = chooser.getSelectedFile();
                if ( validateInput( true ) ) {
                    jTextFieldHomeDir.setText(homeDir.getAbsolutePath());
                } else {
                    jTextFieldHomeDir.setText( "" );  // NOI18N
                    homeDir = null;
                    repeatchooser = true;                    
                }
            }
        }
        updateUrl();
        updateHint();
    }//GEN-LAST:event_jButtonHomeBrowseActionPerformed

    private void jCheckBoxSharedActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxSharedActionPerformed
        boolean cbSelected;
        cbSelected = jCheckBoxShared.isSelected();
        jLabelBaseDir.setEnabled(cbSelected);
        jTextFieldBaseDir.setEnabled(cbSelected);
        jTextFieldBaseDir.setEditable(cbSelected);
        jButtonBaseBrowse.setEnabled(cbSelected);
        updateUrl();
        updateHint();
    }//GEN-LAST:event_jCheckBoxSharedActionPerformed

    public String getPassword() {
        return password;
    }    
    
    public java.util.Properties getProperties() {
        Properties p = new Properties();
        p.put(TomcatManager.SERVER_PORT, port);                                  //NOI18N
        p.put(TomcatManager.ADMIN_PORT, adminport);                              //NOI18N
        p.put(MonitorSupport.MONITOR_ENABLED_PROPERTY_NAME, new Boolean(jCheckBoxMonitor.isSelected()).toString ());    //NOI18N
        p.put(TomcatManager.HOST, "localhost"); //NOI18N
        return p;
    }

    /**
     * Return deployment manager URL (e.g. "tomcat:home=jakarta-tomcat-5.0.28:base=jakarta-tomcat-5.0.28_base").
     * 
     * @return deployment manager URL (e.g. "tomcat:home=jakarta-tomcat-5.0.28:base=jakarta-tomcat-5.0.28_base").
     */    
    public String getUrl() {
        return url;
    }
    
    public String getUserName() {
        return username;
    }

    /**
     * Return Tomcat instance display name.
     * 
     * @return Tomcat instance display name.
     */    
    public String getDisplayName() {        
        return displayName;
    }    
    
    // returns false if input have to be revoked
    public boolean validateInput(boolean homeEntered) {

        if ( homeEntered ) {
            if (TomcatInstallUtil.noServerXML(homeDir, baseDir) || TomcatInstallUtil.noBootStrapJar(homeDir)) {
                NotifyDescriptor.Confirmation nd =
                    new NotifyDescriptor.Confirmation(
                    NbBundle.getBundle (TomcatInstall.class).getString("MSG_no_server_xml"),
                    NotifyDescriptor.OK_CANCEL_OPTION );
                if (DialogDisplayer.getDefault().notify( nd ).equals( NotifyDescriptor.OK_OPTION )) {
                    jCheckBoxShared.setSelected(true);
                    jTextFieldBaseDir.setEnabled(true);
                    jTextFieldBaseDir.setEditable(true);
                    jButtonBaseBrowse.setEnabled(true);
                    jLabelBaseDir.setEnabled(true);
                    jTextFieldBaseDir.requestFocusInWindow();
                    jLabelHint.setText(NbBundle.getMessage(TomcatInstall.class, "MSG_SpecifyBaseDir"));
                    return updateFields();
                } else {
                    return false;
                }
            }
        }
/*        if (TomcatInstallUtil.sameAsOtherTomcatInstallation(homeDir, baseDir)) {
            DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message 
                (NbBundle.getBundle (TomcatInstall.class).getString("MSG_installation_exists"),
                 NotifyDescriptor.ERROR_MESSAGE));
            return true;
        }
  */      
        return updateFields();
    }
    
    private boolean updateFields() {
        InputStream inputStream = null;
        try {            
            if (jCheckBoxShared.isSelected()) {
                try {
                    inputStream = new BufferedInputStream(new FileInputStream(
                            new File(baseDir + "/conf/server.xml")));
                } catch (FileNotFoundException fnfe) {
                    // CATALINA_BASE dir is probably empty
                }
            }
            if (inputStream == null) {
                inputStream = new BufferedInputStream(new FileInputStream(
                        new File(homeDir + "/conf/server.xml")));
            }
            Document doc = XMLUtil.parse(new InputSource(inputStream), false, false, null, EntityCatalog.getDefault());
            Server server = Server.createGraph(doc);
            host = TomcatInstallUtil.getHost(server);

            String p = TomcatInstallUtil.getPort(server);
            try {
                Integer i = Integer.valueOf(p);
            } catch (Exception e) {
                DialogDisplayer.getDefault().notify(
                    new NotifyDescriptor.Message(NbBundle.getMessage(TomcatInstall.class, "MSG_ServerPortError", p), NotifyDescriptor.ERROR_MESSAGE));
                return false;
            }
            port = p;            
            String a = TomcatInstallUtil.getAdminPort(server);
            if (a == null) {
                // admin port is not set, use the default one
                adminport = DEFAULT_ADMIN_PORT;
            } else {            
                try {
                    Integer i = Integer.valueOf(a);
                    adminport = a;
                } catch (Exception e) {
                    DialogDisplayer.getDefault().notify(
                        new NotifyDescriptor.Message(
                            NbBundle.getMessage(TomcatInstall.class, "MSG_AdminPortError", a), NotifyDescriptor.ERROR_MESSAGE));
                    return false;
                }            
            }
            return true;
        } catch (Exception e) {
            DialogDisplayer.getDefault().notify(
                new NotifyDescriptor.Message(
                    NbBundle.getMessage(TomcatInstall.class, "MSG_ServerXmlError"), NotifyDescriptor.ERROR_MESSAGE));
            return false;
        } finally {
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch(IOException ioe) {
                    // ignore it
                }
            }
        }
    }
    
    private File getValidDir(String pathname, javax.swing.JTextField field) {
        if ( pathname != null/* && pathname.length() > 0*/ ) {
            try {
                File dir = new File( pathname );
                if ( dir != null && dir.isDirectory() ) {
                    if (dir.exists()) {
                        return dir;
                    }
                }
            } catch ( Exception e ) {
            }
        }
        
        DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message 
            (NbBundle.getBundle (TomcatInstall.class).getString("MSG_no_valid_directory"),
             NotifyDescriptor.ERROR_MESSAGE));
        field.requestFocus();
        return null;
    }

    private void updateHint() {        
        
        boolean cbSelected;
        boolean okEnabledNew = false;
        
        cbSelected = jCheckBoxShared.isSelected();
        baseDirName = jTextFieldBaseDir.getText();
        
        if (!isHomeDirValid()) {
            jLabelHint.setText(NbBundle.getMessage(TomcatInstall.class, "MSG_SpecifyHomeDir"));
        } else if (cbSelected && !isBaseDirValid()) {
            jLabelHint.setText(NbBundle.getMessage(TomcatInstall.class, "MSG_SpecifyBaseDir"));
        } else if (!isDisplayNameValid()) {
            jLabelHint.setText(NbBundle.getMessage(TomcatInstall.class, "MSG_SpecifyDisplayName"));
        } else if (!isUsernameValid()) {
            jLabelHint.setText(NbBundle.getMessage(TomcatInstall.class, "MSG_SpecifyUsername"));
        } else {
            jLabelHint.setText(null);
            okEnabledNew = true;
        }
        if (okEnabled != okEnabledNew) {
            firePropertyChange(OK_ENABLED, okEnabled, okEnabledNew);
            okEnabled = okEnabledNew;
        }
    }
    
    private boolean isHomeDirValid() {
        if (homeDir != null) {// && (homeDirName.length() > 0)) {
            return true;
        }
        return false;
    }

    private boolean isBaseDirValid() {
        if (baseDir != null) {// && (baseDirName.length() > 0)) {
            return true;
        }
        return false;
    }

    private boolean isDisplayNameValid() {
        if ((displayName != null) && (displayName.length() > 0)) {
            return true;
        }
        return false;
    }    
    
    private boolean isUsernameValid() {
        if ((username != null) && (username.length() > 0)) {
            return true;
        }
        return false;
    }
    
    private void updateUrl() {
        url = TomcatFactory.tomcatUriPrefix + "home=" + homeDir;                // NOI18N
        
        if (baseDir != null) {
            url += ":base=" + baseDir;                                          // NOI18N
        }
        if (TomcatFactory.getEM ().isLoggable (ErrorManager.INFORMATIONAL)) {
            TomcatFactory.getEM ().log ("TInstall.updateUrl: " + url);          // NOI18N
        }
    }

    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButtonBaseBrowse;
    private javax.swing.JButton jButtonHomeBrowse;
    private javax.swing.JCheckBox jCheckBoxMonitor;
    private javax.swing.JCheckBox jCheckBoxShared;
    private javax.swing.JLabel jLabelBaseDir;
    private javax.swing.JLabel jLabelDisplayName;
    private javax.swing.JLabel jLabelHint;
    private javax.swing.JLabel jLabelHomeDir;
    private javax.swing.JLabel jLabelPassword;
    private javax.swing.JLabel jLabelUsername;
    private javax.swing.JTextArea jTextAreaAbove;
    private javax.swing.JTextArea jTextAreaBelow;
    private javax.swing.JTextArea jTextAreaDisplayName;
    private javax.swing.JTextArea jTextAreaMonitor;
    private javax.swing.JTextField jTextFieldBaseDir;
    private javax.swing.JTextField jTextFieldDisplayName;
    private javax.swing.JTextField jTextFieldHomeDir;
    private javax.swing.JPasswordField jTextFieldPassword;
    private javax.swing.JTextField jTextFieldUsername;
    // End of variables declaration//GEN-END:variables
    
}
... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.