Revision 738

View differences:

org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.app/org.gvsig.scripting.app.mainplugin/src/main/java/org/gvsig/scripting/app/extension/DbfEditorFactory.java
1

  
2
package org.gvsig.scripting.app.extension;
3

  
4
import java.io.File;
5
import org.apache.commons.io.FilenameUtils;
6
import org.gvsig.scripting.ScriptingExternalFile;
7
import org.gvsig.scripting.ScriptingUnit;
8
import org.gvsig.scripting.swing.api.AbstractEditorFactory;
9
import org.gvsig.scripting.swing.api.JEditor;
10

  
11

  
12
public class DbfEditorFactory extends AbstractEditorFactory {
13

  
14
    public DbfEditorFactory() {
15
        super("DBFEditor","Editor for dbf file contents");
16
    }
17

  
18
    @Override
19
    public JEditor doCreate(ScriptingUnit unit) {
20
        return new JDBFEditor(unit);
21
    }
22

  
23
    @Override
24
    public boolean canCreate(ScriptingUnit unit) {
25
        if( unit instanceof ScriptingExternalFile ) {
26
            ScriptingExternalFile extern = (ScriptingExternalFile) unit;
27
            File f = extern.getExternalFile();
28
            String extension = FilenameUtils.getExtension(f.getName());
29
            if( "dbf".equalsIgnoreCase(extension) ) {
30
                return true;
31
            }
32
        }
33
        return false;
34
    }
35
    
36
}
org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.app/org.gvsig.scripting.app.mainplugin/src/main/java/org/gvsig/scripting/app/extension/JDBFEditor.java
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
}
org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.app/org.gvsig.scripting.app.mainplugin/src/main/java/org/gvsig/scripting/app/extension/ScriptingExtension.java
236 236
                factory.getName()
237 237
        );
238 238
        
239
        ScriptingSwingLocator.getUIManager().registerEditor(new DbfEditorFactory());
240 239
    }
241 240

  
242 241
    @Override

Also available in: Unified diff