/**
*#########################################################################
*
* A component of the GAI application, part of the Greenstone digital
* library suite from the New Zealand Digital Library Project at the
* University of Waikato, New Zealand.
*
*
*
* Author: Chi-Yu Huang, Greenstone Digital Library, University of Waikato
* Date: 03.2005
*
*
*
* Copyright (C) 1999 New Zealand Digital Library Project
*
*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
*
*
* This program 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 General Public License for more details.
*
*
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*########################################################################
*/
/* This program is intended to confirm the initial user's setting about
* the Tomcat server and MySQL server they would like to run GSDL3 with
*/
package org.greenstone.admin;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.lang.Object;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
import org.greenstone.util.Configuration;
import org.greenstone.admin.gui.ParsingProgress;
import org.greenstone.admin.gui.SetServerPane;
import org.greenstone.admin.GAI;
/** The initial setting pane is to request the user to input the preferred
* Tomcat and Mysql server,they would like to run GSDL3 with
* @author Chi-Yu Huang, Greenstone Digital Library, University of Waikato
* @version
*/
public class GAIFirstSettingFrame
extends JFrame
implements ActionListener {
public static Dimension screen_size = Toolkit.getDefaultToolkit().getScreenSize();
/* This pane is to inform the user to set up the tomcat and mysql server
* if they are the first time run GAI, if the user doen't want to set up
* the installation will be based on the gsdl3 default value*/
protected JScrollPane setting_message_pane = null;
protected JPanel first_setting_pane = null;
protected JPanel main_pane = null;
protected JTextArea first_setting_message = null;
protected JButton fset_yes_button = null;
protected JButton fset_no_button = null;
protected JPanel button_pane = null;
protected JPanel control_pane = null;
public boolean setting_confirm = false;
/** The various sizes for the screen layout*/
static private Dimension MIN_SIZE = new Dimension( 90, 90);
static private Dimension LIST_SIZE = new Dimension(200, 450);
static private Dimension DIALOG_SIZE = new Dimension (400,300);
static private Dimension TABLE_SIZE = new Dimension(500,200);
static final Dimension SIZE = new Dimension(400,75);
//Constructor
public GAIFirstSettingFrame() {
super();
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(DIALOG_SIZE);
this.setTitle("First time setting Tomcat/MYSQL Server");
// create all the control button panes
button_pane = new JPanel();
//First time running button
FirstSetYesButtonListener fsybl = new FirstSetYesButtonListener();
FirstSetNoButtonListener fsnbl = new FirstSetNoButtonListener();
// ImagesIcon for the buttons
ImageIcon setYesButtonIcon = new ImageIcon(GAI.images_path + "refresh.gif");
ImageIcon setNoButtonIcon = new ImageIcon(GAI.images_path + "exit.gif");
fset_yes_button = new JButton("Yes", setYesButtonIcon);
fset_yes_button.addActionListener(fsybl);
fset_yes_button.setMnemonic(KeyEvent.VK_S);
fset_yes_button.setToolTipText("Click this button to Set up the Tomcat/MYSQL server");
fset_yes_button.setEnabled(false);
fset_no_button = new JButton("No", setNoButtonIcon);
fset_no_button.addActionListener(fsnbl);
fset_no_button.setEnabled(false);
fset_no_button.setMnemonic(KeyEvent.VK_N);
fset_no_button.setToolTipText("Click this button to skip the First time Tomcat/MYSQL server setting");
//First time running setting buttons
fsybl = null;
fsnbl = null;
display();
}
/** Any implementation of ActionListener requires this method so that when an
**action is performed the appropriate effect can occur.*/
public void actionPerformed(ActionEvent event) {
}
/** This method is callsed to actually layout the components.*/
public void display() {
//KeyListenerImpl key_listener = new KeyListenerImpl();
//MouseListenerImpl mouse_listener = new MouseListenerImpl();
//this.addKeyListener(key_listener);
first_setting_message = new JTextArea();
first_setting_message.setEditable(false);
first_setting_message.setLineWrap(true);
first_setting_message.setText("If you are about the first time to run GAI, you can set up " +
"your own TOMCAT/MYSQL server. Otherwise, your GSDL3 " +
"will be installed with the TOMCAT/MYSQL setting come " +
"with the package. You may change the setting later on.");
first_setting_message.setFont(new Font("Arial", Font.BOLD, 14));
setting_message_pane = new JScrollPane(first_setting_message);
// The pane to store setting_message_pane
first_setting_pane = new JPanel();
first_setting_pane.setBorder(BorderFactory.createEmptyBorder(5,5,20,5));
first_setting_pane.setLayout (new BorderLayout());
first_setting_pane.add(setting_message_pane, BorderLayout.CENTER);
// Button Control Layout
fset_yes_button.setEnabled(true);
fset_no_button.setEnabled(true);
button_pane.setLayout (new GridLayout(1,2));
button_pane.add(fset_yes_button);
button_pane.add(fset_no_button);
control_pane = new JPanel();
control_pane.setBorder(BorderFactory.createLoweredBevelBorder());
control_pane.setLayout(new BorderLayout());
control_pane.add(new JLabel("Do you want to set up your own running Tomcat/Mysql Servers?"), BorderLayout.CENTER);
control_pane.add(button_pane, BorderLayout.SOUTH);
main_pane = (JPanel) getContentPane();
//main_pane.setBorder(BorderFactory.createLoweredBevelBorder());
main_pane.setLayout (new BorderLayout());
main_pane.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
main_pane.add(first_setting_pane,BorderLayout.CENTER);
main_pane.add(control_pane, BorderLayout.SOUTH);
main_pane.setBackground(Configuration.getColor("coloring.workspace_selection_background"));
main_pane.setForeground(Configuration.getColor("coloring.workspace_selection_foreground"));
// Center and display
Dimension screen_size = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((screen_size.width - SIZE.width) / 2,
(screen_size.height - SIZE.height) / 2);
setVisible(true);
}
public boolean checkSettingConfirm(){
return setting_confirm;
}
public void destroy() {
}
/** This class serves as the listener for actions on the build button.*/
private class FirstSetYesButtonListener
implements ActionListener {
/** If you want to give up the change you have made to the build properties
* file before you save the change, This button is to reload the log file
* whenever user want to */
public void actionPerformed(ActionEvent event) {
SetServerPane set_server_pane = new SetServerPane ();
set_server_pane.display();
//disable the GAIFirstSettingFrame
setVisible (false);
setting_confirm = true;
}
}
private class FirstSetNoButtonListener
implements ActionListener {
// Exit the Adminstration tool
public void actionPerformed(ActionEvent event) {
setting_confirm = false;
setVisible (false);
//return setting_confirm;
if (!setting_confirm) {
GAIManager gai = new GAIManager(screen_size);
}
}
}
}