Revision 32327 branches/v2_0_0_prep/extensions/extNormalization/src/org/gvsig/normalization/gui/NormalizationPanel.java
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