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 @ 41638

History | View | Annotate | Download (4.81 KB)

1 41487 jjdelcerro
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 41598 jjdelcerro
import org.gvsig.exportto.swing.prov.jdbc.ExporttoJDBCOptions;
8 41487 jjdelcerro
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 41598 jjdelcerro
    private final ExporttoJDBCOptions provider;
20 41487 jjdelcerro
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 41598 jjdelcerro
    public CheckGeometriesPanel(ExporttoJDBCOptions provider) {
46 41487 jjdelcerro
        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 41492 jjdelcerro
        this.rdbCheckNone.setSelected(true);
71 41487 jjdelcerro
    }
72
73
    public String getPanelTitle() {
74
        I18nManager i18nManager = ToolsLocator.getI18nManager();
75 41638 jjdelcerro
        return i18nManager.getTranslation("check_geometries_before_export");
76
    }
77 41487 jjdelcerro
78
    public boolean isValidPanel() throws ExporttoPanelValidationException {
79
        return true;
80
    }
81 41488 jjdelcerro
82
    public void enterPanel() {
83
        // Default do nothing
84
    }
85
86 41487 jjdelcerro
    public JComponent asJComponent() {
87
        return this;
88
    }
89
90
    public int getGeometryChecks() {
91
        if( this.rdbCheckIsCorrupt.isSelected() ) {
92
            return ExporrtoJDBCService.CHECK_IF_CORRUPT;
93
        } else if( this.rdbCheckIsValid.isSelected()) {
94
            return ExporrtoJDBCService.CHECK_IF_VALID;
95
        } else {
96
            return ExporrtoJDBCService.CHECK_NONE;
97
        }
98
    }
99
100
    public int getGeometryChecksAction() {
101
        try {
102
            if( this.rdbCheckIsCorrupt.isSelected() ) {
103
                CheckAction checkAction = (CheckAction)(this.cboActionIsCorrupt.getSelectedItem());
104
                return checkAction.getCode();
105
            } else if( this.rdbCheckIsValid.isSelected()) {
106
                CheckAction checkAction = (CheckAction)(this.cboActionIsValid.getSelectedItem());
107
                return checkAction.getCode();
108
            } else {
109
                return ExporrtoJDBCService.ACTION_ABORT;
110
            }
111
        } catch(Exception ex) {
112
            logger.warn("Can't get action for geometry check in export to JDBC.",ex);
113
            return ExporrtoJDBCService.ACTION_ABORT;
114
        }
115
    }
116
117 41488 jjdelcerro
    public boolean getTryToFixGeometry() {
118
        return this.chkTryFixGeometry.isSelected();
119
    }
120
121 41487 jjdelcerro
    private void onChangeRadioButtons() {
122
        if( this.rdbCheckNone.isSelected() ) {
123
            this.cboActionIsCorrupt.setEnabled(false);
124
            this.cboActionIsValid.setEnabled(false);
125 41488 jjdelcerro
            this.chkTryFixGeometry.setEnabled(false);
126 41487 jjdelcerro
        } else if( this.rdbCheckIsCorrupt.isSelected() ) {
127
            this.cboActionIsCorrupt.setEnabled(true);
128
            this.cboActionIsValid.setEnabled(false);
129 41488 jjdelcerro
            this.chkTryFixGeometry.setEnabled(false);
130 41487 jjdelcerro
        } else if( this.rdbCheckIsValid.isSelected()) {
131
            this.cboActionIsCorrupt.setEnabled(false);
132
            this.cboActionIsValid.setEnabled(true);
133 41488 jjdelcerro
            this.chkTryFixGeometry.setEnabled(true);
134 41487 jjdelcerro
        }
135
    }
136
}