All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.ow2.jonas.autostart.frame.GettingJonasFieldFromDiskFrame Maven / Gradle / Ivy

The newest version!
/**
 * JOnAS: Java(TM) Open Application Server
 * Copyright (C) 2010 Bull S.A.S.
 * Contact: [email protected]
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
 * USA
 *
 * --------------------------------------------------------------------------
 * $Id: GettingJonasFieldFromDiskFrame.java 20819 2011-02-02 16:00:53Z benoitf $
 * --------------------------------------------------------------------------
 */
package org.ow2.jonas.autostart.frame;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Insets;
import java.awt.event.ActionListener;
import java.awt.event.KeyListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSeparator;
import javax.swing.JTextField;
import javax.swing.SpringLayout;
import javax.swing.border.EmptyBorder;

import org.ow2.jonas.autostart.utility.SpringUtilities;

/**
 * This class creates main panel with gettingJonasFieldFromDiskFrame fields.
 * @author skabore
 */
public class GettingJonasFieldFromDiskFrame extends JPanel {

    /**
     * The content panel.
     */
    private JPanel contentPanel;

    /**
     * The icon label.
     */
    private JLabel iconLabel;

    /**
     * The separator.
     */
    private JSeparator separator;

    /**
     * The text label.
     */
    private JLabel textLabel;

    /**
     * The JOnAS root label.
     */
    private JLabel jonasRootLabel;

    /**
     * The JOnAS base label.
     */
    private JLabel jonasBaseLabel;

    /**
     * The label.
     */
    private JLabel label;

    /**
     * The error label.
     */
    private JLabel errorLabel;

    /**
     * The title panel.
     */
    private JPanel titlePanel;

    /**
     * The JOnAS root textfield.
     */
    private JTextField jonasRoot;

    /**
     * The JOnAS base textfield.
     */
    private JTextField jonasBase;

    /**
     * The use JOnAS base checkBox.
     */
    private JCheckBox useJonasBase;

    /**
     * The JOnAS root browse button.
     */
    private JButton jbBrowseJonasRoot;

    /**
     * The JOnAS base browse button.
     */
    private JButton jbBrowseJonasBase;

    /**
     * Setps to create a starter jar file.
     */
    private int steps;

    /**
     * The constructor.
     * @param steps, the required steps to create a starter
     */
    public GettingJonasFieldFromDiskFrame(final int steps) {

        super();
        this.steps = steps;

        contentPanel = getContentPanel();
        contentPanel.setBorder(new EmptyBorder(new Insets(10, 10, 10, 10)));

        ImageIcon icon = getImageIcon();

        titlePanel = new javax.swing.JPanel();
        textLabel = new javax.swing.JLabel();
        iconLabel = new javax.swing.JLabel();
        separator = new javax.swing.JSeparator();

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

        titlePanel.setLayout(new java.awt.BorderLayout());
        titlePanel.setBackground(Color.gray);

        textLabel.setBackground(Color.gray);
        textLabel.setFont(new Font("MS Sans Serif", Font.BOLD, 14));
        textLabel.setText("Local JOnAS server folder");
        textLabel.setBorder(new EmptyBorder(new Insets(10, 10, 10, 10)));
        textLabel.setOpaque(true);

        iconLabel.setBackground(Color.gray);
        if (icon != null) {
            iconLabel.setIcon(icon);
        }

        titlePanel.add(textLabel, BorderLayout.CENTER);
        titlePanel.add(new JLabel("5/" + this.steps + "  "), BorderLayout.EAST);
        titlePanel.add(separator, BorderLayout.SOUTH);

        add(titlePanel, BorderLayout.NORTH);
        JPanel secondaryPanel = new JPanel();
        secondaryPanel.add(contentPanel, BorderLayout.NORTH);
        add(secondaryPanel, BorderLayout.WEST);
    }

    /**
     * @return contentPanel1 the content panel.
     */
    private JPanel getContentPanel() {

        JPanel contentPanel1 = new JPanel(new BorderLayout());

        useJonasBase = new JCheckBox("Use private configuration folder" + " (JOnAS Base)");
        jonasRoot = new JTextField(52);
        jonasBase = new JTextField();
        jbBrowseJonasRoot = new JButton("Browse...");
        jbBrowseJonasBase = new JButton("Browse...");
        jonasRootLabel = new JLabel("JOnAS Root ");
        jonasBaseLabel = new JLabel("JOnAS Base ");
        label = new JLabel("Set the fields by choosing a valid" + " JOnAS Root folder");
        errorLabel = new JLabel();
        errorLabel.setForeground(Color.red);

        contentPanel1.add(createFromDiskPanel(), BorderLayout.CENTER);
        contentPanel1.add(errorLabel, BorderLayout.SOUTH);
        return contentPanel1;
    }

    /**
     * Create panel based on the FromDisk option.
     * @return contentPanel
     */
    private JPanel createFromDiskPanel() {
        JPanel content = new JPanel();
        JPanel applicationPanel = new JPanel(new SpringLayout());
        JPanel jonasRootPanel = new JPanel(new SpringLayout());
        JPanel jonasRootFieldPanel = new JPanel(new SpringLayout());
        JPanel jonasBasePanel = new JPanel(new SpringLayout());
        JPanel jonasBaseFieldPanel = new JPanel(new SpringLayout());

        jonasRootLabel.setLabelFor(jonasRoot);
        jonasRootFieldPanel.add(jonasRoot);
        jonasRootFieldPanel.add(jbBrowseJonasRoot);
        SpringUtilities.makeCompactGrid(jonasRootFieldPanel, 1, 2, 6, 0, 6, 0);
        jonasRootPanel.add(jonasRootLabel);
        jonasRootPanel.add(jonasRootFieldPanel);
        SpringUtilities.makeCompactGrid(jonasRootPanel, 1, 2, 6, 6, 6, 6);

        jonasBaseLabel.setLabelFor(jonasBase);
        jonasBaseFieldPanel.add(jonasBase);
        jonasBaseFieldPanel.add(jbBrowseJonasBase);
        SpringUtilities.makeCompactGrid(jonasBaseFieldPanel, 1, 2, 6, 0, 6, 0);
        jonasBasePanel.add(jonasBaseLabel);
        jonasBasePanel.add(jonasBaseFieldPanel);
        SpringUtilities.makeCompactGrid(jonasBasePanel, 1, 2, 6, 6, 6, 6);
        showJonasBaseField(false);

        applicationPanel.add(label);
        applicationPanel.add(new JLabel(""));
        applicationPanel.add(jonasRootPanel);
        applicationPanel.add(useJonasBase);
        applicationPanel.add(jonasBasePanel);
        SpringUtilities.makeCompactGrid(applicationPanel, 5, 1, 6, 6, 6, 6);

        content.add(applicationPanel);
        return content;
    }

    /**
     * @return imageIcon. the image icon.
     */
    private ImageIcon getImageIcon() {
        return null;
    }

    /**
     * @return jbBrowseJonasBase
     */
    public JButton getJbBrowseJonasBase() {
        return jbBrowseJonasBase;
    }

    /**
     * @return jbBrowseJonasRoot
     */
    public JButton getJbBrowseJonasRoot() {
        return jbBrowseJonasRoot;
    }

    /**
     * @return jonasBase
     */
    public JTextField getJonasBase() {
        return jonasBase;
    }

    /**
     * @return jonasBaseLabel
     */
    public JLabel getJonasBaseLabel() {
        return jonasBaseLabel;
    }

    /**
     * @return jonasRoot
     */
    public JTextField getJonasRoot() {
        return jonasRoot;
    }

    /**
     * @return jonasRootLabel
     */
    public JLabel getJonasRootLabel() {
        return jonasRootLabel;
    }

    /**
     * @return label
     */
    public JLabel getLabel() {
        return label;
    }

    /**
     * @return errorLabel
     */
    public JLabel getErrorLabel() {
        return errorLabel;
    }

    /**
     * @return useJonasBase
     */
    public JCheckBox getUseJonasBase() {
        return useJonasBase;
    }

    /**
     * Show or hide the JOnAS Base fields.
     * @param enable if true JOnAS Base fields are showed, hided otherwise.
     */
    public void showJonasBaseField(final boolean enable) {
        jonasBase.setVisible(enable);
        jbBrowseJonasBase.setVisible(enable);
        jonasBaseLabel.setVisible(enable);
    }

    /**
     * Add actionListener to the buttons.
     * @param listener the listener.
     */
    public void addActionListener(final ActionListener listener) {
        useJonasBase.addActionListener(listener);
        jbBrowseJonasRoot.addActionListener(listener);
        jbBrowseJonasBase.addActionListener(listener);
    }

    /**
     * Add keyListener to the textfileds.
     * @param keyListener the keyListener.
     */
    @Override
    public void addKeyListener(final KeyListener keyListener) {
        jonasRoot.addKeyListener(keyListener);
        jonasBase.addKeyListener(keyListener);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy