Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.exportto / org.gvsig.exportto.swing / org.gvsig.exportto.swing.prov / org.gvsig.exportto.swing.prov.jdbc / src / main / java / org / gvsig / exportto / swing / prov / jdbc / panel / CheckGeometriesPanel.java @ 41487

History | View | Annotate | Download (4.43 KB)

1
package org.gvsig.exportto.swing.prov.jdbc.panel;
2

    
3
import java.awt.event.ActionEvent;
4
import java.awt.event.ActionListener;
5
import javax.swing.JComponent;
6
import org.gvsig.exportto.swing.prov.jdbc.ExporrtoJDBCService;
7
import org.gvsig.exportto.swing.prov.jdbc.ExporttoJDBCProvider;
8
import org.gvsig.exportto.swing.spi.ExporttoPanelValidationException;
9
import org.gvsig.exportto.swing.spi.ExporttoSwingProviderPanel;
10
import org.gvsig.tools.ToolsLocator;
11
import org.gvsig.tools.i18n.I18nManager;
12
import org.slf4j.Logger;
13
import org.slf4j.LoggerFactory;
14

    
15
public class CheckGeometriesPanel extends CheckGeometriesPanelLayout implements ExporttoSwingProviderPanel {
16

    
17
    private final static Logger logger = LoggerFactory.getLogger(CheckGeometriesPanel.class);
18
    
19
    private final ExporttoJDBCProvider provider;
20
    
21
    private final CheckAction[] checkActions = {
22
        new CheckAction("_Set_geometry_to_null", ExporrtoJDBCService.ACTION_SET_GEOMETRY_TO_NULL),
23
        new CheckAction("_Skip_entire_feature", ExporrtoJDBCService.ACTION_SKIP_FEATURE),
24
        new CheckAction("_Abort_process", ExporrtoJDBCService.ACTION_ABORT)
25
    };
26
    
27
    private static class CheckAction {
28

    
29
        private final String label;
30
        private final int code;
31

    
32
        public CheckAction(String label, int code) {
33
            this.code = code;
34
            this.label = ToolsLocator.getI18nManager().getTranslation(label);
35
        }
36
        @Override
37
        public String toString() {
38
            return this.label;
39
        }
40
        public int getCode() {
41
            return this.code;
42
        }
43
    }
44
        
45
    public CheckGeometriesPanel(ExporttoJDBCProvider provider) {
46
        this.provider = provider;
47
        initComponents();
48
    }
49
    
50
    private void initComponents() {
51
        this.rdbCheckIsCorrupt.addActionListener(new ActionListener() {
52
            public void actionPerformed(ActionEvent e) {
53
               onChangeRadioButtons();
54
            }
55
        });
56
        this.rdbCheckIsValid.addActionListener(new ActionListener() {
57
            public void actionPerformed(ActionEvent e) {
58
               onChangeRadioButtons();
59
            }
60
        });
61
        this.rdbCheckNone.addActionListener(new ActionListener() {
62
            public void actionPerformed(ActionEvent e) {
63
               onChangeRadioButtons();
64
            }
65
        });
66
        for (CheckAction checkAction : checkActions) {
67
            this.cboActionIsCorrupt.addItem(checkAction);
68
            this.cboActionIsValid.addItem(checkAction);            
69
        }
70
    }
71
    
72
    public String getPanelTitle() {
73
        I18nManager i18nManager = ToolsLocator.getI18nManager();
74
        return i18nManager.getTranslation("check_geometries_before_export");    }
75

    
76
    public boolean isValidPanel() throws ExporttoPanelValidationException {
77
        return true;
78
    }
79

    
80
    public JComponent asJComponent() {
81
        return this;
82
    }
83

    
84
    public int getGeometryChecks() {
85
        if( this.rdbCheckIsCorrupt.isSelected() ) {
86
            return ExporrtoJDBCService.CHECK_IF_CORRUPT;
87
        } else if( this.rdbCheckIsValid.isSelected()) {
88
            return ExporrtoJDBCService.CHECK_IF_VALID;
89
        } else {
90
            return ExporrtoJDBCService.CHECK_NONE;
91
        }
92
    }
93

    
94
    public int getGeometryChecksAction() {
95
        try {
96
            if( this.rdbCheckIsCorrupt.isSelected() ) {
97
                CheckAction checkAction = (CheckAction)(this.cboActionIsCorrupt.getSelectedItem());
98
                return checkAction.getCode();
99
            } else if( this.rdbCheckIsValid.isSelected()) {
100
                CheckAction checkAction = (CheckAction)(this.cboActionIsValid.getSelectedItem());
101
                return checkAction.getCode();
102
            } else {
103
                return ExporrtoJDBCService.ACTION_ABORT;
104
            }
105
        } catch(Exception ex) {
106
            logger.warn("Can't get action for geometry check in export to JDBC.",ex);
107
            return ExporrtoJDBCService.ACTION_ABORT;
108
        }
109
    }
110

    
111
    private void onChangeRadioButtons() {
112
        if( this.rdbCheckNone.isSelected() ) {
113
            this.cboActionIsCorrupt.setEnabled(false);
114
            this.cboActionIsValid.setEnabled(false);
115
        } else if( this.rdbCheckIsCorrupt.isSelected() ) {
116
            this.cboActionIsCorrupt.setEnabled(true);
117
            this.cboActionIsValid.setEnabled(false);
118
        } else if( this.rdbCheckIsValid.isSelected()) {
119
            this.cboActionIsCorrupt.setEnabled(false);
120
            this.cboActionIsValid.setEnabled(true);
121
        }
122
    }
123
}