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

History | View | Annotate | Download (5.74 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.ExporttoJDBCOptions;
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 ExporttoJDBCOptions 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(ExporttoJDBCOptions 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
        this.rdbCheckNone.setSelected(true);
71
        this.translate();
72
    }
73
    
74
    private void translate() {
75
        I18nManager i18nManager = ToolsLocator.getI18nManager();
76
                    
77
        this.lblHeader.setText("<html>"+i18nManager.getTranslation("_check_geometries_before_export_header")+"</html>");
78
        this.rdbCheckNone.setText(i18nManager.getTranslation("_No_realizar_ninguna_comprobacion_sobre_las_geometrias"));
79
        this.rdbCheckIsCorrupt.setText(i18nManager.getTranslation("_Comprobar_que_la_geometria_no_este_corrupta"));
80
        this.rdbCheckIsValid.setText(i18nManager.getTranslation("_Comprobar_la_validez_de_las_geometrias_antes_de_insertarlas"));
81
        this.lblCheckIsCorrupt.setText(i18nManager.getTranslation("_Cuando_la_geometria_este_corrupta"));
82
        this.lblCheckIsvalid.setText(i18nManager.getTranslation("_Cuando_la_geometria_no_sea_valida"));
83
        this.chkTryFixGeometry.setText(i18nManager.getTranslation("_Intentar_reparar_la_geometria"));
84
    }
85
    
86
    public String getPanelTitle() {
87
        I18nManager i18nManager = ToolsLocator.getI18nManager();
88
        return i18nManager.getTranslation("_check_geometries_before_export");    
89
    }
90

    
91
    public boolean isValidPanel() throws ExporttoPanelValidationException {
92
        return true;
93
    }
94
    
95
    public void enterPanel() {
96
        // Default do nothing
97
    }
98
    
99
    public JComponent asJComponent() {
100
        return this;
101
    }
102

    
103
    public int getGeometryChecks() {
104
        if( this.rdbCheckIsCorrupt.isSelected() ) {
105
            return ExporrtoJDBCService.CHECK_IF_CORRUPT;
106
        } else if( this.rdbCheckIsValid.isSelected()) {
107
            return ExporrtoJDBCService.CHECK_IF_VALID;
108
        } else {
109
            return ExporrtoJDBCService.CHECK_NONE;
110
        }
111
    }
112

    
113
    public int getGeometryChecksAction() {
114
        try {
115
            if( this.rdbCheckIsCorrupt.isSelected() ) {
116
                CheckAction checkAction = (CheckAction)(this.cboActionIsCorrupt.getSelectedItem());
117
                return checkAction.getCode();
118
            } else if( this.rdbCheckIsValid.isSelected()) {
119
                CheckAction checkAction = (CheckAction)(this.cboActionIsValid.getSelectedItem());
120
                return checkAction.getCode();
121
            } else {
122
                return ExporrtoJDBCService.ACTION_ABORT;
123
            }
124
        } catch(Exception ex) {
125
            logger.warn("Can't get action for geometry check in export to JDBC.",ex);
126
            return ExporrtoJDBCService.ACTION_ABORT;
127
        }
128
    }
129

    
130
    public boolean getTryToFixGeometry() {
131
        return this.chkTryFixGeometry.isSelected();
132
    }
133
    
134
    private void onChangeRadioButtons() {
135
        if( this.rdbCheckNone.isSelected() ) {
136
            this.cboActionIsCorrupt.setEnabled(false);
137
            this.cboActionIsValid.setEnabled(false);
138
            this.chkTryFixGeometry.setEnabled(false);
139
        } else if( this.rdbCheckIsCorrupt.isSelected() ) {
140
            this.cboActionIsCorrupt.setEnabled(true);
141
            this.cboActionIsValid.setEnabled(false);
142
            this.chkTryFixGeometry.setEnabled(false);
143
        } else if( this.rdbCheckIsValid.isSelected()) {
144
            this.cboActionIsCorrupt.setEnabled(false);
145
            this.cboActionIsValid.setEnabled(true);
146
            this.chkTryFixGeometry.setEnabled(true);
147
        }
148
    }
149
}