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.csv / src / main / java / org / gvsig / export / csv / swing / panels / CSVExportParametersPanel.java @ 44316

History | View | Annotate | Download (8.11 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 3
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.export.csv.swing.panels;
25

    
26
import javax.swing.DefaultComboBoxModel;
27
import javax.swing.JComponent;
28
import org.gvsig.tools.ToolsLocator;
29
import org.gvsig.tools.dynobject.DynField;
30
import org.gvsig.tools.dynobject.DynObjectValueItem;
31
import org.gvsig.tools.dynobject.DynStruct;
32
import org.gvsig.tools.i18n.I18nManager;
33
import org.gvsig.tools.swing.api.ToolsSwingLocator;
34
import org.gvsig.tools.swing.api.ToolsSwingManager;
35
import org.gvsig.export.ExportParameters;
36
import org.gvsig.export.swing.JExportProcessPanel;
37
import org.gvsig.export.swing.spi.ExportPanel;
38
import org.gvsig.export.swing.spi.ExportPanelValidationException;
39
import org.slf4j.Logger;
40
import org.slf4j.LoggerFactory;
41
import org.gvsig.export.csv.service.ExportCSVParameters;
42

    
43
/**
44
 * @author gvSIG Team
45
 * @version $Id$
46
 *
47
 */
48
public class CSVExportParametersPanel
49
        extends CSVExportParametersPanelView
50
        implements ExportPanel {
51

    
52
    private static final Logger LOG = LoggerFactory.getLogger(CSVExportParametersPanel.class);
53

    
54
    private final ExportCSVParameters parameters;
55
    private final JExportProcessPanel processPanel;
56

    
57
    public CSVExportParametersPanel(JExportProcessPanel processPanel, ExportParameters parameters) {
58
        super();
59
        this.processPanel = processPanel;
60
        this.parameters = (ExportCSVParameters) parameters;
61
        this.initComponents();
62
    }
63

    
64
    class ComboItem {
65

    
66
        private String key;
67
        private String value;
68

    
69
        public ComboItem(String key, String value) {
70
            this.key = key;
71
            this.value = value;
72
        }
73

    
74
        @Override
75
        public String toString() {
76
            return key;
77
        }
78

    
79
        public String getKey() {
80
            return key;
81
        }
82

    
83
        public String getValue() {
84
            return value;
85
        }
86
    }
87

    
88
    private DefaultComboBoxModel fillComboBoxWithAvaibleParameters(String dynFieldValue) {
89
        DynStruct parametersDefinition = ToolsLocator.getPersistenceManager().getDefinition("CSVNewStoreParameters");
90
        DynField dynField = parametersDefinition.getDynField(dynFieldValue);
91

    
92
        DefaultComboBoxModel dcm = new DefaultComboBoxModel();
93
        DynObjectValueItem[] availableValues = dynField.getAvailableValues();
94
        for (DynObjectValueItem availableValue : availableValues) {
95

    
96
            Object item = new ComboItem(availableValue.getLabel(), (String) availableValue.getValue());
97
            dcm.addElement(item);
98
        }
99
        return dcm;
100

    
101
    }
102

    
103
    private void initComponents() {
104
        DynStruct parametersDefinition = ToolsLocator.getPersistenceManager().getDefinition("CSVNewStoreParameters");
105
        this.cmbProfile.setModel(this.fillComboBoxWithAvaibleParameters("profile"));
106
        this.cmbProfile.setSelectedIndex(0);
107

    
108
        this.cmbQuotePolicy.setModel(this.fillComboBoxWithAvaibleParameters("quotePolicy"));
109
        this.cmbQuotePolicy.setSelectedIndex(0);
110

    
111
        this.cmbLocale.setModel(this.fillComboBoxWithAvaibleParameters("locale"));
112
        this.cmbLocale.setSelectedIndex(0);
113

    
114
//        String sourceProviderName = this.parameters.getSourceFeatureStore().getProviderName();
115
//        if (sourceProviderName.equalsIgnoreCase("Shape") || sourceProviderName.equalsIgnoreCase("CSV")) {
116
//            DataStoreParameters params = this.parameters.getSourceFeatureStore().getParameters();
117
//            String encoding = (String) params.getDynValue("Encoding");
118
//            ListElement.setSelected(this.lstEncoding, encoding);
119
//        }
120
        this.translate();
121
    }
122

    
123
    private void translate() {
124
        ToolsSwingManager i18nc = ToolsSwingLocator.getToolsSwingManager();
125
        i18nc.translate(this.lblProfile);
126
        i18nc.translate(this.lblQuotePolicy);
127
        i18nc.translate(this.lblLocale);
128
        i18nc.translate(this.lblRecordSeparator);
129
        i18nc.translate(this.lblDelimiter);
130
        i18nc.translate(this.lblQuoteCharacter);
131
        i18nc.translate(this.lblCommentStartMarker);
132
        i18nc.translate(this.lblEscapeCharacter);
133
        i18nc.translate(this.lblCharset);
134

    
135
    }
136

    
137
    public String getParameterLocale() {
138
        ComboItem item = (ComboItem) this.cmbLocale.getSelectedItem();
139
        if (item == null) {
140
            return null;
141
        }
142
        return item.getValue();
143
    }
144

    
145
    public String getParameterQuotePolicy() {
146
        ComboItem item = (ComboItem) this.cmbQuotePolicy.getSelectedItem();
147
        if (item == null) {
148
            return null;
149
        }
150
        return item.getValue();
151
    }
152

    
153
    public String getParameterProfile() {
154
        ComboItem item = (ComboItem) this.cmbProfile.getSelectedItem();
155
        if (item == null) {
156
            return null;
157
        }
158
        return item.getValue();
159
    }
160

    
161
    public String getParameterRecordSeparator() {
162
        return this.txtRecordSeparator.getText();
163
    }
164

    
165
    public String getParameterDelimiter() {
166
        return this.txtDelimiter.getText();
167
    }
168

    
169
    public String getParameterQuoteCharacter() {
170
        return this.txtQuoteCharacter.getText();
171
    }
172

    
173
    public String getParameterCommentStartMarker() {
174
        return this.txtCommentStartMarker.getText();
175
    }
176

    
177
    public String getParameterEscapeCharacter() {
178
        return this.txtEscapeCharacter.getText();
179
    }
180

    
181
    public String getParameterCharset() {
182
        return this.txtCharset.getText();
183
    }
184

    
185
    @Override
186
    public JComponent asJComponent() {
187
        return this;
188
    }
189

    
190
    @Override
191
    public String getIdPanel() {
192
        return this.getClass().getSimpleName();
193
    }
194

    
195
    @Override
196
    public String getTitlePanel() {
197
        I18nManager i18nManager = ToolsLocator.getI18nManager();
198
        return i18nManager.getTranslation("_Select_encoding");
199
    }
200

    
201
    @Override
202
    public boolean validatePanel() throws ExportPanelValidationException {
203
        return true;
204
    }
205

    
206
    @Override
207
    public void enterPanel() {
208
        this.cmbProfile.getModel().setSelectedItem(this.parameters.getProfile());
209
        this.cmbLocale.getModel().setSelectedItem(this.parameters.getLocale());
210
        this.cmbQuotePolicy.getModel().setSelectedItem(this.parameters.getProfile());
211
        this.txtRecordSeparator.setText(this.parameters.getRecordSeparator());
212
        this.txtDelimiter.setText(this.parameters.getDelimiter());
213
        this.txtQuoteCharacter.setText(this.parameters.getQuoteCharacter());
214
        this.txtCommentStartMarker.setText(this.parameters.getCommentStartMarker());
215
        this.txtEscapeCharacter.setText(this.parameters.getRecordSeparator());
216
        this.txtCharset.setText(this.parameters.getCharset());
217
    }
218

    
219
    @Override
220
    public void previousPanel() {
221

    
222
    }
223

    
224
    @Override
225
    public void nextPanel() {
226
        this.parameters.setProfile(this.getParameterProfile());
227
        this.parameters.setQuotePolicy(this.getParameterQuotePolicy());
228
        this.parameters.setLocale(this.getParameterLocale());
229
        this.parameters.setRecordSeparator(this.getParameterRecordSeparator());
230
        this.parameters.setDelimiter(this.getParameterDelimiter());
231
        this.parameters.setQuoteCharacter(this.getParameterQuoteCharacter());
232
        this.parameters.setCommentStartMarker(this.getParameterCommentStartMarker());
233
        this.parameters.setEscapeCharacter(this.getParameterEscapeCharacter());
234
        this.parameters.setCharset(this.getParameterCharset());
235
    }
236
}