Import of Ekit 0.9h
[old-projects.git] / ekit / com / hexidec / ekit / component / TableInputDialog.java
CommitLineData
c2da4d40 1/*
6ce136da 2GNU Lesser General Public License
c2da4d40
JL
3
4TableInputDialog
6ce136da 5Copyright (C) 2000 Howard Kistler
c2da4d40 6
6ce136da
JL
7This library is free software; you can redistribute it and/or
8modify it under the terms of the GNU Lesser General Public
9License as published by the Free Software Foundation; either
10version 2.1 of the License, or (at your option) any later version.
c2da4d40 11
6ce136da 12This library is distributed in the hope that it will be useful,
c2da4d40 13but WITHOUT ANY WARRANTY; without even the implied warranty of
6ce136da
JL
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15Lesser General Public License for more details.
c2da4d40 16
6ce136da
JL
17You should have received a copy of the GNU Lesser General Public
18License along with this library; if not, write to the Free Software
19Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
c2da4d40
JL
20*/
21
22package com.hexidec.ekit.component;
23
24import java.awt.Frame;
25import java.awt.event.WindowAdapter;
26import java.awt.event.WindowEvent;
27import java.beans.PropertyChangeEvent;
28import java.beans.PropertyChangeListener;
29import javax.swing.JDialog;
30import javax.swing.JOptionPane;
31import javax.swing.JTextField;
32
33import com.hexidec.util.Translatrix;
34
35/** Class for providing a dialog that lets the user specify values for tag attributes
36 */
37public class TableInputDialog extends JDialog
38{
39 private String inputRows = new String();
40 private String inputCols = new String();
41 private String inputBorder = new String();
42 private String inputSpace = new String();
43 private String inputPad = new String();
44 private JOptionPane jOptionPane;
45
46 public TableInputDialog(Frame parent, String title, boolean bModal)
47 {
48 super(parent, title, bModal);
49 final JTextField jtxfRows = new JTextField(3);
50 final JTextField jtxfCols = new JTextField(3);
51 final JTextField jtxfBorder = new JTextField(3);
52 final JTextField jtxfSpace = new JTextField(3);
53 final JTextField jtxfPad = new JTextField(3);
54 final Object[] buttonLabels = { Translatrix.getTranslationString("DialogAccept"), Translatrix.getTranslationString("DialogCancel") };
55 Object[] panelContents = {
56 Translatrix.getTranslationString("TableRows"), jtxfRows,
57 Translatrix.getTranslationString("TableColumns"), jtxfCols,
58 Translatrix.getTranslationString("TableBorder"), jtxfBorder,
59 Translatrix.getTranslationString("TableCellSpacing"), jtxfSpace,
60 Translatrix.getTranslationString("TableCellPadding"), jtxfPad
61 };
62 jOptionPane = new JOptionPane(panelContents, JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION, null, buttonLabels, buttonLabels[0]);
63
64 setContentPane(jOptionPane);
65 setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
66
67 addWindowListener(new WindowAdapter() {
68 public void windowClosing(WindowEvent we)
69 {
70 jOptionPane.setValue(new Integer(JOptionPane.CLOSED_OPTION));
71 }
72 });
73
74 jOptionPane.addPropertyChangeListener(new PropertyChangeListener() {
75 public void propertyChange(PropertyChangeEvent e)
76 {
77 String prop = e.getPropertyName();
78 if(isVisible()
79 && (e.getSource() == jOptionPane)
80 && (prop.equals(JOptionPane.VALUE_PROPERTY) || prop.equals(JOptionPane.INPUT_VALUE_PROPERTY)))
81 {
82 Object value = jOptionPane.getValue();
83 if(value == JOptionPane.UNINITIALIZED_VALUE)
84 {
85 return;
86 }
87 jOptionPane.setValue(JOptionPane.UNINITIALIZED_VALUE);
88 if(value.equals(buttonLabels[0]))
89 {
90 inputRows = jtxfRows.getText();
91 inputCols = jtxfCols.getText();
92 inputBorder = jtxfBorder.getText();
93 inputSpace = jtxfSpace.getText();
94 inputPad = jtxfPad.getText();
95 setVisible(false);
96 }
97 else
98 {
99 inputRows = "";
100 inputCols = "";
101 inputBorder = "";
102 inputSpace = "";
103 inputPad = "";
104 setVisible(false);
105 }
106 }
107 }
108 });
109 this.pack();
110 }
111
112 public int getRows()
113 {
114 try
115 {
116 return Integer.parseInt(inputRows);
117 }
118 catch(NumberFormatException nfe)
119 {
120 return -1;
121 }
122 }
123
124 public int getCols()
125 {
126 try
127 {
128 return Integer.parseInt(inputCols);
129 }
130 catch(NumberFormatException nfe)
131 {
132 return -1;
133 }
134 }
135
136 public int getBorder()
137 {
138 try
139 {
140 return Integer.parseInt(inputBorder);
141 }
142 catch(NumberFormatException nfe)
143 {
144 return -1;
145 }
146 }
147
148 public int getSpacing()
149 {
150 try
151 {
152 return Integer.parseInt(inputSpace);
153 }
154 catch(NumberFormatException nfe)
155 {
156 return -1;
157 }
158 }
159
160 public int getPadding()
161 {
162 try
163 {
164 return Integer.parseInt(inputPad);
165 }
166 catch(NumberFormatException nfe)
167 {
168 return -1;
169 }
170 }
171}
172