/*
This file is part of the software framework JStatCom,
a library for building applications for data based analysis.
Copyright (C) 2000-2005 Markus Kraetzig
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 (at your option) 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
*/
package com.jstatcom.io;
import java.awt.Frame;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.BevelBorder;
import org.apache.log4j.Logger;
import com.jstatcom.component.StdMessages;
import com.jstatcom.ts.TSDate;
/**
* A dialog for gathering user information if an EXCEL file is read in.
*
* @author Markus Kraetzig
*/
public class TSExcelDialog extends JDialog {
private static final Logger log = Logger.getLogger(TSExcelDialog.class);
private TSDate tsDate = TSDate.valueOf("1960 Q1");
private JTextArea jTextArea = null;
private Frame frame = null;
private String[] sheetNames = new String[0];
private int selectedSheet = 0;
IvjEventHandler ivjEventHandler = new IvjEventHandler();
private JComboBox ivjJComboBox1 = null;
private JPanel ivjJDialogContentPane = null;
private JLabel ivjJLabel1 = null;
private JButton ivjOK = null;
public boolean canceled = false;
private JButton ivjCancel = null;
private JPanel ivjJPanel1 = null;
private JPanel ivjJPanel2 = null;
private JLabel ivjJLabel3 = null;
private JTextField ivjStartDate = null;
class IvjEventHandler implements java.awt.event.ActionListener {
public void actionPerformed(java.awt.event.ActionEvent e) {
if (e.getSource() == TSExcelDialog.this.getOK())
connEtoC1();
if (e.getSource() == TSExcelDialog.this.getJComboBox1())
connEtoC2();
if (e.getSource() == TSExcelDialog.this.getCancel())
connEtoC3();
};
};
/**
* Creates a TSExcelDialog.
*
* @param owner
* parent frame
* @param modal
* boolean
*/
public TSExcelDialog(java.awt.Frame owner, boolean modal) {
super(owner, modal);
initialize();
frame = owner;
}
/**
* Comment
*/
private void cancel_ActionEvents() {
setVisible(false);
setCanceled(true);
return;
}
/**
* connEtoC1: (OK.action. --> TableChooser.oK_ActionEvents()V)
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private void connEtoC1() {
try {
// user code begin {1}
// user code end
this.oK_ActionEvents();
// user code begin {2}
// user code end
} catch (Throwable ivjExc) {
// user code begin {3}
// user code end
handleException(ivjExc);
}
}
/**
* connEtoC2: (JComboBox1.action. -->
* TableChooser.jComboBox1_ActionEvents()V)
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private void connEtoC2() {
try {
// user code begin {1}
// user code end
this.jComboBox1_ActionEvents();
// user code begin {2}
// user code end
} catch (Throwable ivjExc) {
// user code begin {3}
// user code end
handleException(ivjExc);
}
}
/**
* connEtoC3: (Cancel.action. --> TableChooser.cancel_ActionEvents()V)
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private void connEtoC3() {
try {
// user code begin {1}
// user code end
this.cancel_ActionEvents();
// user code begin {2}
// user code end
} catch (Throwable ivjExc) {
// user code begin {3}
// user code end
handleException(ivjExc);
}
}
/**
* Return the Cancel property value.
*
* @return javax.swing.JButton
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private javax.swing.JButton getCancel() {
if (ivjCancel == null) {
try {
ivjCancel = new javax.swing.JButton();
ivjCancel.setName("Cancel");
ivjCancel.setPreferredSize(new java.awt.Dimension(85, 25));
ivjCancel.setText("Cancel");
ivjCancel.setMaximumSize(new java.awt.Dimension(100, 25));
ivjCancel.setMinimumSize(new java.awt.Dimension(85, 25));
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjCancel;
}
/**
* Return the JComboBox1 property value.
*
* @return javax.swing.JComboBox
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private javax.swing.JComboBox getJComboBox1() {
if (ivjJComboBox1 == null) {
try {
ivjJComboBox1 = new javax.swing.JComboBox();
ivjJComboBox1.setName("JComboBox1");
ivjJComboBox1.setBounds(20, 20, 150, 23);
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjJComboBox1;
}
/**
* Return the JDialogContentPane property value.
*
* @return javax.swing.JPanel
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private javax.swing.JPanel getJDialogContentPane() {
if (ivjJDialogContentPane == null) {
try {
ivjJDialogContentPane = new javax.swing.JPanel();
ivjJDialogContentPane.setName("JDialogContentPane");
ivjJDialogContentPane.setBorder(new BevelBorder(
BevelBorder.LOWERED));
ivjJDialogContentPane.setLayout(new java.awt.BorderLayout());
getJDialogContentPane().add(getJPanel1(), "Center");
getJDialogContentPane().add(getJPanel2(), "South");
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjJDialogContentPane;
}
/**
* Return the JLabel1 property value.
*
* @return javax.swing.JLabel
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private javax.swing.JLabel getJLabel1() {
if (ivjJLabel1 == null) {
try {
ivjJLabel1 = new javax.swing.JLabel();
ivjJLabel1.setName("JLabel1");
ivjJLabel1.setPreferredSize(new java.awt.Dimension(146, 21));
ivjJLabel1.setText("Select the Excel sheet with data");
ivjJLabel1.setBounds(180, 22, 205, 21);
ivjJLabel1.setMinimumSize(new java.awt.Dimension(146, 21));
ivjJLabel1.setMaximumSize(new java.awt.Dimension(146, 21));
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjJLabel1;
}
/**
* Return the JLabel3 property value.
*
* @return javax.swing.JLabel
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private javax.swing.JLabel getJLabel3() {
if (ivjJLabel3 == null) {
try {
ivjJLabel3 = new javax.swing.JLabel();
ivjJLabel3.setName("JLabel3");
ivjJLabel3.setText("Date of first observation");
ivjJLabel3.setBounds(180, 63, 210, 17);
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjJLabel3;
}
/**
* Return the JPanel1 property value.
*
* @return javax.swing.JPanel
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private javax.swing.JPanel getJPanel1() {
if (ivjJPanel1 == null) {
try {
ivjJPanel1 = new javax.swing.JPanel();
ivjJPanel1.setName("JPanel1");
ivjJPanel1.setBorder(new BevelBorder(BevelBorder.LOWERED));
ivjJPanel1.setLayout(null);
getJPanel1().add(getJLabel1(), getJLabel1().getName());
getJPanel1().add(getJComboBox1(), getJComboBox1().getName());
getJPanel1().add(getStartDate(), getStartDate().getName());
getJPanel1().add(getJLabel3(), getJLabel3().getName());
// user code end
ivjJPanel1.add(getJTextArea(), null);
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjJPanel1;
}
/**
* This method initializes jTextArea
*
* @return javax.swing.JTextArea
*/
private JTextArea getJTextArea() {
if (jTextArea == null) {
jTextArea = new JTextArea();
jTextArea.setBackground(getJDialogContentPane().getBackground());
jTextArea.setMargin(new java.awt.Insets(5, 5, 5, 5));
StringBuffer txt = new StringBuffer();
txt.append("quarterly: \"1960 Q1\"\n");
txt.append("monthly: \"1960 M10\"\n");
txt.append("annual: \"1960\"\n");
txt.append("semi-annual: \"1960 I\" or \"1960 II\"\n");
txt.append("daily (5 day week): \"11/25/2004 (5)\"\n");
txt.append("daily (7 day week): \"12/11/1982 (7)\"\n");
txt.append("undated: \"1\" \n");
txt.append("arbitrary spec: \"1960 30/265\"");
jTextArea.setText(txt.toString());
jTextArea.setEditable(false);
jTextArea
.setBorder(javax.swing.BorderFactory
.createTitledBorder(
javax.swing.BorderFactory
.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED),
"Examples",
javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
javax.swing.border.TitledBorder.DEFAULT_POSITION,
null, null));
jTextArea.setBounds(20, 90, 370, 175);
}
return jTextArea;
}
/**
* Return the JPanel2 property value.
*
* @return javax.swing.JPanel
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private javax.swing.JPanel getJPanel2() {
if (ivjJPanel2 == null) {
try {
ivjJPanel2 = new javax.swing.JPanel();
ivjJPanel2.setName("JPanel2");
ivjJPanel2.setPreferredSize(new java.awt.Dimension(0, 50));
ivjJPanel2.setLayout(getJPanel2FlowLayout());
ivjJPanel2.setMinimumSize(new java.awt.Dimension(0, 50));
getJPanel2().add(getOK(), getOK().getName());
getJPanel2().add(getCancel(), getCancel().getName());
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjJPanel2;
}
/**
* Return the JPanel2FlowLayout property value.
*
* @return java.awt.FlowLayout
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private java.awt.FlowLayout getJPanel2FlowLayout() {
java.awt.FlowLayout ivjJPanel2FlowLayout = null;
try {
/* Create part */
ivjJPanel2FlowLayout = new java.awt.FlowLayout();
ivjJPanel2FlowLayout.setVgap(10);
ivjJPanel2FlowLayout.setHgap(40);
} catch (Throwable ivjExc) {
handleException(ivjExc);
}
;
return ivjJPanel2FlowLayout;
}
/**
* Return the OK property value.
*
* @return javax.swing.JButton
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private javax.swing.JButton getOK() {
if (ivjOK == null) {
try {
ivjOK = new javax.swing.JButton();
ivjOK.setName("OK");
ivjOK.setPreferredSize(new java.awt.Dimension(85, 25));
ivjOK.setText("OK");
ivjOK.setMaximumSize(new java.awt.Dimension(100, 25));
ivjOK.setMinimumSize(new java.awt.Dimension(85, 25));
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjOK;
}
/**
* Gets the selected sheet, because there might be several sheets in an
* EXCEL file.
*
* @return int index for sheet, starts with 0
*/
public int getSelectedSheet() {
return selectedSheet;
}
/**
* Return the StartDate property value.
*
* @return javax.swing.JTextField
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private javax.swing.JTextField getStartDate() {
if (ivjStartDate == null) {
try {
ivjStartDate = new javax.swing.JTextField();
ivjStartDate.setName("StartDate");
ivjStartDate.setText("1960 Q1");
ivjStartDate.setBounds(20, 60, 150, 20);
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjStartDate;
}
/**
* Gets the selected start date.
*
* @return start date of sample
*/
public TSDate getTSDate() {
return tsDate;
}
/**
* Called whenever the part throws an exception.
*
* @param exception
* Exception
*/
private void handleException(Throwable exception) {
log.error("Unhandled Exception", exception);
}
/**
* Initializes connections
*
* @exception Exception
* The exception description.
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private void initConnections() throws Exception {
// user code begin {1}
// user code end
getOK().addActionListener(ivjEventHandler);
getJComboBox1().addActionListener(ivjEventHandler);
getCancel().addActionListener(ivjEventHandler);
}
/**
* Initialize the class.
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private void initialize() {
try {
// user code begin {1}
// user code end
this.setBounds(31, 0, 420, 368);
setName("TableChooser");
setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
setResizable(false);
setTitle("Specify Excel Dataset");
setContentPane(getJDialogContentPane());
initConnections();
} catch (Throwable ivjExc) {
handleException(ivjExc);
}
// user code begin {2}
getRootPane().setDefaultButton(getOK());
// user code end
}
/**
* Gets whether dialog was canceled.
*
* @return true if canceled
*/
public boolean isCanceled() {
return canceled;
}
/**
* Comment
*/
private void jComboBox1_ActionEvents() {
setSelectedSheet(getJComboBox1().getSelectedIndex());
return;
}
/**
* Comment
*/
private void oK_ActionEvents() {
String exp = getStartDate().getText();
try {
tsDate = TSDate.valueOf(exp);
} catch (Throwable ex) {
StdMessages.errorInput("Could not parse \"" + exp
+ "\" to a valid date.");
return;
}
setVisible(false);
setCanceled(false);
return;
}
/**
* Insert the method's description here. Creation date: (27.03.2002
* 16:43:18)
*
* @param newCanceled
* boolean
*/
private void setCanceled(boolean newCanceled) {
canceled = newCanceled;
}
/**
* Insert the method's description here. Creation date: (27.03.2002
* 15:23:16)
*
* @param newSelectedSheet
* int
*/
private void setSelectedSheet(int newSelectedSheet) {
selectedSheet = newSelectedSheet;
}
/**
* Sets the names of the available sheets contained in the selected EXCEL
* file.
*
* @param sheetNames
* sheet name array
*/
public void setSheets(String[] sheetNames) {
if (sheetNames == null)
sheetNames = new String[0];
this.sheetNames = sheetNames;
}
/**
* Overwrites setVisible.
*/
public void setVisible(boolean isVisible) {
if (isVisible) {
if (frame != null)
setLocationRelativeTo(frame);
selectedSheet = 0;
getJComboBox1().removeAllItems();
for (int i = 0; i < sheetNames.length; i++)
getJComboBox1().addItem(sheetNames[i]);
}
super.setVisible(isVisible);
}
} // @jve:decl-index=0:visual-constraint="10,10"
Ads help maintain this website.