svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.app.document.table.app / org.gvsig.app.document.table.app.mainplugin / src / main / java / org / gvsig / app / project / documents / table / gui / CreateNewAttributePanel.java @ 43981
History | View | Annotate | Download (22.5 KB)
1 | 40558 | jjdelcerro | /**
|
---|---|---|---|
2 | * gvSIG. Desktop Geographic Information System.
|
||
3 | 40435 | jjdelcerro | *
|
4 | 40558 | jjdelcerro | * Copyright (C) 2007-2013 gvSIG Association.
|
5 | *
|
||
6 | 40435 | jjdelcerro | * This program is free software; you can redistribute it and/or
|
7 | * modify it under the terms of the GNU General Public License
|
||
8 | 40558 | jjdelcerro | * as published by the Free Software Foundation; either version 3
|
9 | 40435 | jjdelcerro | * of the License, or (at your option) any later version.
|
10 | 40558 | jjdelcerro | *
|
11 | 40435 | jjdelcerro | * This program is distributed in the hope that it will be useful,
|
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
14 | * GNU General Public License for more details.
|
||
15 | 40558 | jjdelcerro | *
|
16 | 40435 | jjdelcerro | * You should have received a copy of the GNU General Public License
|
17 | * along with this program; if not, write to the Free Software
|
||
18 | 40558 | jjdelcerro | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
19 | 40435 | jjdelcerro | * MA 02110-1301, USA.
|
20 | 40558 | jjdelcerro | *
|
21 | * For any additional information, do not hesitate to contact us
|
||
22 | * at info AT gvsig.com, or visit our website www.gvsig.com.
|
||
23 | 40435 | jjdelcerro | */
|
24 | package org.gvsig.app.project.documents.table.gui; |
||
25 | |||
26 | import java.awt.BorderLayout; |
||
27 | 43978 | omartinez | import java.awt.GridBagConstraints; |
28 | import java.awt.GridBagLayout; |
||
29 | 40435 | jjdelcerro | import java.awt.GridLayout; |
30 | import java.awt.LayoutManager; |
||
31 | 43978 | omartinez | import java.awt.event.ActionEvent; |
32 | 40435 | jjdelcerro | import java.awt.event.ActionListener; |
33 | import java.awt.event.KeyEvent; |
||
34 | import java.awt.event.KeyListener; |
||
35 | import java.text.ParseException; |
||
36 | 43978 | omartinez | import javax.swing.ButtonGroup; |
37 | import javax.swing.JButton; |
||
38 | 40435 | jjdelcerro | |
39 | import javax.swing.JComboBox; |
||
40 | import javax.swing.JLabel; |
||
41 | 40729 | jldominguez | import javax.swing.JOptionPane; |
42 | 40435 | jjdelcerro | import javax.swing.JPanel; |
43 | 43978 | omartinez | import javax.swing.JRadioButton; |
44 | 40435 | jjdelcerro | import javax.swing.JTextField; |
45 | |||
46 | import org.gvsig.andami.PluginServices; |
||
47 | import org.gvsig.andami.messages.NotificationManager; |
||
48 | import org.gvsig.andami.ui.mdiManager.IWindow; |
||
49 | import org.gvsig.andami.ui.mdiManager.WindowInfo; |
||
50 | 43981 | omartinez | import org.gvsig.app.ApplicationLocator; |
51 | import org.gvsig.app.ApplicationManager; |
||
52 | 40435 | jjdelcerro | import org.gvsig.fmap.dal.DataTypes; |
53 | import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor; |
||
54 | import org.gvsig.fmap.dal.feature.EditableFeatureType; |
||
55 | 43978 | omartinez | import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
56 | import org.gvsig.fmap.dal.feature.FeatureAttributeEmulator; |
||
57 | 40435 | jjdelcerro | import org.gvsig.gui.beans.AcceptCancelPanel; |
58 | 40729 | jldominguez | import org.gvsig.i18n.Messages; |
59 | 40435 | jjdelcerro | import org.gvsig.tools.ToolsLocator; |
60 | import org.gvsig.tools.dataTypes.DataTypesManager; |
||
61 | 43981 | omartinez | import org.gvsig.tools.i18n.I18nManager; |
62 | 40435 | jjdelcerro | |
63 | /**
|
||
64 | * To create new FeatureAttributeDescriptor from the interface.
|
||
65 | 42533 | dmartinezizquierdo | *
|
66 | 40435 | jjdelcerro | * @author Vicente Caballero Navarro
|
67 | 42533 | dmartinezizquierdo | *
|
68 | 40435 | jjdelcerro | */
|
69 | 43978 | omartinez | public class CreateNewAttributePanel extends JPanel implements IWindow, ActionListener { |
70 | 40435 | jjdelcerro | |
71 | /**
|
||
72 | 42533 | dmartinezizquierdo | *
|
73 | 40435 | jjdelcerro | */
|
74 | private static final long serialVersionUID = 6447641307779709964L; |
||
75 | private static final String DEFAULT_FIELD_LENGTH = "50"; |
||
76 | private JLabel jLblFieldName = null; |
||
77 | private JTextField jTxtFieldName = null; |
||
78 | private JLabel jLblFieldType = null; |
||
79 | private JComboBox jCboFieldType = null; |
||
80 | private JLabel jLblFieldLength = null; |
||
81 | private JTextField jTxtFieldLength = null; |
||
82 | private JLabel jLblFieldPrecision = null; |
||
83 | private JTextField jTxtFieldPrecision = null; |
||
84 | private JLabel jLblDefaultValue = null; |
||
85 | private JTextField jTxtDefaultValue = null; |
||
86 | 43978 | omartinez | private JLabel jLblExpression = null; |
87 | private JTextField jTxtExpression = null; |
||
88 | private JRadioButton jRdbFieldReal = null; |
||
89 | private JRadioButton jRdbFieldVirtual = null; |
||
90 | private JButton jBtnExpression = null; |
||
91 | 40435 | jjdelcerro | private WindowInfo viewInfo;
|
92 | private JPanel jPanel = null; |
||
93 | private AcceptCancelPanel jPanelOkCancel = null; |
||
94 | private JPanel jPnlFields = null; |
||
95 | 42533 | dmartinezizquierdo | private int maxAttributeNameSize=-1; |
96 | 40435 | jjdelcerro | private KeyListener checkInt = new KeyListener() { |
97 | |||
98 | public void keyPressed(KeyEvent e) { |
||
99 | // do nothing
|
||
100 | } |
||
101 | |||
102 | public void keyReleased(KeyEvent e) { |
||
103 | JTextField component = (JTextField) e.getComponent(); |
||
104 | |||
105 | try {
|
||
106 | component.setText(String.valueOf(Integer.parseInt(component |
||
107 | .getText()))); |
||
108 | |||
109 | } catch (Exception ex) { |
||
110 | String text = component.getText();
|
||
111 | text = |
||
112 | (text.length() <= 1) ? "0" : text.substring(0, |
||
113 | text.length() - 1);
|
||
114 | component.setText(text); |
||
115 | } |
||
116 | } |
||
117 | |||
118 | public void keyTyped(KeyEvent e) { |
||
119 | // do nothing
|
||
120 | } |
||
121 | }; |
||
122 | private String[] currentFieldNames; |
||
123 | |||
124 | public CreateNewAttributePanel() {
|
||
125 | super();
|
||
126 | initialize(); |
||
127 | } |
||
128 | |||
129 | public CreateNewAttributePanel(boolean isDoubleBuffered) { |
||
130 | super(isDoubleBuffered);
|
||
131 | initialize(); |
||
132 | } |
||
133 | |||
134 | public CreateNewAttributePanel(LayoutManager layout) { |
||
135 | super(layout);
|
||
136 | initialize(); |
||
137 | } |
||
138 | |||
139 | public CreateNewAttributePanel(LayoutManager layout, |
||
140 | boolean isDoubleBuffered) {
|
||
141 | super(layout, isDoubleBuffered);
|
||
142 | initialize(); |
||
143 | } |
||
144 | |||
145 | public WindowInfo getWindowInfo() {
|
||
146 | if (viewInfo == null) { |
||
147 | viewInfo = new WindowInfo(WindowInfo.MODALDIALOG);
|
||
148 | viewInfo.setWidth(this.getWidth() + 8); |
||
149 | viewInfo.setHeight(this.getHeight());
|
||
150 | viewInfo.setTitle(PluginServices.getText(this,
|
||
151 | "new_field_properties"));
|
||
152 | } |
||
153 | return viewInfo;
|
||
154 | } |
||
155 | |||
156 | /**
|
||
157 | * This method initializes this
|
||
158 | 42533 | dmartinezizquierdo | *
|
159 | 40435 | jjdelcerro | * @return void
|
160 | */
|
||
161 | private void initialize() { |
||
162 | this.setLayout(new BorderLayout()); |
||
163 | 43978 | omartinez | this.setSize(300, 310); |
164 | this.setPreferredSize(new java.awt.Dimension(300, 310)); |
||
165 | 40435 | jjdelcerro | this.add(getJPanel(), java.awt.BorderLayout.CENTER);
|
166 | this.add(getJPanelOkCancel(), java.awt.BorderLayout.SOUTH);
|
||
167 | } |
||
168 | |||
169 | /**
|
||
170 | * This method initializes jTxtFieldName
|
||
171 | 42533 | dmartinezizquierdo | *
|
172 | 40435 | jjdelcerro | * @return javax.swing.JTextField
|
173 | */
|
||
174 | private JTextField getJTxtFieldName() { |
||
175 | if (jTxtFieldName == null) { |
||
176 | jTxtFieldName = new JTextField(); |
||
177 | jTxtFieldName.setBounds(new java.awt.Rectangle(147, 15, 138, 22)); |
||
178 | } |
||
179 | return jTxtFieldName;
|
||
180 | } |
||
181 | |||
182 | /**
|
||
183 | * This method initializes jCboFieldType
|
||
184 | 42533 | dmartinezizquierdo | *
|
185 | 40435 | jjdelcerro | * @return javax.swing.JComboBox
|
186 | */
|
||
187 | private JComboBox getJCboFieldType() { |
||
188 | DataTypesManager manager = ToolsLocator.getDataTypesManager(); |
||
189 | if (jCboFieldType == null) { |
||
190 | jCboFieldType = new JComboBox(); |
||
191 | jCboFieldType.setBounds(new java.awt.Rectangle(147, 52, 138, 22)); |
||
192 | jCboFieldType.addItem(manager.getTypeName(DataTypes.BOOLEAN)); |
||
193 | jCboFieldType.addItem(manager.getTypeName(DataTypes.DATE)); |
||
194 | jCboFieldType.addItem(manager.getTypeName(DataTypes.INT)); |
||
195 | jCboFieldType.addItem(manager.getTypeName(DataTypes.DOUBLE)); |
||
196 | jCboFieldType.addItem(manager.getTypeName(DataTypes.STRING)); |
||
197 | |||
198 | jCboFieldType.setSelectedIndex(4);
|
||
199 | jCboFieldType |
||
200 | .addActionListener(new java.awt.event.ActionListener() {
|
||
201 | |||
202 | public void actionPerformed(java.awt.event.ActionEvent e) { |
||
203 | DataTypesManager manager = |
||
204 | ToolsLocator.getDataTypesManager(); |
||
205 | String strType =
|
||
206 | (String) getJCboFieldType().getModel()
|
||
207 | .getSelectedItem(); |
||
208 | 40943 | jldominguez | if (strType == manager.getTypeName(DataTypes.DOUBLE)) {
|
209 | 40435 | jjdelcerro | getJTxtFieldPrecision().setEnabled(true);
|
210 | if (getJTxtFieldPrecision().getText().equals("")) { |
||
211 | getJTxtFieldPrecision().setText("3");
|
||
212 | } else {
|
||
213 | try {
|
||
214 | Integer.parseInt(getJTxtFieldPrecision()
|
||
215 | .getText()); |
||
216 | } catch (NumberFormatException e1) { |
||
217 | getJTxtFieldPrecision().setText("3");
|
||
218 | } |
||
219 | } |
||
220 | } else {
|
||
221 | getJTxtFieldPrecision().setEnabled(false);
|
||
222 | } |
||
223 | if (strType == manager.getTypeName(DataTypes.BOOLEAN)) {
|
||
224 | getJTxtFieldLength().setText("0");
|
||
225 | getJTxtFieldLength().setEnabled(false);
|
||
226 | } else {
|
||
227 | getJTxtFieldLength().setEnabled(true);
|
||
228 | } |
||
229 | |||
230 | } |
||
231 | }); |
||
232 | |||
233 | } |
||
234 | return jCboFieldType;
|
||
235 | } |
||
236 | |||
237 | /**
|
||
238 | * This method initializes jTxtFieldLength
|
||
239 | 42533 | dmartinezizquierdo | *
|
240 | 40435 | jjdelcerro | * @return javax.swing.JTextField
|
241 | */
|
||
242 | private JTextField getJTxtFieldLength() { |
||
243 | if (jTxtFieldLength == null) { |
||
244 | jTxtFieldLength = new JTextField(); |
||
245 | jTxtFieldLength.setBounds(new java.awt.Rectangle(147, 89, 138, 22)); |
||
246 | jTxtFieldLength.setText(DEFAULT_FIELD_LENGTH); |
||
247 | jTxtFieldLength.addKeyListener(checkInt); |
||
248 | } |
||
249 | return jTxtFieldLength;
|
||
250 | } |
||
251 | |||
252 | /**
|
||
253 | * This method initializes jTxtFieldPrecision
|
||
254 | 42533 | dmartinezizquierdo | *
|
255 | 40435 | jjdelcerro | * @return javax.swing.JTextField
|
256 | */
|
||
257 | private JTextField getJTxtFieldPrecision() { |
||
258 | if (jTxtFieldPrecision == null) { |
||
259 | jTxtFieldPrecision = new JTextField(); |
||
260 | jTxtFieldPrecision.setBounds(new java.awt.Rectangle(147, 126, 138, |
||
261 | 22));
|
||
262 | jTxtFieldPrecision.setEnabled(false);
|
||
263 | jTxtFieldPrecision.addKeyListener(checkInt); |
||
264 | } |
||
265 | return jTxtFieldPrecision;
|
||
266 | } |
||
267 | |||
268 | /**
|
||
269 | * This method initializes jTxtDefaultValue
|
||
270 | 42533 | dmartinezizquierdo | *
|
271 | 40435 | jjdelcerro | * @return javax.swing.JTextField
|
272 | */
|
||
273 | private JTextField getJTxtDefaultValue() { |
||
274 | if (jTxtDefaultValue == null) { |
||
275 | jTxtDefaultValue = new JTextField(); |
||
276 | jTxtDefaultValue |
||
277 | 43978 | omartinez | .setBounds(new java.awt.Rectangle(147, 200, 138, 22)); |
278 | 40435 | jjdelcerro | } |
279 | return jTxtDefaultValue;
|
||
280 | } |
||
281 | |||
282 | public EditableFeatureAttributeDescriptor loadFieldDescription(
|
||
283 | EditableFeatureType featureType) throws ParseException { |
||
284 | String nameAttr = ""; |
||
285 | int typeAttr = DataTypes.STRING;
|
||
286 | int sizeAttr = 0; |
||
287 | int precisionAttr = 0; |
||
288 | Object defaultValueAttr = ""; |
||
289 | |||
290 | nameAttr = getJTxtFieldName().getText(); |
||
291 | 42533 | dmartinezizquierdo | |
292 | 40729 | jldominguez | if (nameAttr == null || nameAttr.length() == 0) { |
293 | 42533 | dmartinezizquierdo | |
294 | 40729 | jldominguez | JOptionPane.showMessageDialog(
|
295 | this,
|
||
296 | Messages.getText("_No_input_name"),
|
||
297 | Messages.getText("_Rename_column"),
|
||
298 | JOptionPane.ERROR_MESSAGE);
|
||
299 | return null; |
||
300 | } |
||
301 | 42533 | dmartinezizquierdo | |
302 | if (maxAttributeNameSize>0){ |
||
303 | if (nameAttr.length()>maxAttributeNameSize){
|
||
304 | JOptionPane.showMessageDialog(
|
||
305 | this,
|
||
306 | Messages.getText("_Name_too_long"),
|
||
307 | Messages.getText("_Rename_column"),
|
||
308 | JOptionPane.ERROR_MESSAGE);
|
||
309 | return null; |
||
310 | } |
||
311 | } |
||
312 | |||
313 | 40435 | jjdelcerro | String strType =
|
314 | (String) getJCboFieldType().getModel().getSelectedItem();
|
||
315 | typeAttr = ToolsLocator.getDataTypesManager().getType(strType); |
||
316 | try {
|
||
317 | int fieldLength = Integer.parseInt(getJTxtFieldLength().getText()); |
||
318 | sizeAttr = fieldLength; |
||
319 | } catch (Exception e) { |
||
320 | throw new ParseException(e.getMessage(), 0); |
||
321 | } |
||
322 | |||
323 | if (typeAttr == DataTypes.DOUBLE) {
|
||
324 | try {
|
||
325 | precisionAttr = |
||
326 | Integer.parseInt(getJTxtFieldPrecision().getText());
|
||
327 | } catch (NumberFormatException e) { |
||
328 | precisionAttr = 3;
|
||
329 | } |
||
330 | } |
||
331 | 43978 | omartinez | |
332 | 40435 | jjdelcerro | if (featureType.getIndex(nameAttr) != -1) { |
333 | NotificationManager.showMessageInfo( |
||
334 | PluginServices.getText(this, "field_already_exists"), null); |
||
335 | return null; |
||
336 | } |
||
337 | 43981 | omartinez | EditableFeatureAttributeDescriptor ead = null;
|
338 | 43978 | omartinez | if (getJRdbFieldVirtual().isSelected()) {
|
339 | String code = getJTxtExpression().getText();
|
||
340 | 43981 | omartinez | EmulatedFieldExpression myEmulated = |
341 | 43978 | omartinez | new EmulatedFieldExpression(
|
342 | 43981 | omartinez | featureType, |
343 | 43978 | omartinez | code); |
344 | 43981 | omartinez | if (!myEmulated.isValid()) {
|
345 | I18nManager i18n = ToolsLocator.getI18nManager(); |
||
346 | ApplicationManager application = ApplicationLocator.getManager(); |
||
347 | int x = application.confirmDialog(
|
||
348 | "The expression used in this field is not valid."+
|
||
349 | "\n\n"+
|
||
350 | myEmulated.getErrorMessage()+ |
||
351 | "\n\n"+
|
||
352 | "Do you want add this field anyway?",
|
||
353 | "Add invalid field",
|
||
354 | JOptionPane.YES_NO_OPTION,
|
||
355 | JOptionPane.QUESTION_MESSAGE,
|
||
356 | "_AddingInvalidField.DoYouWantAddAnyway");
|
||
357 | if (x==JOptionPane.YES_OPTION) { |
||
358 | ead = featureType.add(nameAttr, typeAttr, myEmulated) |
||
359 | .setSize(sizeAttr); |
||
360 | } |
||
361 | } else {
|
||
362 | 43978 | omartinez | ead = featureType.add(nameAttr, typeAttr, myEmulated) |
363 | .setSize(sizeAttr); |
||
364 | 43981 | omartinez | } |
365 | 43978 | omartinez | } else {
|
366 | defaultValueAttr = getJTxtDefaultValue().getText(); |
||
367 | if (defaultValueAttr.equals("")) { |
||
368 | defaultValueAttr = null;
|
||
369 | } |
||
370 | ead = featureType.add(nameAttr, typeAttr, sizeAttr); |
||
371 | ead.setPrecision(precisionAttr); |
||
372 | ead.setDefaultValue(defaultValueAttr); |
||
373 | } |
||
374 | |||
375 | 40435 | jjdelcerro | return ead;
|
376 | } |
||
377 | |||
378 | public void setOkAction(ActionListener okAction) { |
||
379 | getJPanelOkCancel().setOkButtonActionListener(okAction); |
||
380 | |||
381 | } |
||
382 | |||
383 | /**
|
||
384 | * This method initializes jPanel
|
||
385 | 42533 | dmartinezizquierdo | *
|
386 | 40435 | jjdelcerro | * @return javax.swing.JPanel
|
387 | */
|
||
388 | private JPanel getJPanel() { |
||
389 | if (jPanel == null) { |
||
390 | jPanel = new JPanel(); |
||
391 | jPanel.setLayout(null);
|
||
392 | |||
393 | jPanel.add(getJPnlFields(), null);
|
||
394 | } |
||
395 | return jPanel;
|
||
396 | } |
||
397 | |||
398 | /**
|
||
399 | * This method initializes jPanelOkCancel
|
||
400 | 42533 | dmartinezizquierdo | *
|
401 | 40435 | jjdelcerro | * @return javax.swing.JPanel
|
402 | */
|
||
403 | private AcceptCancelPanel getJPanelOkCancel() {
|
||
404 | if (jPanelOkCancel == null) { |
||
405 | jPanelOkCancel = new AcceptCancelPanel();
|
||
406 | jPanelOkCancel.setCancelButtonActionListener(new ActionListener() { |
||
407 | |||
408 | public void actionPerformed(java.awt.event.ActionEvent e) { |
||
409 | PluginServices.getMDIManager().closeWindow( |
||
410 | CreateNewAttributePanel.this); |
||
411 | } |
||
412 | }); |
||
413 | jPanelOkCancel.setPreferredSize(new java.awt.Dimension(10, 50)); |
||
414 | } |
||
415 | return jPanelOkCancel;
|
||
416 | } |
||
417 | |||
418 | /**
|
||
419 | * This method initializes jPnlFields
|
||
420 | 42533 | dmartinezizquierdo | *
|
421 | 40435 | jjdelcerro | * @return javax.swing.JPanel
|
422 | */
|
||
423 | private JPanel getJPnlFields() { |
||
424 | if (jPnlFields == null) { |
||
425 | GridLayout gridLayout = new GridLayout(); |
||
426 | 43978 | omartinez | gridLayout.setRows(8);
|
427 | 40435 | jjdelcerro | gridLayout.setVgap(3);
|
428 | gridLayout.setHgap(5);
|
||
429 | gridLayout.setColumns(2);
|
||
430 | jPnlFields = new JPanel(); |
||
431 | jPnlFields.setLayout(gridLayout); |
||
432 | 43978 | omartinez | jPnlFields.setBounds(new java.awt.Rectangle(5, 12, 290, 200)); |
433 | // jLblFieldReal = new JLabel();
|
||
434 | // jLblFieldReal.setBounds(14, 237, 125, 22);
|
||
435 | // jLblFieldReal.setText(PluginServices.getText(this,
|
||
436 | // "default_value"));
|
||
437 | // jLblEmulated = new JLabel();
|
||
438 | // jLblEmulated
|
||
439 | // .setBounds(new java.awt.Rectangle(14, 200, 125, 22));
|
||
440 | // jLblEmulated.setText(PluginServices.getText(this,
|
||
441 | // "emulated"));
|
||
442 | jLblExpression = new JLabel(); |
||
443 | jLblExpression |
||
444 | .setBounds(new java.awt.Rectangle(14, 272, 125, 22)); |
||
445 | jLblExpression.setText(PluginServices.getText(this,
|
||
446 | "expression"));
|
||
447 | 40435 | jjdelcerro | jLblDefaultValue = new JLabel(); |
448 | jLblDefaultValue |
||
449 | 43978 | omartinez | .setBounds(new java.awt.Rectangle(14, 200, 125, 22)); |
450 | 40435 | jjdelcerro | jLblDefaultValue.setText(PluginServices.getText(this,
|
451 | "default_value"));
|
||
452 | jLblFieldPrecision = new JLabel(); |
||
453 | jLblFieldPrecision.setBounds(new java.awt.Rectangle(14, 126, 112, |
||
454 | 22));
|
||
455 | jLblFieldPrecision.setText(PluginServices |
||
456 | .getText(this, "precision")); |
||
457 | jLblFieldLength = new JLabel(); |
||
458 | jLblFieldLength.setBounds(new java.awt.Rectangle(14, 89, 99, 22)); |
||
459 | jLblFieldLength.setText(PluginServices |
||
460 | .getText(this, "field_length")); |
||
461 | jLblFieldType = new JLabel(); |
||
462 | jLblFieldType.setBounds(new java.awt.Rectangle(14, 52, 94, 22)); |
||
463 | jLblFieldType.setText(PluginServices.getText(this, "field_type")); |
||
464 | jLblFieldName = new JLabel(); |
||
465 | jLblFieldName.setText(PluginServices.getText(this, "field_name")); |
||
466 | jLblFieldName.setBounds(new java.awt.Rectangle(14, 15, 99, 22)); |
||
467 | jPnlFields.add(jLblFieldName, null);
|
||
468 | jPnlFields.add(getJTxtFieldName(), null);
|
||
469 | jPnlFields.add(jLblFieldType, null);
|
||
470 | jPnlFields.add(getJCboFieldType(), null);
|
||
471 | jPnlFields.add(jLblFieldLength, null);
|
||
472 | jPnlFields.add(getJTxtFieldLength(), null);
|
||
473 | jPnlFields.add(jLblFieldPrecision, null);
|
||
474 | jPnlFields.add(getJTxtFieldPrecision(), null);
|
||
475 | 43978 | omartinez | |
476 | |||
477 | |||
478 | jPnlFields.add(getJRdbFieldReal(), null);
|
||
479 | jRdbFieldReal.addActionListener(this);
|
||
480 | jPnlFields.add(new JLabel(), null); |
||
481 | //JPanel panelReal = new JPanel();
|
||
482 | 40435 | jjdelcerro | jPnlFields.add(jLblDefaultValue, null);
|
483 | 43975 | omartinez | jPnlFields.add(getJTxtDefaultValue(), null);
|
484 | 43978 | omartinez | //jPnlFields.add(panelReal);
|
485 | |||
486 | jPnlFields.add(getJRdbFieldVirtual(), null);
|
||
487 | jRdbFieldVirtual.addActionListener(this);
|
||
488 | |||
489 | jPnlFields.add(new JLabel(), null); |
||
490 | jPnlFields.add(jLblExpression, null);
|
||
491 | JPanel panelVirtual = new JPanel(); |
||
492 | // panelVirtual.setLayout(new GridLayout(1, 2));
|
||
493 | GridBagLayout grid = new GridBagLayout(); |
||
494 | GridBagConstraints gbc = new GridBagConstraints(); |
||
495 | gbc.gridx = 0;
|
||
496 | gbc.gridy = 0;
|
||
497 | gbc.gridwidth = 3;
|
||
498 | gbc.gridheight = 1;
|
||
499 | gbc.weightx = 1.0;
|
||
500 | gbc.fill = GridBagConstraints.HORIZONTAL;
|
||
501 | panelVirtual.setLayout(grid); |
||
502 | |||
503 | panelVirtual.add(getJTxtExpression(), gbc); |
||
504 | gbc.gridx = 4;
|
||
505 | gbc.gridy = 0;
|
||
506 | gbc.gridwidth = 1;
|
||
507 | gbc.gridheight = 1;
|
||
508 | gbc.weightx = 0.0;
|
||
509 | gbc.weighty = 0.0;
|
||
510 | gbc.fill = GridBagConstraints.NONE;
|
||
511 | panelVirtual.add(getJBtnExpression(), gbc); |
||
512 | jPnlFields.add(panelVirtual); |
||
513 | |||
514 | //jPnlFields.add(jLblFieldVirtual, null);
|
||
515 | ButtonGroup defaultGroup = new ButtonGroup(); |
||
516 | defaultGroup.add(jRdbFieldReal); |
||
517 | defaultGroup.add(jRdbFieldVirtual); |
||
518 | |||
519 | // init visible
|
||
520 | jLblDefaultValue.setEnabled(true);
|
||
521 | jTxtDefaultValue.setEnabled(true);
|
||
522 | jLblExpression.setEnabled(false);
|
||
523 | jTxtExpression.setEnabled(false);
|
||
524 | jBtnExpression.setEnabled(false);
|
||
525 | |||
526 | 40435 | jjdelcerro | } |
527 | return jPnlFields;
|
||
528 | } |
||
529 | |||
530 | public void setCurrentFieldNames(String[] fieldNames) { |
||
531 | currentFieldNames = fieldNames; |
||
532 | String newField =
|
||
533 | PluginServices.getText(this, "field").replaceAll(" +", "_"); |
||
534 | int index = 0; |
||
535 | for (int i = 0; i < currentFieldNames.length; i++) { |
||
536 | if (currentFieldNames[i].startsWith(newField)) {
|
||
537 | try {
|
||
538 | index = |
||
539 | Integer.parseInt(currentFieldNames[i].replaceAll(
|
||
540 | newField, ""));
|
||
541 | } catch (Exception e) { /* we don't care */ |
||
542 | } |
||
543 | } |
||
544 | } |
||
545 | jTxtFieldName.setText(newField + (++index)); |
||
546 | } |
||
547 | |||
548 | public Object getWindowProfile() { |
||
549 | return WindowInfo.DIALOG_PROFILE;
|
||
550 | } |
||
551 | |||
552 | 42533 | dmartinezizquierdo | public void setMaxAttributeNameSize(int maxAttributeNameSize) { |
553 | this.maxAttributeNameSize = maxAttributeNameSize;
|
||
554 | } |
||
555 | |||
556 | 43978 | omartinez | private JTextField getJTxtExpression() { |
557 | if (jTxtExpression == null) { |
||
558 | jTxtExpression = new JTextField(); |
||
559 | jTxtExpression.setBounds(new java.awt.Rectangle(147, 200, 125, 22)); |
||
560 | jTxtExpression.setColumns(4);
|
||
561 | 43975 | omartinez | } |
562 | 43978 | omartinez | return jTxtExpression;
|
563 | 43975 | omartinez | } |
564 | 43978 | omartinez | |
565 | private JRadioButton getJRdbFieldReal() { |
||
566 | if (jRdbFieldReal == null) { |
||
567 | jRdbFieldReal = new JRadioButton(PluginServices.getText(this, "_Real_field")); //"real_value")); |
||
568 | jRdbFieldReal.setBounds(new java.awt.Rectangle(14, 163, 125, 22)); |
||
569 | jRdbFieldReal.setSelected(true);
|
||
570 | } |
||
571 | return jRdbFieldReal;
|
||
572 | } |
||
573 | private JRadioButton getJRdbFieldVirtual() { |
||
574 | if (jRdbFieldVirtual == null) { |
||
575 | jRdbFieldVirtual = new JRadioButton(PluginServices.getText(this, "_Virtual_field"));//"virtual_value")); |
||
576 | jRdbFieldVirtual.setBounds(new java.awt.Rectangle(14, 237, 125, 22)); |
||
577 | } |
||
578 | return jRdbFieldVirtual;
|
||
579 | } |
||
580 | |||
581 | private JButton getJBtnExpression() { |
||
582 | if (jBtnExpression == null) { |
||
583 | jBtnExpression = new JButton(); |
||
584 | jBtnExpression.setText("...");
|
||
585 | //jBtnExpression.setBounds(new java.awt.Rectangle(147, 200, 125, 22));
|
||
586 | //jBtnExpression.setColumns(4);
|
||
587 | } |
||
588 | return jBtnExpression;
|
||
589 | } |
||
590 | @Override
|
||
591 | public void actionPerformed(ActionEvent e) { |
||
592 | if (e.getSource()==jRdbFieldReal) {
|
||
593 | jLblDefaultValue.setEnabled(true);
|
||
594 | jTxtDefaultValue.setEnabled(true);
|
||
595 | jLblExpression.setEnabled(false);
|
||
596 | jTxtExpression.setEnabled(false);
|
||
597 | jBtnExpression.setEnabled(false);
|
||
598 | |||
599 | } else if (e.getSource()==jRdbFieldVirtual) { |
||
600 | jLblDefaultValue.setEnabled(false);
|
||
601 | jTxtDefaultValue.setEnabled(false);
|
||
602 | jLblExpression.setEnabled(true);
|
||
603 | jTxtExpression.setEnabled(true);
|
||
604 | jBtnExpression.setEnabled(true);
|
||
605 | |||
606 | } |
||
607 | } |
||
608 | |||
609 | 40435 | jjdelcerro | } |