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

View differences:

NormalizationPanel.java
28 28
package org.gvsig.normalization.gui;
29 29

  
30 30
import java.awt.Component;
31
import java.awt.event.*;
31
import java.awt.event.ActionEvent;
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;
37
import java.awt.event.KeyEvent;
38
import java.awt.event.KeyListener;
39
import java.awt.event.MouseEvent;
40
import java.awt.event.MouseListener;
32 41
import java.io.File;
33
import java.io.FileInputStream;
34
import java.io.FileOutputStream;
35
import java.io.IOException;
36 42
import java.text.DecimalFormatSymbols;
37
import java.util.*;
43
import java.util.ArrayList;
44
import java.util.Iterator;
45
import java.util.List;
46
import java.util.Locale;
38 47

  
39
import javax.swing.*;
40
import javax.swing.event.*;
41
import javax.swing.table.*;
48
import javax.swing.BorderFactory;
49
import javax.swing.ButtonGroup;
50
import javax.swing.DefaultComboBoxModel;
51
import javax.swing.DefaultListModel;
52
import javax.swing.ImageIcon;
53
import javax.swing.InputVerifier;
54
import javax.swing.JButton;
55
import javax.swing.JCheckBox;
56
import javax.swing.JComboBox;
57
import javax.swing.JComponent;
58
import javax.swing.JFileChooser;
59
import javax.swing.JLabel;
60
import javax.swing.JList;
61
import javax.swing.JOptionPane;
62
import javax.swing.JPanel;
63
import javax.swing.JRadioButton;
64
import javax.swing.JScrollPane;
65
import javax.swing.JTable;
66
import javax.swing.JTextField;
67
import javax.swing.ListModel;
68
import javax.swing.event.ChangeEvent;
69
import javax.swing.event.ChangeListener;
70
import javax.swing.event.ListSelectionEvent;
71
import javax.swing.event.ListSelectionListener;
72
import javax.swing.table.DefaultTableModel;
73
import javax.swing.table.TableColumn;
74
import javax.swing.table.TableModel;
42 75

  
43 76
import org.gvsig.andami.PluginServices;
44 77
import org.gvsig.app.daltransform.gui.components.impl.FeatureTypeAttributesCombo;
......
50 83
import org.gvsig.fmap.dal.feature.FeatureStore;
51 84
import org.gvsig.normalization.algorithm.NormalizationAlgorithm;
52 85
import org.gvsig.normalization.algorithm.impl.DefaultNormalizationAlgorithm;
53
import org.gvsig.normalization.pattern.*;
54
import org.gvsig.normalization.pattern.impl.*;
55
import org.gvsig.tools.ToolsLocator;
56
import org.gvsig.tools.persistence.PersistenceException;
57
import org.gvsig.tools.persistence.PersistenceManager;
58
import org.gvsig.tools.persistence.PersistenceValidateExceptions;
59
import org.gvsig.tools.persistence.PersistentState;
86
import org.gvsig.normalization.pattern.Datevalue;
87
import org.gvsig.normalization.pattern.Decimalvalue;
88
import org.gvsig.normalization.pattern.Element;
89
import org.gvsig.normalization.pattern.Fieldseparator;
90
import org.gvsig.normalization.pattern.Fieldtype;
91
import org.gvsig.normalization.pattern.Infieldseparators;
92
import org.gvsig.normalization.pattern.Integervalue;
93
import org.gvsig.normalization.pattern.NormalizationPattern;
94
import org.gvsig.normalization.pattern.Stringvalue;
95
import org.gvsig.normalization.pattern.impl.DefaultDatevalue;
96
import org.gvsig.normalization.pattern.impl.DefaultDecimalvalue;
97
import org.gvsig.normalization.pattern.impl.DefaultElement;
98
import org.gvsig.normalization.pattern.impl.DefaultFieldseparator;
99
import org.gvsig.normalization.pattern.impl.DefaultFieldtype;
100
import org.gvsig.normalization.pattern.impl.DefaultInfieldseparators;
101
import org.gvsig.normalization.pattern.impl.DefaultIntegervalue;
102
import org.gvsig.normalization.pattern.impl.DefaultNormalizationPattern;
103
import org.gvsig.normalization.pattern.impl.DefaultStringvalue;
60 104
import org.gvsig.utils.GenericFileFilter;
61 105
import org.gvsig.utils.XMLEntity;
62 106
import org.slf4j.Logger;
......
86 130
	private boolean dirty = false;
87 131
	private int selectedField = 0;
88 132

  
133
	private String preFieldName;
134

  
89 135
	private String oldNumRows;
90 136

  
91 137
	/* ATTRIBUTES GUI */
......
241 287

  
242 288
		setMinimumSize(new java.awt.Dimension(WIDTH, HEIGHT));
243 289
		setPreferredSize(new java.awt.Dimension(WIDTH, HEIGHT));
244
		
290

  
245 291
		addFocusListener(this);
246 292
		setLayout(new java.awt.GridBagLayout());
247 293

  
......
939 985
							.getText(null, "save_norm_pattern"),
940 986
							JOptionPane.YES_NO_OPTION);
941 987
					if (n == JOptionPane.YES_OPTION) {
942
						writeSaveFile(thefile);
988
						pattern.setPatternname(thefile.getName());
989
						((DefaultNormalizationPattern) pattern)
990
								.loadFromXML(thefile);
943 991
					}
944 992
				}
945 993
				// the file not exists
946 994
				else {
947
					writeSaveFile(thefile);
995
					pattern.setPatternname(thefile.getName());
996
					((DefaultNormalizationPattern) pattern)
997
							.loadFromXML(thefile);
948 998
				}
949 999
			} catch (Exception e) {
950 1000
				log.error("Error saving the pattern", e);
......
1309 1359
	 */
1310 1360
	private NormalizationPattern loadPatternXML() {
1311 1361

  
1312
		PersistenceManager manager = ToolsLocator.getPersistenceManager();
1313 1362
		NormalizationPattern pat = new DefaultNormalizationPattern();
1314 1363
		File thefile = null;
1315 1364
		// Show the FileChooser to select a pattern
......
1328 1377
		} else {
1329 1378
			return null;
1330 1379
		}
1331

  
1332
		FileInputStream in = null;
1333
		PersistentState state = null;
1334 1380
		try {
1335
			in = new FileInputStream(thefile);
1336
			state = manager.loadState(in);
1337
			pat.loadFromState(state);
1338
			in.close();
1381
			((DefaultNormalizationPattern) pat).loadFromXML(thefile);
1339 1382
		} catch (Exception e) {
1340 1383
			log.error("Error loading the pattern", e);
1341 1384
			return null;
......
1373 1416
	 * @return field name formatted
1374 1417
	 */
1375 1418
	private String validateFieldName(String text) {
1376
	    text = text.replaceAll("[????]","e");
1377
	    text = text.replaceAll("[??]","u");
1378
	    text = text.replaceAll("[??]","i");
1379
	    text = text.replaceAll("[??]","a");
1380
	    text = text.replaceAll("?","o");
1419
		text = text.replaceAll("[????]", "e");
1420
		text = text.replaceAll("[??]", "u");
1421
		text = text.replaceAll("[??]", "i");
1422
		text = text.replaceAll("[??]", "a");
1423
		text = text.replaceAll("?", "o");
1381 1424

  
1382
	    text = text.replaceAll("[????]","E");
1383
	    text = text.replaceAll("[??]","U");
1384
	    text = text.replaceAll("[??]","I");
1385
	    text = text.replaceAll("[??]","A");
1386
	    text = text.replaceAll("?","O");
1387
	    
1388
	    text = text.replaceAll("[^\\p{ASCII}]", "");
1389
	    text = text.replaceAll("[\\s]+", "_");
1390
	    text = text.toUpperCase();
1425
		text = text.replaceAll("[????]", "E");
1426
		text = text.replaceAll("[??]", "U");
1427
		text = text.replaceAll("[??]", "I");
1428
		text = text.replaceAll("[??]", "A");
1429
		text = text.replaceAll("?", "O");
1430

  
1431
		text = text.replaceAll("[^\\p{ASCII}]", "");
1432
		text = text.replaceAll("[\\s]+", "_");
1433
		text = text.toUpperCase();
1391 1434
		return text;
1392 1435
	}
1393 1436

  
......
1405 1448
	}
1406 1449

  
1407 1450
	/**
1408
	 * This method write the save xml file
1409
	 * 
1410
	 * @param file
1411
	 * @throws IOException
1412
	 * @throws PersistenceException
1413
	 * @throws PersistenceValidateExceptions
1414
	 */
1415
	private void writeSaveFile(File thefile) throws IOException,
1416
			PersistenceException, PersistenceValidateExceptions {
1417
		PersistenceManager manager = ToolsLocator.getPersistenceManager();
1418
		pattern.setPatternname(thefile.getName());
1419
		FileOutputStream out = new FileOutputStream(thefile);
1420
		PersistentState state = manager.getState(pattern);
1421
		manager.saveState(state, out);
1422
		out.close();
1423
	}
1424

  
1425
	/**
1426 1451
	 * This method generates and returns in field separators
1427 1452
	 * 
1428 1453
	 * @return special characters within one string
......
1590 1615
		}
1591 1616
		// (jTextFieldName)
1592 1617
		if ((ev.getSource() == jTextFieldName)) {
1593
			int pos = this.selectedField;
1594
			updateFieldToModel(pos);
1595
			refreshFieldsList();
1596
			dirty = false;
1618

  
1619
			String tx = jTextFieldName.getText();
1620
			if (tx.length() < 1) {
1621
				jTextFieldName.setText(preFieldName);
1622
			} else {
1623

  
1624
				boolean pass = true;
1625
				String[] values = { "!", "\"", "#", "$", "%", "&", "\'", "(",
1626
						")", "*", "+", ",", "-", "/", ";", "<", "=", ">", "?",
1627
						"@", "[", "]", "^", "?", "`", "}", "{", "~" };
1628

  
1629
				char c = ev.getKeyChar();
1630
				String s = c + "";
1631

  
1632
				for (int j = 0; j < values.length; j++) {
1633
					String val = values[j];
1634
					if (s.contains(val)) {
1635
						pass = false;
1636
					}
1637
				}
1638
				if (pass) {
1639
					int pos = this.selectedField;
1640
					updateFieldToModel(pos);
1641
					refreshFieldsList();
1642
					dirty = false;
1643
				} else {
1644
					jTextFieldName.setText(preFieldName);
1645
				}
1646
			}
1647

  
1597 1648
		}
1598 1649

  
1599 1650
	}
......
1602 1653
 * 
1603 1654
 */
1604 1655
	public void keyTyped(KeyEvent ev) {
1605

  
1656
		preFieldName = jTextFieldName.getName();
1606 1657
	}
1607 1658

  
1608 1659
	/**
......
2109 2160
		return sel;
2110 2161
	}
2111 2162

  
2112
//	public java.awt.Dimension getMinimunPanelDimension() {
2113
//		return new java.awt.Dimension(WIDTH, HEIGHT);
2114
//	}
2163
	// public java.awt.Dimension getMinimunPanelDimension() {
2164
	// return new java.awt.Dimension(WIDTH, HEIGHT);
2165
	// }
2115 2166
}

Also available in: Unified diff