1 |
|
|
2 |
|
package org.gvsig.scripting.app.extension;
|
3 |
|
|
4 |
|
import java.awt.BorderLayout;
|
5 |
|
import java.beans.PropertyChangeListener;
|
6 |
|
import javax.swing.JComponent;
|
7 |
|
import javax.swing.JPanel;
|
8 |
|
import javax.swing.JTabbedPane;
|
9 |
|
import javax.swing.JTable;
|
10 |
|
import org.gvsig.featureform.swing.JFeaturesForm;
|
11 |
|
import org.gvsig.fmap.dal.DALLocator;
|
12 |
|
import org.gvsig.fmap.dal.DataManager;
|
13 |
|
import org.gvsig.fmap.dal.DataStoreParameters;
|
14 |
|
import org.gvsig.fmap.dal.feature.FeatureStore;
|
15 |
|
import org.gvsig.fmap.dal.swing.DALSwingLocator;
|
16 |
|
import org.gvsig.fmap.dal.swing.DataSwingManager;
|
17 |
|
import org.gvsig.fmap.dal.swing.FeatureTableModel;
|
18 |
|
import org.gvsig.fmap.dal.swing.JFeatureTable;
|
19 |
|
import org.gvsig.scripting.ScriptingExternalFile;
|
20 |
|
import org.gvsig.scripting.ScriptingUnit;
|
21 |
|
import org.gvsig.scripting.swing.api.JEditor;
|
22 |
|
import org.slf4j.Logger;
|
23 |
|
import org.slf4j.LoggerFactory;
|
24 |
|
|
25 |
|
|
26 |
|
|
27 |
|
public class JDBFEditor extends JPanel implements JEditor {
|
28 |
|
private static final long serialVersionUID = -6293409837017697628L;
|
29 |
|
private static final Logger logger = LoggerFactory.getLogger(JDBFEditor.class);
|
30 |
|
|
31 |
|
private ScriptingExternalFile unit;
|
32 |
|
private JTabbedPane tabs;
|
33 |
|
private JPanel formpanel;
|
34 |
|
private FeatureStore store;
|
35 |
|
private JPanel tablepanel;
|
36 |
|
private JFeatureTable table;
|
37 |
|
|
38 |
|
|
39 |
|
public JDBFEditor(ScriptingUnit unit) {
|
40 |
|
this.initComponents();
|
41 |
|
this.set(unit);
|
42 |
|
}
|
43 |
|
|
44 |
|
private void initComponents() {
|
45 |
|
DataSwingManager uimanager = DALSwingLocator.getSwingManager();
|
46 |
|
this.tablepanel = new JPanel();
|
47 |
|
this.tablepanel.setLayout(new BorderLayout());
|
48 |
|
this.formpanel = new JPanel();
|
49 |
|
this.formpanel.setLayout(new BorderLayout());
|
50 |
|
this.tabs = new JTabbedPane();
|
51 |
|
this.tabs.setTabPlacement(JTabbedPane.BOTTOM);
|
52 |
|
this.tabs.addTab("Form", formpanel);
|
53 |
|
this.tabs.addTab("Table", tablepanel);
|
54 |
|
this.setLayout(new BorderLayout());
|
55 |
|
this.add(this.tabs,BorderLayout.CENTER);
|
56 |
|
}
|
57 |
|
|
58 |
|
@Override
|
59 |
|
public ScriptingUnit getUnit() {
|
60 |
|
return this.unit;
|
61 |
|
}
|
62 |
|
|
63 |
|
@Override
|
64 |
|
public void addChangeListener(PropertyChangeListener listener) {
|
65 |
|
// Do nothing
|
66 |
|
}
|
67 |
|
|
68 |
|
@Override
|
69 |
|
public void save() {
|
70 |
|
// Do nothing
|
71 |
|
}
|
72 |
|
|
73 |
|
@Override
|
74 |
|
public boolean isModified() {
|
75 |
|
return false;
|
76 |
|
}
|
77 |
|
|
78 |
|
@Override
|
79 |
|
public void set(ScriptingUnit unit) {
|
80 |
|
try {
|
81 |
|
this.unit = (ScriptingExternalFile) unit;
|
82 |
|
DataManager manager = DALLocator.getDataManager();
|
83 |
|
DataSwingManager uimanager = DALSwingLocator.getSwingManager();
|
84 |
|
DataStoreParameters storeParameters = manager.createStoreParameters("DBF");
|
85 |
|
storeParameters.setDynValue("dbffile", this.unit.getExternalFile());
|
86 |
|
this.store = (FeatureStore) manager.openStore("DBF", storeParameters);
|
87 |
|
FeatureTableModel tableModel = uimanager.createFeatureTableModel(this.store, null);
|
88 |
|
this.table = uimanager.createJFeatureTable(tableModel);
|
89 |
|
JFeaturesForm form = uimanager.createJFeaturesForm(store);
|
90 |
|
this.formpanel.removeAll();
|
91 |
|
this.formpanel.add(form.asJComponent(),BorderLayout.CENTER);
|
92 |
|
this.tablepanel.removeAll();
|
93 |
|
this.tablepanel.add(this.table.asJComponent(),BorderLayout.CENTER);
|
94 |
|
} catch (Exception ex) {
|
95 |
|
logger.warn("Can't set unit.",ex);
|
96 |
|
}
|
97 |
|
}
|
98 |
|
|
99 |
|
@Override
|
100 |
|
public void fetch(ScriptingUnit unit) {
|
101 |
|
}
|
102 |
|
|
103 |
|
@Override
|
104 |
|
public JComponent asJComponent() {
|
105 |
|
return this;
|
106 |
|
}
|
107 |
|
|
108 |
|
}
|