Initial revision
[old-projects.git] / ekit / com / hexidec / ekit / component / TableInputDialog.java
diff --git a/ekit/com/hexidec/ekit/component/TableInputDialog.java b/ekit/com/hexidec/ekit/component/TableInputDialog.java
new file mode 100644 (file)
index 0000000..344f978
--- /dev/null
@@ -0,0 +1,172 @@
+/*
+GNU General Public License
+
+TableInputDialog
+Copyright (C) 2000-2003 Howard Kistler
+
+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., 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;
+               }
+       }
+}
+