/*
GNU Lesser General Public License
TableInputDialog
Copyright (C) 2000 Howard Kistler
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.hexidec.ekit.component;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import com.hexidec.util.Translatrix;
/** Class for providing a dialog that lets the user specify values for tag attributes
*/
public class TableInputDialog extends JDialog
{
private String inputRows = new String();
private String inputCols = new String();
private String inputBorder = new String();
private String inputSpace = new String();
private String inputPad = new String();
private JOptionPane jOptionPane;
public TableInputDialog(Frame parent, String title, boolean bModal)
{
super(parent, title, bModal);
final JTextField jtxfRows = new JTextField(3);
final JTextField jtxfCols = new JTextField(3);
final JTextField jtxfBorder = new JTextField(3);
final JTextField jtxfSpace = new JTextField(3);
final JTextField jtxfPad = new JTextField(3);
final Object[] buttonLabels = { Translatrix.getTranslationString("DialogAccept"), Translatrix.getTranslationString("DialogCancel") };
Object[] panelContents = {
Translatrix.getTranslationString("TableRows"), jtxfRows,
Translatrix.getTranslationString("TableColumns"), jtxfCols,
Translatrix.getTranslationString("TableBorder"), jtxfBorder,
Translatrix.getTranslationString("TableCellSpacing"), jtxfSpace,
Translatrix.getTranslationString("TableCellPadding"), jtxfPad
};
jOptionPane = new JOptionPane(panelContents, JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION, null, buttonLabels, buttonLabels[0]);
setContentPane(jOptionPane);
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we)
{
jOptionPane.setValue(new Integer(JOptionPane.CLOSED_OPTION));
}
});
jOptionPane.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent e)
{
String prop = e.getPropertyName();
if(isVisible()
&& (e.getSource() == jOptionPane)
&& (prop.equals(JOptionPane.VALUE_PROPERTY) || prop.equals(JOptionPane.INPUT_VALUE_PROPERTY)))
{
Object value = jOptionPane.getValue();
if(value == JOptionPane.UNINITIALIZED_VALUE)
{
return;
}
jOptionPane.setValue(JOptionPane.UNINITIALIZED_VALUE);
if(value.equals(buttonLabels[0]))
{
inputRows = jtxfRows.getText();
inputCols = jtxfCols.getText();
inputBorder = jtxfBorder.getText();
inputSpace = jtxfSpace.getText();
inputPad = jtxfPad.getText();
setVisible(false);
}
else
{
inputRows = "";
inputCols = "";
inputBorder = "";
inputSpace = "";
inputPad = "";
setVisible(false);
}
}
}
});
this.pack();
}
public int getRows()
{
try
{
return Integer.parseInt(inputRows);
}
catch(NumberFormatException nfe)
{
return -1;
}
}
public int getCols()
{
try
{
return Integer.parseInt(inputCols);
}
catch(NumberFormatException nfe)
{
return -1;
}
}
public int getBorder()
{
try
{
return Integer.parseInt(inputBorder);
}
catch(NumberFormatException nfe)
{
return -1;
}
}
public int getSpacing()
{
try
{
return Integer.parseInt(inputSpace);
}
catch(NumberFormatException nfe)
{
return -1;
}
}
public int getPadding()
{
try
{
return Integer.parseInt(inputPad);
}
catch(NumberFormatException nfe)
{
return -1;
}
}
}