Revision 29351 branches/v2_0_0_prep/extensions/extNormalization/src/org/gvsig/normalization/gui/NormalizationPanel.java

View differences:

NormalizationPanel.java
30 30
import java.awt.Component;
31 31
import java.awt.event.ActionEvent;
32 32
import java.awt.event.ActionListener;
33
import java.awt.event.FocusEvent;
34
import java.awt.event.FocusListener;
35
import java.awt.event.ItemEvent;
36
import java.awt.event.ItemListener;
33 37
import java.awt.event.KeyEvent;
34 38
import java.awt.event.KeyListener;
35 39
import java.awt.event.MouseEvent;
36 40
import java.awt.event.MouseListener;
37 41
import java.io.File;
42
import java.io.FileReader;
43
import java.io.FileWriter;
44
import java.io.IOException;
45
import java.io.Writer;
46
import java.text.DecimalFormatSymbols;
47
import java.util.ArrayList;
48
import java.util.Iterator;
49
import java.util.List;
50
import java.util.Locale;
38 51

  
39 52
import javax.swing.BorderFactory;
40 53
import javax.swing.ButtonGroup;
......
46 59
import javax.swing.JCheckBox;
47 60
import javax.swing.JComboBox;
48 61
import javax.swing.JComponent;
62
import javax.swing.JFileChooser;
49 63
import javax.swing.JLabel;
50 64
import javax.swing.JList;
65
import javax.swing.JOptionPane;
51 66
import javax.swing.JPanel;
52 67
import javax.swing.JRadioButton;
53 68
import javax.swing.JScrollPane;
54 69
import javax.swing.JTable;
55
import javax.swing.JTextArea;
56 70
import javax.swing.JTextField;
71
import javax.swing.ListModel;
57 72
import javax.swing.event.ChangeEvent;
58 73
import javax.swing.event.ChangeListener;
74
import javax.swing.event.ListSelectionEvent;
75
import javax.swing.event.ListSelectionListener;
59 76
import javax.swing.table.DefaultTableModel;
77
import javax.swing.table.TableColumn;
78
import javax.swing.table.TableModel;
60 79

  
80
import org.gvsig.app.daltransform.gui.components.impl.FeatureTypeAttributesCombo;
81
import org.gvsig.app.daltransform.gui.components.impl.FeatureTypeCombo;
61 82
import org.gvsig.app.daltransform.gui.impl.AbstractDataTransformWizardPanel;
83
import org.gvsig.fmap.dal.exception.DataException;
84
import org.gvsig.fmap.dal.feature.Feature;
85
import org.gvsig.fmap.dal.feature.FeatureSet;
86
import org.gvsig.fmap.dal.feature.FeatureStore;
87
import org.gvsig.normalization.algorithm.NormalizationAlgorithm;
88
import org.gvsig.normalization.algorithm.impl.DefaultNormalizationAlgorithm;
62 89
import org.gvsig.normalization.pattern.Datevalue;
63 90
import org.gvsig.normalization.pattern.Decimalvalue;
64 91
import org.gvsig.normalization.pattern.Element;
......
70 97
import org.gvsig.normalization.pattern.Stringvalue;
71 98
import org.gvsig.normalization.pattern.impl.DefaultDatevalue;
72 99
import org.gvsig.normalization.pattern.impl.DefaultDecimalvalue;
100
import org.gvsig.normalization.pattern.impl.DefaultElement;
73 101
import org.gvsig.normalization.pattern.impl.DefaultFieldseparator;
74 102
import org.gvsig.normalization.pattern.impl.DefaultFieldtype;
75 103
import org.gvsig.normalization.pattern.impl.DefaultInfieldseparators;
76 104
import org.gvsig.normalization.pattern.impl.DefaultIntegervalue;
105
import org.gvsig.normalization.pattern.impl.DefaultPatternnormalization;
77 106
import org.gvsig.normalization.pattern.impl.DefaultStringvalue;
107
import org.gvsig.tools.ToolsLocator;
108
import org.gvsig.tools.persistence.PersistenceException;
109
import org.gvsig.tools.persistence.PersistenceManager;
110
import org.gvsig.tools.persistence.PersistentState;
78 111
import org.slf4j.Logger;
79 112
import org.slf4j.LoggerFactory;
80 113

  
114
import sun.text.Normalizer;
115

  
81 116
import com.iver.andami.PluginServices;
82
import com.iver.andami.ui.mdiManager.IWindow;
83
import com.iver.andami.ui.mdiManager.WindowInfo;
117
import com.iver.utiles.GenericFileFilter;
118
import com.iver.utiles.XMLEntity;
84 119

  
85 120
/**
86 121
 * Normalization main panel
......
89 124
 * @author <a href="mailto:vsanjaime@prodevelop.es"> Vicente Sanjaime Calvet</a>
90 125
 */
91 126
public class NormalizationPanel extends AbstractDataTransformWizardPanel
92
		implements ActionListener, ChangeListener {
127
		implements ActionListener, ChangeListener, KeyListener, MouseListener,
128
		ListSelectionListener, ItemListener, FocusListener {
93 129

  
130
	// ATTRIBUTES
94 131
	private static final long serialVersionUID = -2882235643001676017L;
95

  
96 132
	private static final Logger log = LoggerFactory
97 133
			.getLogger(NormalizationPanel.class);
134
	private static final int SAMPLES = 3;
135
	private static final int WIDHT = 620;
136
	private static final int HEIGHT = 600;
98 137

  
99
	private NormalizationPanelController controller;
100
	private PluginServices ps;
138
	private Patternnormalization pattern;
139
	private int contador = 1;
140
	private String[] samples = new String[SAMPLES];
101 141
	private boolean dirty = false;
102 142
	private int selectedField = 0;
143
	private String oldNumRows;
103 144

  
104
	/* GUI */
145
	/* ATTRIBUTES GUI */
105 146
	private ButtonGroup butGroupDelimiter;
106 147
	private ButtonGroup butGroupFieldType;
107
	private JButton jButCancel;
108 148
	private JButton jButAddField;
109 149
	private JButton jButDownField;
110 150
	private JButton jButRemoveField;
111 151
	private JButton jButUpField;
112 152
	private JButton jButLoad;
113
	private JButton jButRun;
114 153
	private JButton jButSave;
115 154
	private JButton jButTest;
116 155
	private JCheckBox jCheckFirstRow;
117
	private JCheckBox jChkColon;
156
	private JCheckBox jChkComma;
118 157
	private JCheckBox jChkDontImport;
119 158
	private JCheckBox jChkJoin;
120 159
	private JCheckBox jChkOther;
......
128 167
	private JLabel jLabThousand;
129 168
	private JLabel jLabelSelFields;
130 169
	private JList jListFieldList;
131
	private JList jListOriginalFields;
132 170
	private JPanel jPanApply;
133
	private JPanel jPanConsole;
134 171
	private JPanel jPanFieldList;
135 172
	private JPanel jPanFieldName;
136 173
	private JPanel jPanFieldSeparators;
......
155 192
	private JScrollPane jScrollPane2;
156 193
	private JScrollPane jScrollPaneFieldList;
157 194
	private JScrollPane jScrollPaneSource;
158
	private JTable jTableResult;
159
	private JTable jTableSource;
160
	private JTextArea jTextAreaConsole;
195
	private JTable jTableTest;
196
	private JTable jTableSamples;
161 197
	private JTextField jTextDecimal;
162 198
	private JTextField jTextNumberRows;
163 199
	private JLabel jLabelNumberRows;
......
166 202
	private JTextField jTextOther;
167 203
	private JTextField jTextTextDelimiter;
168 204
	private JTextField jTextThousand;
205
	private FeatureTypeAttributesCombo jComboField;
206
	private FeatureTypeCombo jComboFieldType;
207
	private JPanel jPanField;
208
	private JLabel jLabelFieldType;
209
	private JLabel jLabelField;
169 210

  
170 211
	/**
171
	 * Creates new form NormalizationPanel to normalize field of datastore
172
	 * 
173
	 * @param control
174
	 * @return panel
212
	 * Constructor
175 213
	 */
176
	public NormalizationPanel(NormalizationPanelController control) {
177
		this.controller = control;
178
		init();
179
	}
180

  
181
	/**
182
	 * This method sets the PluginServices and update the string and icons
183
	 * 
184
	 * @param ps
185
	 *            PluginServices
186
	 */
187
	public void setPs(PluginServices ps) {
188
		this.ps = ps;
189
		if (ps != null) {
190
			setMessages();
191
			setImages();
192
		}
193
	}
194

  
195
	/**
196
	 * This method inserts the sample split strings into the Sample Table
197
	 * 
198
	 * @param chains
199
	 *            array with strings
200
	 */
201
	public void insertChainsInRowsTableSample(String[] chains) {
202

  
203
		DefaultTableModel dtm = new DefaultTableModel();
204
		int nfil = dtm.getRowCount();
205
		for (int i = 0; i < nfil; i++) {
206
			dtm.setValueAt(chains[0], i, 0);
207
		}
208
		jTableSource.setModel(dtm);
209
	}
210

  
211
	/**
212
	 * Insert in the console the message
213
	 * 
214
	 * @param e
215
	 */
216
	public void stateChanged(ChangeEvent e) {
217
		String info = parseInfo(e.getSource().toString());
218
		this.jTextAreaConsole.append(info);
219
	}
220

  
221
	/**
222
	 * This method inserts the model in the list with the names of the fields of
223
	 * the original table
224
	 * 
225
	 * @param fieldsNames
226
	 */
227
	public void insertFieldsCurrentTable(String[] fieldsNames) {
228
		DefaultListModel dcb = new DefaultListModel();
229
		int cont = fieldsNames.length;
230
		for (int i = 0; i < cont; i++) {
231
			dcb.addElement(fieldsNames[i]);
232
		}
233
		this.jListOriginalFields.setModel(dcb);
234
		this.jListOriginalFields.setSelectedIndex(0);
235
	}
236

  
237
	/**
238
	 * getWindowInfo
239
	 * 
240
	 * @return windows properties
241
	 */
242
	public WindowInfo getWindowInfo() {
243
		WindowInfo info = new WindowInfo(WindowInfo.MODALDIALOG
244
				| WindowInfo.RESIZABLE);
245
		info.setWidth(780);
246
		info.setHeight(620);
247
		info.setTitle(PluginServices.getText(this, "normalize"));
248
		return info;
249
	}
250

  
251
	/**
252
	 * Initialize components and other custom code
253
	 */
254
	private void init() {
255

  
214
	public NormalizationPanel() {
256 215
		/* Initialize components GUI */
257 216
		initComponents();
258

  
259
		/* Final initialize methods to set up the GUI */
260
		updateGUI();
261

  
262
		jListOriginalFields.setEnabled(false);
217
		setMessages();
218
		setImages();
219
		// load default pattern
220
		pattern = initializeDefaultPattern();
221
		// update GUI
222
		refreshFieldsList();
263 223
	}
264 224

  
265 225
	/**
......
268 228
	private void initComponents() {
269 229
		java.awt.GridBagConstraints gridBagConstraints;
270 230

  
231
		jPanField = new JPanel();
232
		jLabelField = new JLabel();
233
		jComboField = new FeatureTypeAttributesCombo();
234
		jLabelFieldType = new JLabel();
235
		jComboFieldType = new FeatureTypeCombo();
271 236
		butGroupDelimiter = new javax.swing.ButtonGroup();
272 237
		butGroupFieldType = new javax.swing.ButtonGroup();
273 238
		jPanSampleOutput = new javax.swing.JPanel();
274 239
		jScrollPane2 = new javax.swing.JScrollPane();
275
		jTableResult = new javax.swing.JTable();
240
		jTableTest = new javax.swing.JTable();
276 241
		jPanSource = new javax.swing.JPanel();
277 242
		jScrollPaneSource = new javax.swing.JScrollPane();
278
		jTableSource = new javax.swing.JTable();
243
		jTableSamples = new javax.swing.JTable();
279 244
		jPanFirstRow = new javax.swing.JPanel();
280 245
		jCheckFirstRow = new javax.swing.JCheckBox();
281 246
		jTextNumberRows = new javax.swing.JTextField();
......
299 264
		jPanFieldSeparators = new javax.swing.JPanel();
300 265
		jChkTab = new javax.swing.JCheckBox();
301 266
		jChkSpace = new javax.swing.JCheckBox();
302
		jChkColon = new javax.swing.JCheckBox();
267
		jChkComma = new javax.swing.JCheckBox();
303 268
		jChkSemicolon = new javax.swing.JCheckBox();
304 269
		jChkOther = new javax.swing.JCheckBox();
305 270
		jTextOther = new javax.swing.JTextField();
......
325 290
		jRadioAlterTable = new javax.swing.JRadioButton();
326 291
		jRadioNewTable = new javax.swing.JRadioButton();
327 292
		jLabelSelFields = new javax.swing.JLabel();
328
		jListOriginalFields = new javax.swing.JList();
329
		jPanConsole = new javax.swing.JPanel();
330
		jTextAreaConsole = new javax.swing.JTextArea();
331 293
		jButLoad = new javax.swing.JButton();
332
		jButRun = new javax.swing.JButton();
333
		jButCancel = new javax.swing.JButton();
334 294
		jButSave = new javax.swing.JButton();
335 295

  
336
		setMinimumSize(new java.awt.Dimension(600, 620));
337
		setPreferredSize(new java.awt.Dimension(600, 620));
338
		addFocusListener(new java.awt.event.FocusAdapter() {
339
			public void focusGained(java.awt.event.FocusEvent evt) {
340
				mainPanelGetFocus(evt);
341
			}
342
		});
296
		setMinimumSize(new java.awt.Dimension(WIDHT, HEIGHT));
297
		setPreferredSize(new java.awt.Dimension(WIDHT, HEIGHT));
298
		addFocusListener(this);
343 299
		setLayout(new java.awt.GridBagLayout());
344 300

  
345 301
		jPanSampleOutput.setBorder(javax.swing.BorderFactory
......
352 308
		jScrollPane2.setMinimumSize(new java.awt.Dimension(100, 90));
353 309
		jScrollPane2.setPreferredSize(new java.awt.Dimension(100, 90));
354 310

  
355
		jTableResult.setFont(new java.awt.Font("Courier New", 0, 11));
356
		jTableResult.setModel(new javax.swing.table.DefaultTableModel(
311
		jTableTest.setFont(new java.awt.Font("Courier New", 0, 11));
312
		jTableTest.setModel(new javax.swing.table.DefaultTableModel(
357 313
				new Object[][] { {}, {}, {} }, new String[] {
358 314

  
359 315
				}));
360
		jTableResult.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
361
		jTableResult.setEnabled(false);
362
		jScrollPane2.setViewportView(jTableResult);
316
		jTableTest.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
317
		jTableTest.setEnabled(false);
318
		jTableTest.setRowSelectionAllowed(false);
319
		jScrollPane2.setViewportView(jTableTest);
363 320

  
364 321
		gridBagConstraints = new java.awt.GridBagConstraints();
365 322
		gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
366 323
		gridBagConstraints.weightx = 1.0;
324
		gridBagConstraints.weighty = 1.0;
367 325
		jPanSampleOutput.add(jScrollPane2, gridBagConstraints);
368 326

  
369 327
		gridBagConstraints = new java.awt.GridBagConstraints();
......
371 329
		gridBagConstraints.gridy = 2;
372 330
		gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
373 331
		gridBagConstraints.weightx = 1.0;
374
		gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
332
		gridBagConstraints.insets = new java.awt.Insets(0, 3, 4, 3);
375 333
		add(jPanSampleOutput, gridBagConstraints);
376 334

  
377 335
		jPanSource.setBorder(javax.swing.BorderFactory
......
382 340
		jScrollPaneSource.setMinimumSize(new java.awt.Dimension(100, 90));
383 341
		jScrollPaneSource.setPreferredSize(new java.awt.Dimension(100, 90));
384 342

  
385
		jTableSource.setFont(new java.awt.Font("Courier New", 0, 11));
386
		jTableSource.setModel(new DefaultTableModel());
387
		jTableSource.getTableHeader().setReorderingAllowed(false);
388
		jScrollPaneSource.setViewportView(jTableSource);
343
		jPanField.setLayout(new java.awt.GridBagLayout());
389 344

  
345
		jLabelFieldType.setText("selectFieldType");
390 346
		gridBagConstraints = new java.awt.GridBagConstraints();
391 347
		gridBagConstraints.gridx = 0;
392 348
		gridBagConstraints.gridy = 0;
349
		gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 6);
350
		jPanField.add(jLabelFieldType, gridBagConstraints);
351

  
352
		jComboFieldType.setMinimumSize(new java.awt.Dimension(100, 20));
353
		gridBagConstraints = new java.awt.GridBagConstraints();
354
		gridBagConstraints.gridx = 1;
355
		gridBagConstraints.gridy = 0;
356
		gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
357
		gridBagConstraints.weightx = 1.0;
358
		gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 0);
359
		jPanField.add(jComboFieldType, gridBagConstraints);
360

  
361
		jLabelField.setText("selectField");
362
		gridBagConstraints = new java.awt.GridBagConstraints();
363
		gridBagConstraints.gridx = 0;
364
		gridBagConstraints.gridy = 1;
365
		gridBagConstraints.insets = new java.awt.Insets(5, 0, 0, 6);
366
		jPanField.add(jLabelField, gridBagConstraints);
367

  
368
		jComboField.setMinimumSize(new java.awt.Dimension(100, 20));
369
		jComboField.addActionListener(this);
370
		gridBagConstraints = new java.awt.GridBagConstraints();
371
		gridBagConstraints.gridx = 1;
372
		gridBagConstraints.gridy = 1;
373
		gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
374
		gridBagConstraints.weightx = 1.0;
375
		gridBagConstraints.insets = new java.awt.Insets(5, 0, 0, 0);
376
		jPanField.add(jComboField, gridBagConstraints);
377

  
378
		gridBagConstraints = new java.awt.GridBagConstraints();
379
		gridBagConstraints.gridx = 0;
380
		gridBagConstraints.gridy = 0;
381
		gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
382
		gridBagConstraints.weightx = 1.0;
383
		gridBagConstraints.insets = new java.awt.Insets(1, 15, 4, 25);
384
		jPanSource.add(jPanField, gridBagConstraints);
385

  
386
		jTableSamples.setFont(new java.awt.Font("Courier New", 0, 11));
387
		jTableSamples.setModel(new DefaultTableModel());
388
		jTableSamples.getTableHeader().setReorderingAllowed(false);
389
		jTableSamples.setRowSelectionAllowed(false);
390
		jScrollPaneSource.setViewportView(jTableSamples);
391

  
392
		gridBagConstraints = new java.awt.GridBagConstraints();
393
		gridBagConstraints.gridx = 0;
394
		gridBagConstraints.gridy = 1;
393 395
		gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
394 396
		gridBagConstraints.weightx = 1.0;
395 397
		gridBagConstraints.weighty = 1.0;
......
400 402
		jCheckFirstRow.setText("Don't normalize the first row");
401 403
		jCheckFirstRow.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
402 404
		jCheckFirstRow.setSelected(false);
403
		jCheckFirstRow.addActionListener(new java.awt.event.ActionListener() {
404
			public void actionPerformed(java.awt.event.ActionEvent evt) {
405
				EvCheckFirstRow(evt);
406
			}
407
		});
405
		jCheckFirstRow.addActionListener(this);
408 406
		gridBagConstraints = new java.awt.GridBagConstraints();
409 407
		gridBagConstraints.gridx = 0;
410 408
		gridBagConstraints.gridy = 0;
......
419 417
		jTextNumberRows.setMaximumSize(new java.awt.Dimension(30, 18));
420 418
		jTextNumberRows.setMinimumSize(new java.awt.Dimension(30, 18));
421 419
		jTextNumberRows.setPreferredSize(new java.awt.Dimension(30, 18));
422

  
423
		jTextNumberRows.addKeyListener(new java.awt.event.KeyAdapter() {
424
			public void keyReleased(java.awt.event.KeyEvent evt) {
425
				firstRowsvalueChange();
426
			}
427
		});
420
		jTextNumberRows.addKeyListener(this);
428 421
		gridBagConstraints = new java.awt.GridBagConstraints();
429 422
		gridBagConstraints.gridx = 1;
430 423
		gridBagConstraints.gridy = 0;
......
444 437

  
445 438
		gridBagConstraints = new java.awt.GridBagConstraints();
446 439
		gridBagConstraints.gridx = 0;
447
		gridBagConstraints.gridy = 1;
440
		gridBagConstraints.gridy = 2;
448 441
		gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
449 442
		gridBagConstraints.weightx = 1.0;
450 443
		jPanSource.add(jPanFirstRow, gridBagConstraints);
......
454 447
		gridBagConstraints.gridy = 0;
455 448
		gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
456 449
		gridBagConstraints.weightx = 1.0;
457
		gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
450
		gridBagConstraints.weighty = 1.0;
451
		gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
458 452
		add(jPanSource, gridBagConstraints);
459 453

  
460 454
		jPanFields.setLayout(new java.awt.GridBagLayout());
......
467 461

  
468 462
		jListFieldList
469 463
				.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
470
		jListFieldList.addMouseListener(new MouseListener() {
471
			public void mouseClicked(MouseEvent e) {
472
			}
473

  
474
			public void mouseEntered(MouseEvent e) {
475
			}
476

  
477
			public void mouseExited(MouseEvent e) {
478
			}
479

  
480
			public void mousePressed(MouseEvent e) {
481
				selectedField = jListFieldList.getSelectedIndex();
482
			}
483

  
484
			public void mouseReleased(MouseEvent e) {
485
			}
486
		});
487
		jListFieldList
488
				.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
489
					public void valueChanged(
490
							javax.swing.event.ListSelectionEvent evt) {
491
						jListFieldListValueChanged(evt);
492
					}
493
				});
464
		jListFieldList.addMouseListener(this);
465
		jListFieldList.addListSelectionListener(this);
494 466
		jScrollPaneFieldList.setViewportView(jListFieldList);
495

  
496 467
		gridBagConstraints = new java.awt.GridBagConstraints();
497 468
		gridBagConstraints.gridx = 0;
498 469
		gridBagConstraints.gridy = 0;
......
507 478
		jButAddField.setMargin(new java.awt.Insets(5, 5, 5, 5));
508 479
		jButAddField.setMaximumSize(new java.awt.Dimension(30, 30));
509 480
		jButAddField.setMinimumSize(new java.awt.Dimension(30, 30));
510
		jButAddField.addActionListener(new java.awt.event.ActionListener() {
511
			public void actionPerformed(java.awt.event.ActionEvent evt) {
512
				ActionButtonAddField(evt);
513
			}
514
		});
481
		jButAddField.addActionListener(this);
515 482
		gridBagConstraints = new java.awt.GridBagConstraints();
516 483
		gridBagConstraints.gridx = 1;
517 484
		gridBagConstraints.gridy = 2;
518 485
		gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTH;
519 486
		gridBagConstraints.weighty = 1.0;
520
		gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
487
		gridBagConstraints.insets = new java.awt.Insets(0, 2, 5, 2);
521 488
		jPanFieldList.add(jButAddField, gridBagConstraints);
522 489

  
523 490
		jButRemoveField.setBorderPainted(false);
524 491
		jButRemoveField.setMargin(new java.awt.Insets(5, 5, 5, 5));
525 492
		jButRemoveField.setMaximumSize(new java.awt.Dimension(30, 30));
526
		jButRemoveField.addActionListener(new java.awt.event.ActionListener() {
527
			public void actionPerformed(java.awt.event.ActionEvent evt) {
528
				ActionButtonRemove(evt);
529
			}
530
		});
493
		jButRemoveField.addActionListener(this);
531 494
		gridBagConstraints = new java.awt.GridBagConstraints();
532 495
		gridBagConstraints.gridx = 1;
533 496
		gridBagConstraints.gridy = 3;
534 497
		gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
535
		gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
498
		gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2);
536 499
		jPanFieldList.add(jButRemoveField, gridBagConstraints);
537 500

  
538 501
		jButUpField.setForeground(java.awt.SystemColor.activeCaptionBorder);
539

  
540 502
		jButUpField.setBorderPainted(false);
541 503
		jButUpField.setMargin(new java.awt.Insets(5, 5, 5, 5));
542 504
		jButUpField.setMaximumSize(new java.awt.Dimension(30, 30));
543
		jButUpField.addActionListener(new java.awt.event.ActionListener() {
544
			public void actionPerformed(java.awt.event.ActionEvent evt) {
545
				ActionButtonUp(evt);
546
			}
547
		});
505
		jButUpField.addActionListener(this);
548 506
		gridBagConstraints = new java.awt.GridBagConstraints();
549 507
		gridBagConstraints.gridx = 1;
550 508
		gridBagConstraints.gridy = 0;
551 509
		gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTH;
552
		gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 5);
510
		gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2);
553 511
		jPanFieldList.add(jButUpField, gridBagConstraints);
554 512

  
555 513
		jButDownField.setBorderPainted(false);
556 514
		jButDownField.setMargin(new java.awt.Insets(5, 5, 5, 5));
557 515
		jButDownField.setMaximumSize(new java.awt.Dimension(30, 30));
558 516
		jButDownField.setMinimumSize(new java.awt.Dimension(30, 30));
559
		jButDownField.addActionListener(new java.awt.event.ActionListener() {
560
			public void actionPerformed(java.awt.event.ActionEvent evt) {
561
				ActionButtonDown(evt);
562
			}
563
		});
517
		jButDownField.addActionListener(this);
564 518
		gridBagConstraints = new java.awt.GridBagConstraints();
565 519
		gridBagConstraints.gridx = 1;
566 520
		gridBagConstraints.gridy = 1;
567 521
		gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
568 522
		gridBagConstraints.weighty = 1.0;
569
		gridBagConstraints.insets = new java.awt.Insets(5, 5, 0, 5);
523
		gridBagConstraints.insets = new java.awt.Insets(5, 2, 0, 2);
570 524
		jPanFieldList.add(jButDownField, gridBagConstraints);
571 525

  
572 526
		gridBagConstraints = new java.awt.GridBagConstraints();
......
588 542
		jRadioString.setSelected(true);
589 543
		jRadioString.setText("String");
590 544
		jRadioString.setAlignmentY(1.0F);
591
		jRadioString.addActionListener(new java.awt.event.ActionListener() {
592
			public void actionPerformed(java.awt.event.ActionEvent evt) {
593
				updateStringType(evt);
594
			}
595
		});
545
		jRadioString.addActionListener(this);
596 546
		gridBagConstraints = new java.awt.GridBagConstraints();
597 547
		gridBagConstraints.gridx = 0;
598 548
		gridBagConstraints.gridy = 0;
599 549
		gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
600
		gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
550
		gridBagConstraints.insets = new java.awt.Insets(0, 3, 5, 3);
601 551
		jPanFieldType.add(jRadioString, gridBagConstraints);
602 552

  
603 553
		butGroupFieldType.add(jRadioInteger);
604 554
		jRadioInteger.setText("Integer");
605
		jRadioInteger.addActionListener(new java.awt.event.ActionListener() {
606
			public void actionPerformed(java.awt.event.ActionEvent evt) {
607
				updateIntegerType(evt);
608
			}
609
		});
555
		jRadioInteger.addActionListener(this);
610 556
		gridBagConstraints = new java.awt.GridBagConstraints();
611 557
		gridBagConstraints.gridx = 0;
612 558
		gridBagConstraints.gridy = 1;
613 559
		gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
614 560
		gridBagConstraints.weighty = 1.0;
615
		gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
561
		gridBagConstraints.insets = new java.awt.Insets(0, 3, 5, 3);
616 562
		jPanFieldType.add(jRadioInteger, gridBagConstraints);
617 563

  
618 564
		butGroupFieldType.add(jRadioDecimal);
619 565
		jRadioDecimal.setText("Decimal");
620
		jRadioDecimal.addActionListener(new java.awt.event.ActionListener() {
621
			public void actionPerformed(java.awt.event.ActionEvent evt) {
622
				updateDecimalType(evt);
623
			}
624
		});
566
		jRadioDecimal.addActionListener(this);
625 567
		gridBagConstraints = new java.awt.GridBagConstraints();
626 568
		gridBagConstraints.gridx = 0;
627 569
		gridBagConstraints.gridy = 2;
628 570
		gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
629
		gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
571
		gridBagConstraints.insets = new java.awt.Insets(0, 3, 5, 3);
630 572
		jPanFieldType.add(jRadioDecimal, gridBagConstraints);
631 573

  
632 574
		butGroupFieldType.add(jRadioDate);
633 575
		jRadioDate.setText("Date");
634
		jRadioDate.addItemListener(new java.awt.event.ItemListener() {
635
			public void itemStateChanged(java.awt.event.ItemEvent evt) {
636
				dateStateChanged(evt);
637
			}
638
		});
576
		jRadioDate.addItemListener(this);
639 577
		gridBagConstraints = new java.awt.GridBagConstraints();
640 578
		gridBagConstraints.gridx = 0;
641 579
		gridBagConstraints.gridy = 3;
642 580
		gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
643 581
		gridBagConstraints.weighty = 1.0;
644
		gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
582
		gridBagConstraints.insets = new java.awt.Insets(0, 3, 5, 3);
645 583
		jPanFieldType.add(jRadioDate, gridBagConstraints);
646 584

  
647 585
		jComboDate.setEditable(true);
......
649 587
				"dd/MM/yy", "dd/MM/yyyy", "MM/dd/yyyy", "yyyy/MM/dd",
650 588
				"yy/MM/dd" }));
651 589
		jComboDate.setEnabled(false);
652
		jComboDate.addActionListener(new java.awt.event.ActionListener() {
653
			public void actionPerformed(java.awt.event.ActionEvent evt) {
654
				ActionListDateFormat(evt);
655
			}
656
		});
590
		jComboDate.addActionListener(this);
657 591
		gridBagConstraints = new java.awt.GridBagConstraints();
658 592
		gridBagConstraints.gridx = 0;
659 593
		gridBagConstraints.gridy = 4;
660 594
		gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
661 595
		gridBagConstraints.weightx = 1.0;
662 596
		gridBagConstraints.weighty = 1.0;
663
		gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
597
		gridBagConstraints.insets = new java.awt.Insets(0, 3, 5, 3);
664 598
		jPanFieldType.add(jComboDate, gridBagConstraints);
665 599

  
666 600
		gridBagConstraints = new java.awt.GridBagConstraints();
......
681 615
		jPanFieldSeparators.setLayout(new java.awt.GridBagLayout());
682 616

  
683 617
		jChkTab.setText("Tab");
684
		jChkTab.addActionListener(new java.awt.event.ActionListener() {
685
			public void actionPerformed(java.awt.event.ActionEvent evt) {
686
				ActionTab(evt);
687
			}
688
		});
618
		jChkTab.addActionListener(this);
689 619
		gridBagConstraints = new java.awt.GridBagConstraints();
690 620
		gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
691 621
		jPanFieldSeparators.add(jChkTab, gridBagConstraints);
692 622

  
693 623
		jChkSpace.setText("Space");
694
		jChkSpace.addActionListener(new java.awt.event.ActionListener() {
695
			public void actionPerformed(java.awt.event.ActionEvent evt) {
696
				ActionSpace(evt);
697
			}
698
		});
624
		jChkSpace.addActionListener(this);
699 625
		gridBagConstraints = new java.awt.GridBagConstraints();
700 626
		gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
701 627
		jPanFieldSeparators.add(jChkSpace, gridBagConstraints);
702 628

  
703
		jChkColon.setText("Colon");
704
		jChkColon.addActionListener(new java.awt.event.ActionListener() {
705
			public void actionPerformed(java.awt.event.ActionEvent evt) {
706
				ActionColon(evt);
707
			}
708
		});
629
		jChkComma.setText("Comma");
630
		jChkComma.addActionListener(this);
709 631
		gridBagConstraints = new java.awt.GridBagConstraints();
710 632
		gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
711
		jPanFieldSeparators.add(jChkColon, gridBagConstraints);
633
		jPanFieldSeparators.add(jChkComma, gridBagConstraints);
712 634

  
713 635
		jChkSemicolon.setText("Semicolon");
714
		jChkSemicolon.addActionListener(new java.awt.event.ActionListener() {
715
			public void actionPerformed(java.awt.event.ActionEvent evt) {
716
				ActionSemicolon(evt);
717
			}
718
		});
636
		jChkSemicolon.addActionListener(this);
719 637
		gridBagConstraints = new java.awt.GridBagConstraints();
720 638
		gridBagConstraints.gridy = 1;
721 639
		gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
722 640
		jPanFieldSeparators.add(jChkSemicolon, gridBagConstraints);
723 641

  
724 642
		jChkOther.setText("Other");
725
		jChkOther.addActionListener(new java.awt.event.ActionListener() {
726
			public void actionPerformed(java.awt.event.ActionEvent evt) {
727
				enableOtherText(evt);
728
			}
729
		});
643
		jChkOther.addActionListener(this);
730 644
		gridBagConstraints = new java.awt.GridBagConstraints();
731 645
		gridBagConstraints.gridy = 1;
732 646
		gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
......
735 649
		jTextOther.setEditable(false);
736 650
		jTextOther.setMinimumSize(new java.awt.Dimension(30, 20));
737 651
		jTextOther.setPreferredSize(new java.awt.Dimension(30, 20));
738
		jTextOther.addActionListener(new java.awt.event.ActionListener() {
739
			public void actionPerformed(java.awt.event.ActionEvent evt) {
740
				ActionTextOther(evt);
741
			}
742
		});
652
		jTextOther.addActionListener(this);
743 653
		gridBagConstraints = new java.awt.GridBagConstraints();
744 654
		gridBagConstraints.gridy = 1;
745 655
		gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
746 656
		jPanFieldSeparators.add(jTextOther, gridBagConstraints);
747 657

  
748 658
		jChkJoin.setText("Join consecutive delimiters ");
749
		jChkJoin.addActionListener(new java.awt.event.ActionListener() {
750
			public void actionPerformed(java.awt.event.ActionEvent evt) {
751
				ActionJoinSep(evt);
752
			}
753
		});
659
		jChkJoin.addActionListener(this);
754 660
		gridBagConstraints = new java.awt.GridBagConstraints();
755 661
		gridBagConstraints.gridx = 0;
756 662
		gridBagConstraints.gridy = 3;
......
770 676

  
771 677
		butGroupDelimiter.add(jRadioFixed);
772 678
		jRadioFixed.setText("Fixed width");
773
		jRadioFixed.addActionListener(new java.awt.event.ActionListener() {
774
			public void actionPerformed(java.awt.event.ActionEvent evt) {
775
				fixedWidthEnable(evt);
776
			}
777
		});
679
		jRadioFixed.addActionListener(this);
778 680
		gridBagConstraints = new java.awt.GridBagConstraints();
779 681
		gridBagConstraints.gridx = 1;
780 682
		gridBagConstraints.gridy = 0;
......
784 686
		butGroupDelimiter.add(jRadioCharacter);
785 687
		jRadioCharacter.setSelected(true);
786 688
		jRadioCharacter.setText("Character");
787
		jRadioCharacter.addActionListener(new java.awt.event.ActionListener() {
788
			public void actionPerformed(java.awt.event.ActionEvent evt) {
789
				charDelimitedEnable(evt);
790
			}
791
		});
689
		jRadioCharacter.addActionListener(this);
792 690
		gridBagConstraints = new java.awt.GridBagConstraints();
793 691
		gridBagConstraints.gridx = 0;
794 692
		gridBagConstraints.gridy = 0;
......
800 698
		jTextFieldWidth.setInputVerifier(new IntVerifier());
801 699
		jTextFieldWidth.setMinimumSize(new java.awt.Dimension(40, 20));
802 700
		jTextFieldWidth.setPreferredSize(new java.awt.Dimension(40, 20));
803
		jTextFieldWidth.addKeyListener(new KeyListener() {
804
			public void keyPressed(KeyEvent evt) {
805
			}
806

  
807
			public void keyTyped(KeyEvent evt) {
808
			}
809

  
810
			public void keyReleased(KeyEvent e) {
811
				ActionTextFixedWidth(e);
812
			}
813
		});
701
		jTextFieldWidth.addKeyListener(this);
814 702
		gridBagConstraints = new java.awt.GridBagConstraints();
815 703
		gridBagConstraints.gridx = 2;
816 704
		gridBagConstraints.gridy = 0;
......
827 715
		jPanFieldName.setLayout(new java.awt.GridBagLayout());
828 716

  
829 717
		jChkDontImport.setText("Don't import");
830
		jChkDontImport.addActionListener(new java.awt.event.ActionListener() {
831
			public void actionPerformed(java.awt.event.ActionEvent evt) {
832
				ActionDontImport(evt);
833
			}
834
		});
718
		jChkDontImport.addActionListener(this);
835 719
		gridBagConstraints = new java.awt.GridBagConstraints();
836 720
		gridBagConstraints.gridx = 3;
837 721
		gridBagConstraints.insets = new java.awt.Insets(5, 15, 5, 5);
......
847 731
		jTextFieldName.setText("Field1");
848 732
		jTextFieldName.setMinimumSize(new java.awt.Dimension(100, 20));
849 733
		jTextFieldName.setPreferredSize(new java.awt.Dimension(100, 20));
850
		jTextFieldName.addKeyListener(new KeyListener() {
851
			public void keyPressed(KeyEvent e) {
852
			}
853

  
854
			public void keyReleased(KeyEvent e) {
855
				KeyChangesFieldName(e);
856
			}
857

  
858
			public void keyTyped(KeyEvent e) {
859
			}
860
		});
734
		jTextFieldName.addKeyListener(this);
861 735
		gridBagConstraints = new java.awt.GridBagConstraints();
862 736
		gridBagConstraints.gridx = 1;
863 737
		gridBagConstraints.gridy = 0;
......
879 753
		jPanApply.setLayout(new java.awt.GridBagLayout());
880 754

  
881 755
		jButSave.setText("Save");
882
		jButSave.addActionListener(new java.awt.event.ActionListener() {
883
			public void actionPerformed(java.awt.event.ActionEvent evt) {
884
				jButSaveActionPerformed(evt);
885
			}
886
		});
756
		jButSave.setEnabled(false);
757
		jButSave.addActionListener(this);
887 758
		gridBagConstraints = new java.awt.GridBagConstraints();
888 759
		gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
889
		gridBagConstraints.insets = new java.awt.Insets(5, 5, 0, 5);
760
		gridBagConstraints.insets = new java.awt.Insets(3, 3, 0, 3);
890 761
		gridBagConstraints.gridx = 0;
891 762
		gridBagConstraints.gridy = 0;
892 763
		jPanApply.add(jButSave, gridBagConstraints);
893 764

  
894 765
		jButLoad.setText("Load");
895
		jButLoad.addActionListener(new java.awt.event.ActionListener() {
896
			public void actionPerformed(java.awt.event.ActionEvent evt) {
897
				jButLoadActionPerformed(evt);
898
			}
899
		});
766
		jButLoad.setEnabled(false);
767
		jButLoad.addActionListener(this);
900 768
		gridBagConstraints = new java.awt.GridBagConstraints();
901 769
		gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
902
		gridBagConstraints.insets = new java.awt.Insets(5, 5, 0, 5);
770
		gridBagConstraints.insets = new java.awt.Insets(3, 3, 0, 3);
903 771
		gridBagConstraints.gridx = 0;
904 772
		gridBagConstraints.gridy = 1;
905 773
		jPanApply.add(jButLoad, gridBagConstraints);
906 774

  
907 775
		jButTest.setText("Test");
908
		jButTest.addActionListener(new java.awt.event.ActionListener() {
909
			public void actionPerformed(java.awt.event.ActionEvent evt) {
910
				testNormalizer(evt);
911
			}
912
		});
776
		jButTest.addActionListener(this);
913 777
		gridBagConstraints = new java.awt.GridBagConstraints();
914 778
		gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
915
		gridBagConstraints.insets = new java.awt.Insets(5, 5, 0, 5);
779
		gridBagConstraints.insets = new java.awt.Insets(3, 3, 0, 3);
916 780
		gridBagConstraints.gridx = 0;
917 781
		gridBagConstraints.gridy = 2;
918 782
		jPanApply.add(jButTest, gridBagConstraints);
......
938 802
		gridBagConstraints = new java.awt.GridBagConstraints();
939 803
		gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
940 804
		gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
941
		gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 15);
805
		gridBagConstraints.insets = new java.awt.Insets(5, 3, 0, 10);
942 806
		jPanInField.add(jLabDecimal, gridBagConstraints);
943 807

  
944 808
		jTextDecimal.setText(".");
945 809
		jTextDecimal.setInputVerifier(new CharVerifier());
946 810
		jTextDecimal.setMinimumSize(new java.awt.Dimension(30, 20));
947 811
		jTextDecimal.setPreferredSize(new java.awt.Dimension(30, 20));
948
		jTextDecimal.addFocusListener(new java.awt.event.FocusAdapter() {
949
			public void focusLost(java.awt.event.FocusEvent evt) {
950
				ActionDecimal(evt);
951
			}
952
		});
812
		jTextDecimal.addFocusListener(this);
953 813
		gridBagConstraints = new java.awt.GridBagConstraints();
954 814
		gridBagConstraints.gridx = 1;
955 815
		gridBagConstraints.gridy = 0;
956 816
		gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
957
		gridBagConstraints.insets = new java.awt.Insets(5, 0, 5, 5);
817
		gridBagConstraints.insets = new java.awt.Insets(5, 0, 0, 3);
958 818
		jPanInField.add(jTextDecimal, gridBagConstraints);
959 819

  
960 820
		jLabThousand.setText("Thousand");
......
963 823
		gridBagConstraints.gridy = 1;
964 824
		gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
965 825
		gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
966
		gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 15);
826
		gridBagConstraints.insets = new java.awt.Insets(5, 3, 0, 10);
967 827
		jPanInField.add(jLabThousand, gridBagConstraints);
968 828

  
969 829
		jTextThousand.setText(null);
970 830
		jTextThousand.setPreferredSize(new java.awt.Dimension(30, 20));
971
		jTextThousand.addFocusListener(new java.awt.event.FocusAdapter() {
972
			public void focusLost(java.awt.event.FocusEvent evt) {
973
				ActionThousand(evt);
974
			}
975
		});
831
		jTextThousand.addFocusListener(this);
976 832
		gridBagConstraints = new java.awt.GridBagConstraints();
977 833
		gridBagConstraints.gridx = 1;
978 834
		gridBagConstraints.gridy = 1;
979 835
		gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
980
		gridBagConstraints.insets = new java.awt.Insets(5, 0, 5, 5);
836
		gridBagConstraints.insets = new java.awt.Insets(5, 0, 0, 3);
981 837
		jPanInField.add(jTextThousand, gridBagConstraints);
982 838

  
983 839
		jLabTextDel.setText("Text:");
......
986 842
		gridBagConstraints.gridy = 2;
987 843
		gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
988 844
		gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
989
		gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 15);
845
		gridBagConstraints.insets = new java.awt.Insets(5, 3, 0, 10);
990 846
		jPanInField.add(jLabTextDel, gridBagConstraints);
991 847

  
992 848
		jTextTextDelimiter.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
993 849
		jTextTextDelimiter.setText("\"");
994 850
		jTextTextDelimiter.setPreferredSize(new java.awt.Dimension(30, 20));
995
		jTextTextDelimiter.addFocusListener(new java.awt.event.FocusAdapter() {
996
			public void focusLost(java.awt.event.FocusEvent evt) {
997
				ActionTextText(evt);
998
			}
999
		});
851
		jTextTextDelimiter.addFocusListener(this);
1000 852
		gridBagConstraints = new java.awt.GridBagConstraints();
1001 853
		gridBagConstraints.gridx = 1;
1002 854
		gridBagConstraints.gridy = 2;
1003 855
		gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
1004
		gridBagConstraints.insets = new java.awt.Insets(5, 0, 5, 5);
856
		gridBagConstraints.insets = new java.awt.Insets(5, 0, 5, 3);
1005 857
		jPanInField.add(jTextTextDelimiter, gridBagConstraints);
1006 858

  
1007 859
		gridBagConstraints = new java.awt.GridBagConstraints();
......
1020 872
		gridBagConstraints.gridx = 0;
1021 873
		gridBagConstraints.gridy = 1;
1022 874
		gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
1023
		gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
875
		gridBagConstraints.insets = new java.awt.Insets(0, 3, 3, 3);
1024 876
		add(jPanFields, gridBagConstraints);
1025

  
1026 877
	}
1027 878

  
1028
	// *****************************************
1029
	// PANEL EVENTS
1030

  
1031 879
	/**
1032
	 * This method runs when check FirstRow is selected or deselected
1033
	 * 
1034
	 * @param evt
880
	 * This method updates panel labels (Internationalization)
1035 881
	 */
1036
	private void EvCheckFirstRow(java.awt.event.ActionEvent evt) {
1037
		/* DON'T Normalize the first rows */
1038
		if (jCheckFirstRow.isSelected()) {
1039
			jTextNumberRows.setText("1");
1040
			jTextNumberRows.setEditable(true);
1041
			controller
1042
					.setFirstRows(Integer.parseInt(jTextNumberRows.getText()));
1043
			this.jTextNumberRows.requestFocus();
1044
			DefaultTableModel model = controller.getSamplesDataStore(controller.getFirstRows());
1045
			jTableSource.setModel(model);
1046
		}
1047
		/* Normalize the first rows */
1048
		else {
1049
			jTextNumberRows.setText("0");
1050
			jTextNumberRows.setEditable(false);
1051
			controller.setFirstRows(0);
1052
			DefaultTableModel model = controller.getSamplesDataStore(controller.getFirstRows());
1053
			jTableSource.setModel(model);
1054
		}
1055
	}
882
	private void setMessages() {
1056 883

  
1057
	/**
1058
	 * This method runs when textField is modify
1059
	 * 
1060
	 */
1061
	private void firstRowsvalueChange() {
1062
		try {
1063
			controller
1064
					.setFirstRows(Integer.parseInt(jTextNumberRows.getText()));
1065
			controller.getSamplesFromFile(controller.getFirstRows());
1066
			jTableSource.setModel(getSourceData());
1067
			jTableSource.validate();
1068
		} catch (Exception e) {
1069
			jTextNumberRows.requestFocus();
1070
		}
1071
	}
884
		PluginServices ps = PluginServices.getPluginServices(this);
1072 885

  
1073
	/**
1074
	 * This method runs when check Don't Import is selected or deselected
1075
	 * 
1076
	 * @param evt
1077
	 */
1078
	private void ActionDontImport(java.awt.event.ActionEvent evt) {
1079
		setDirty(true);
1080
	}
886
		this.setName(ps.getText("normtitle"));
887
		jPanSource.setBorder(BorderFactory.createTitledBorder(ps
888
				.getText("normsource")));
889
		jLabelField.setText(ps.getText("selfield"));
890
		jLabelFieldType.setText(ps.getText("normselectFieldType"));
891
		jCheckFirstRow.setText(ps.getText("normfirstrows"));
892
		jLabelNumberRows.setText(ps.getText("normfirstnumberrows"));
1081 893

  
1082
	/**
1083
	 * This method runs when combo Date Format has changed
1084
	 * 
1085
	 * @param evt
1086
	 */
1087
	private void ActionListDateFormat(java.awt.event.ActionEvent evt) {
1088
		setDirty(true);
1089
	}
894
		jPanFieldList.setBorder(BorderFactory.createTitledBorder(ps
895
				.getText("normfields")));
1090 896

  
1091
	/**
1092
	 * This method runs when text fixed width has changed
1093
	 * 
1094
	 * @param evt
1095
	 */
1096
	private void ActionTextFixedWidth(java.awt.event.KeyEvent evt) {
897
		jPanFieldSettings.setBorder(BorderFactory.createTitledBorder(ps
898
				.getText("normfieldsettings")));
899
		jLabFieldName.setText(ps.getText("normfieldname"));
900
		jChkDontImport.setText(ps.getText("normdontimport"));
1097 901

  
1098
		boolean vali = new IntVerifier().verify(jTextFieldWidth);
1099
		if (vali) {
1100
			setDirty(true);
1101
		} else {
1102
			jTextFieldWidth.setText("1");
1103
			setDirty(true);
1104
		}
1105
	}
902
		jPanFieldType.setBorder(BorderFactory.createTitledBorder(ps
903
				.getText("normfieldtype")));
904
		jRadioString.setText(ps.getText("normfieldstring"));
905
		jRadioInteger.setText(ps.getText("normfieldinteger"));
906
		jRadioDecimal.setText(ps.getText("normfielddecimal"));
907
		jRadioDate.setText(ps.getText("normfielddate"));
1106 908

  
1107
	/**
1108
	 * This method runs when check TAB is selected or deselected
1109
	 * 
1110
	 * @param evt
1111
	 */
1112
	private void ActionTab(java.awt.event.ActionEvent evt) {
1113
		setDirty(true);
1114
	}
909
		jPanSeparators.setBorder(BorderFactory.createTitledBorder(ps
910
				.getText("normdelimetersnext")));
911
		jRadioCharacter.setText(ps.getText("normcharacter"));
912
		jRadioFixed.setText(ps.getText("normfixedwidth"));
1115 913

  
1116
	/**
1117
	 * This method runs when check SPACE is selected or deselected
1118
	 * 
1119
	 * @param evt
1120
	 */
1121
	private void ActionSpace(java.awt.event.ActionEvent evt) {
1122
		setDirty(true);
1123
	}
914
		jPanFieldSeparators.setBorder(BorderFactory.createTitledBorder(ps
915
				.getText("normfieldseparators")));
916
		jChkTab.setText(ps.getText("normtab"));
917
		jChkSpace.setText(ps.getText("normspace"));
918
		jChkComma.setText(ps.getText("normcolon"));
919
		jChkSemicolon.setText(ps.getText("normsemicolon"));
920
		jChkOther.setText(ps.getText("normother"));
921
		jChkJoin.setText(ps.getText("normjoin"));
1124 922

  
1125
	/**
1126
	 * This method runs when check COLON is selected or deselected
1127
	 * 
1128
	 * @param evt
1129
	 */
1130
	private void ActionColon(java.awt.event.ActionEvent evt) {
1131
		setDirty(true);
1132
	}
923
		jPanInField.setBorder(BorderFactory.createTitledBorder(ps
924
				.getText("norminfieldseparators")));
925
		jLabDecimal.setText(ps.getText("normdecimal"));
926
		jLabThousand.setText(ps.getText("normthousand"));
927
		jLabTextDel.setText(ps.getText("normtextdelimiter"));
1133 928

  
1134
	/**
1135
	 * This method runs when check SEMICOLON is selected or deselected
1136
	 * 
1137
	 * @param evt
1138
	 */
1139
	private void ActionSemicolon(java.awt.event.ActionEvent evt) {
1140
		setDirty(true);
1141
	}
929
		jButTest.setText(ps.getText("normtest"));
1142 930

  
1143
	/**
1144
	 * This method runs when text Other has changed
1145
	 * 
1146
	 * @param evt
1147
	 */
1148
	private void ActionTextOther(java.awt.event.ActionEvent evt) {
1149
		setDirty(true);
1150
	}
931
		jPanSampleOutput.setBorder(BorderFactory.createTitledBorder(ps
932
				.getText("normsampleout")));
1151 933

  
1152
	/**
1153
	 * This method runs when text Decimal has changed
1154
	 * 
1155
	 * @param evt
1156
	 */
1157
	private void ActionDecimal(java.awt.event.FocusEvent evt) {
1158
		setDirty(true);
1159
	}
934
		jPanOutputOpt.setBorder(BorderFactory.createTitledBorder(ps
935
				.getText("normoutputopt")));
936
		jRadioAlterTable.setText(ps.getText("normaltertable"));
937
		jRadioNewTable.setText(ps.getText("normnewtable"));
938
		jLabelSelFields.setText(ps.getText("normjoinfield"));
1160 939

  
1161
	/**
1162
	 * This method runs when text Thousand has changed
1163
	 * 
1164
	 * @param evt
1165
	 */
1166
	private void ActionThousand(java.awt.event.FocusEvent evt) {
1167
		setDirty(true);
940
		jButLoad.setText(ps.getText("normload"));
941
		jButSave.setText(ps.getText("normsave"));
1168 942
	}
1169 943

  
1170 944
	/**
1171
	 * This method runs when text Text has changed
1172
	 * 
1173
	 * @param evt
945
	 * This method updates the images (Icons)
1174 946
	 */
1175
	private void ActionTextText(java.awt.event.FocusEvent evt) {
1176
		setDirty(true);
1177
	}
947
	private void setImages() {
1178 948

  
1179
	/**
1180
	 * This method runs when Field Name has changed
1181
	 * 
1182
	 * @param evt
1183
	 */
1184
	private void KeyChangesFieldName(KeyEvent evt) {
1185
		// log.debug("#Key Pressed Field name# :" + this.selectedField);
1186
		int pos = this.selectedField;
1187
		updateFieldToModel(pos);
1188
		updateGUI();
1189
		setDirty(false);
1190
	}
949
		PluginServices ps = PluginServices.getPluginServices(this);
1191 950

  
1192
	/**
1193
	 * 
1194
	 * @param evt
1195
	 */
1196
	private void mainPanelGetFocus(java.awt.event.FocusEvent evt) {
1197
		jTableSource.setModel(getSourceData());
1198
	}
951
		String bDir = ps.getClassLoader().getBaseDir();
1199 952

  
1200
	/**
1201
	 * This method runs when check Join Separators is selected or deselected
1202
	 * 
1203
	 * @param evt
1204
	 */
1205
	private void ActionJoinSep(java.awt.event.ActionEvent evt) {
1206
		setDirty(true);
953
		jButUpField.setIcon(new ImageIcon(bDir + File.separator + "images"
954
				+ File.separator + "icons16" + File.separator + "go-up.png"));
955
		jButDownField.setIcon(new ImageIcon(bDir + File.separator + "images"
956
				+ File.separator + "icons16" + File.separator + "go-down.png"));
957
		jButAddField
958
				.setIcon(new ImageIcon(bDir + File.separator + "images"
959
						+ File.separator + "icons16" + File.separator
960
						+ "list-add.png"));
961
		jButRemoveField.setIcon(new ImageIcon(bDir + File.separator + "images"
962
				+ File.separator + "icons16" + File.separator
963
				+ "list-remove.png"));
1207 964
	}
1208 965

  
1209 966
	/**
1210
	 * This method runs when check fixed width is selected or deselected
1211
	 * 
1212
	 * @param evt
967
	 * This method saves a Normalization pattern to XML file *
1213 968
	 */
1214
	private void fixedWidthEnable(java.awt.event.ActionEvent evt) {
1215
		this.jTextFieldWidth.setEditable(true);
1216
		Component[] comps = this.jPanFieldSeparators.getComponents();
1217
		for (int i = 0; i < comps.length; i++) {
1218
			comps[i].setEnabled(false);
1219
		}
1220
		this.jTextFieldWidth.requestFocus();
1221
		setDirty(true);
1222
	}
969
	private void savePatternXML() {
1223 970

  
1224
	/**
1225
	 * This method runs when radio character delimiters is selected or
1226
	 * deselected
1227
	 * 
1228
	 * @param evt
1229
	 */
1230
	private void charDelimitedEnable(java.awt.event.ActionEvent evt) {
1231
		this.jTextFieldWidth.setEditable(false);
1232
		Component[] comps = this.jPanFieldSeparators.getComponents();
1233
		for (int i = 0; i < comps.length; i++) {
1234
			comps[i].setEnabled(true);
1235
		}
1236
		setDirty(true);
1237
	}
971
		JFileChooser jfc = new JFileChooser();
972
		jfc.setDialogTitle(PluginServices.getText(this, "save_norm_pattern"));
973
		String[] extensions = { "xml" };
974
		jfc.setCurrentDirectory(new File(getFolderPattern()));
975
		jfc.addChoosableFileFilter(new GenericFileFilter(extensions,
976
				PluginServices.getText(this, "pattern_norm_file")));
977
		int returnval = jfc.showSaveDialog((Component) PluginServices
978
				.getMainFrame());
1238 979

  
1239
	/**
1240
	 * This method runs when radio Field Date is selected or deselected
1241
	 * 
1242
	 * @param evt
1243
	 */
1244
	private void dateStateChanged(java.awt.event.ItemEvent evt) {
1245
		updateSelectors();
1246
		boolean enable = this.jRadioDate.isSelected();
1247
		this.jComboDate.setEnabled(enable);
1248
		if (enable) {
1249
			this.jComboDate.requestFocus();
1250
		}
1251
		setDirty(true);
1252
	}
1253

  
1254
	/**
1255
	 * This method runs when Testing button is pressed
1256
	 * 
1257
	 * @param evt
1258
	 */
1259
	private void testNormalizer(java.awt.event.ActionEvent evt) {
1260
		/* Save elements */
1261
		if (isDirty()) {
1262
			updateFieldToModel(jListFieldList.getSelectedIndex());
1263
		}
1264
		/* Normalize */
1265
		Object[][] data = this.controller.normalizeSamples();
1266
		String[] nam = this.controller.getNewFieldNames();
1267
		jTableResult.setModel(new DefaultTableModel(data, nam));
1268
	}
1269

  
1270
	/**
1271
	 * This method runs when check OTHER TEXT is selected or deselected
1272
	 * 
1273
	 * @param evt
1274
	 */
1275
	private void enableOtherText(java.awt.event.ActionEvent evt) {
1276
		this.jTextOther.setEditable(this.jChkOther.isSelected());
1277
		if (this.jChkOther.isSelected()) {
1278
			jTextOther.requestFocus();
1279
		}
1280
		setDirty(true);
1281
	}
1282

  
1283
	/**
1284
	 * This method runs when Normalization button is pressed
1285
	 * 
1286
	 * @param evt
1287
	 */
1288
	private void runNormalizer(java.awt.event.ActionEvent evt) {
1289

  
1290
		/* Save the pattern */
1291
		if (isDirty()) {
1292
			updateFieldToModel(this.selectedField);
1293
		}
1294
		/* Get the relate fields of the list */
1295
		if (!isFile) {
1296
			String[] nam = null;
1297
			Object[] names = jListOriginalFields.getSelectedValues();
1298

  
1299
			/* select all fields */
1300
			if (jListOriginalFields.getSelectedIndex() == 1) {
1301

  
1302
				nam = this.controller.getFieldNamesMainTable();
980
		if (returnval == JFileChooser.APPROVE_OPTION) {
981
			File thefile = jfc.getSelectedFile();
982
			// Check if the file has extension .xml
983
			if (!(thefile.getPath().toLowerCase().endsWith(".xml"))) {
984
				thefile = new File(thefile.getPath() + ".xml");
1303 985
			}
1304
			/* fields selected */
1305
			if (jListOriginalFields.getSelectedIndex() != 0
1306
					&& jListOriginalFields.getSelectedIndex() != 1) {
986
			try {
987
				// the file exists
988
				if (thefile.exists()) {
1307 989

  
1308
				nam = new String[names.length];
1309
				for (int i = 0; i < names.length; i++) {
1310
					nam[i] = (String) names[i];
990
					int n = JOptionPane.showConfirmDialog(null, PluginServices
991
							.getText(null, "file_exists"), PluginServices
992
							.getText(null, "save_norm_pattern"),
993
							JOptionPane.YES_NO_OPTION);
994
					if (n == JOptionPane.YES_OPTION) {
995
						writeSaveFile(thefile);
996
					}
1311 997
				}
998
				// the file not exists
999
				else {
1000
					writeSaveFile(thefile);
1001
				}
1002
			} catch (Exception e) {
1003
				log.error("Error saving the pattern", e);
1312 1004
			}
1313
			this.controller.setNameRelateFields(nam);
1314 1005
		}
1315
		/* RUN */
1316
		this.controller.runModel(this);
1317

  
1318 1006
	}
1319 1007

  
1320 1008
	/**
1321
	 * Update the type
1322
	 * 
1323
	 * @param evt
1324
	 */
1325
	private void updateStringType(java.awt.event.ActionEvent evt) {
1326
		updateSelectors();
1327
		setDirty(true);
1328
	}
1329

  
1330
	/**
1331
	 * Update the type
1332
	 * 
1333
	 * @param evt
1334
	 */
1335
	private void updateIntegerType(java.awt.event.ActionEvent evt) {
1336
		updateSelectors();
1337
		setDirty(true);
1338
	}
1339

  
1340
	/**
1341
	 * Update the type
1342
	 * 
1343
	 * @param evt
1344
	 */
1345
	private void updateDecimalType(java.awt.event.ActionEvent evt) {
1346
		updateSelectors();
1347
		setDirty(true);
1348
	}
1349

  
1350
	/**
1351
	 * This method runs when UP button is pressed
1352
	 * 
1353
	 * @param evt
1354
	 */
1355
	private void ActionButtonUp(java.awt.event.ActionEvent evt) {
1356
		// log.debug("#Up# Old selected field: " + this.selectedField);
1357
		int pos = this.selectedField;
1358
		updateFieldToModel(pos);
1359
		setDirty(false);
1360

  
1361
		this.controller.fieldUp(pos);
1362
		DefaultListModel dlm = this.updateListModel();
1363
		jListFieldList.setModel(dlm);
1364
		if (pos > 0 && dlm.getSize() > 1) {
1365
			this.selectedField = pos - 1;
1366
			jListFieldList.setSelectedIndex(pos - 1);
1367
		} else {
1368
			this.selectedField = pos;
1369
			jListFieldList.setSelectedIndex(pos);
1370
		}
1371
	}
1372

  
1373
	/**
1374
	 * This method runs when ADD button is pressed
1375
	 * 
1376
	 * @param evt
1377
	 */
1378
	private void ActionButtonAddField(java.awt.event.ActionEvent evt) {
1379
		// log.debug("#Add# Old selected field: " + this.selectedField);
1380
		int pos = this.selectedField;
1381
		updateFieldToModel(pos);
1382
		setDirty(false);
1383

  
1384
		controller.addField();
1385
		DefaultListModel dlm = this.updateListModel();
1386
		int siz = dlm.size();
1387
		this.selectedField = siz - 1;
1388
		jListFieldList.setModel(dlm);
1389
		jListFieldList.setSelectedIndex(siz - 1);
1390
		jTextOther.setEditable(false);
1391
	}
1392

  
1393
	/**
1394
	 * This method runs when REMOVE button is pressed
1395
	 * 
1396
	 * @param evt
1397
	 */
1398
	private void ActionButtonRemove(java.awt.event.ActionEvent evt) {
1399
		int siz = jListFieldList.getModel().getSize();
1400
		// log.debug("#Remove# Old selected field: " + this.selectedField);
1401
		int pos = this.selectedField;
1402
		if (siz > 0) {
1403
			updateFieldToModel(pos);
1404
			setDirty(false);
1405
			controller.deleteField(pos);
1406
			DefaultListModel dlm = this.updateListModel();
1407
			if (pos > 0) {
1408
				this.selectedField = pos - 1;
1409
				jListFieldList.setModel(dlm);
1410
				jListFieldList.setSelectedIndex(pos - 1);
1411
			} else {
1412
				this.selectedField = pos;
1413
				jListFieldList.setModel(dlm);
1414
				jListFieldList.setSelectedIndex(pos);
1415
			}
1416
		}
1417
	}
1418

  
1419
	/**
1420
	 * This method runs when DOWN button is pressed
1421
	 * 
1422
	 * @param evt
1423
	 */
1424
	private void ActionButtonDown(java.awt.event.ActionEvent evt) {
1425
		// log.debug("#Down# Ols selected field: " + this.selectedField);
1426
		int pos = this.selectedField;
1427
		updateFieldToModel(pos);
1428
		setDirty(false);
1429

  
1430
		controller.fieldDown(pos);
1431
		DefaultListModel dlm = this.updateListModel();
1432
		jListFieldList.removeAll();
1433
		jListFieldList.setModel(dlm);
1434
		int can = dlm.getSize();
1435
		if (pos < can - 1 && can > 1) {
1436
			this.selectedField = pos + 1;
1437
			jListFieldList.setSelectedIndex(pos + 1);
1438
		} else {
1439
			jListFieldList.setSelectedIndex(pos);
1440
		}
1441
	}
1442

  
1443
	/**
1444
	 * When press the Load pattern button
1445
	 * 
1446
	 * @param evt
1447
	 */
1448
	private void jButLoadActionPerformed(java.awt.event.ActionEvent evt) {
1449
		// log.debug("#Load# Selected field: " + this.selectedField);
1450
		/* update the model from the view */
1451
		updateFieldToModel(this.selectedField);
1452
		setDirty(false);
1453

  
1454
		/* load the model from xml file */
1455
		Patternnormalization pat = controller.loadPatternXML();
1456

  
1457
		/* update the panel */
1458
		if (pat != null) {
1459
			/* save pattern in the model */
1460
			controller.setPattern(pat);
1461

  
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff