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 / service / ExportCSVParametersImpl.java @ 45204

History | View | Annotate | Download (7.4 KB)

1
package org.gvsig.export.csv.service;
2

    
3
import java.io.File;
4
import java.util.List;
5
import java.util.Locale;
6
import org.apache.commons.lang3.StringUtils;
7
import org.gvsig.export.spi.AbstractExportParametersGeometryFile;
8
import org.gvsig.fmap.dal.feature.FeatureType;
9
import org.gvsig.tools.ToolsLocator;
10
import org.gvsig.tools.dynobject.DynStruct;
11
import org.gvsig.tools.persistence.PersistenceManager;
12
import org.gvsig.tools.persistence.PersistentState;
13
import org.gvsig.tools.persistence.exception.PersistenceException;
14
import org.gvsig.tools.util.ListBuilder;
15

    
16
/**
17
 *
18
 * @author jjdelcerro
19
 */
20
public class ExportCSVParametersImpl
21
        extends AbstractExportParametersGeometryFile
22
        implements ExportCSVParameters {
23

    
24
    private String encoding;
25
    private File file;
26
    private String profile;
27
    private String charset;
28
    private String escapeCharacter;
29
    private String commentStartMarker;
30
    private String quoteCharacter;
31
    private String delimiter;
32
    private String recordSeparator;
33
    private String locale;
34
    private String quotePolicy;
35
    private boolean includeMetadataInHeader = true;
36
    private List<String> countriesNorth = ListBuilder.create("es","it","fr", "dl");
37

    
38
    public ExportCSVParametersImpl(ExportCSVServiceFactory factory) {
39
        super(factory);
40
        this.fileHelper.setFileExtension("csv");
41
         Locale defaultLocale = Locale.getDefault();
42
        String countryLocale = defaultLocale.getCountry();
43
        if (countryLocale=="") {
44
            countryLocale = defaultLocale.getLanguage();
45
        }
46
        if  (countriesNorth.contains(countryLocale)) {
47
            this.profile = "EXCEL_NORTH_EUROPE_PREFERENCE";
48
            //todo checkear si la opcion esta disponible
49
//            DynStruct parametersDefinition = ToolsLocator.getPersistenceManager().getDefinition("CSVNewStoreParameters");
50
//            DynField dynField = parametersDefinition.getDynField("profile");
51
//            DynObjectValueItem[] availableValues = dynField.getAvailableValues();
52
//            for (DynObjectValueItem availableValue : availableValues) {
53
//                DynObjectValueItem myvalue = availableValue;
54
//            }
55
        }
56
    }
57

    
58
    public ExportCSVParametersImpl() {
59
        this(null);
60
    }
61

    
62
    @Override
63
    public String getServiceName() {
64
        return ExportCSVServiceFactory.SERVICE_NAME;
65
    }
66

    
67
    @Override
68
    public void setSourceFeatureType(FeatureType sourceFeatureType) {
69
        super.setSourceFeatureType(sourceFeatureType);
70
    }
71

    
72
    @Override
73
    public String getProfile() {
74
        return this.profile;
75
    }
76

    
77
    @Override
78
    public void setProfile(String profile) {
79
        this.profile = profile;
80
    }
81

    
82
    @Override
83
    public String getQuotePolicy() {
84
        return this.quotePolicy;
85
    }
86

    
87
    @Override
88
    public void setQuotePolicy(String quotePolicy) {
89
        this.quotePolicy = quotePolicy;
90
    }
91

    
92
    @Override
93
    public String getLocale() {
94
        return this.locale;
95
    }
96

    
97
    @Override
98
    public void setLocale(String locale) {
99
        this.locale = locale;
100
    }
101

    
102
    @Override
103
    public String getRecordSeparator() {
104
        return this.recordSeparator;
105
    }
106

    
107
    @Override
108
    public void setRecordSeparator(String recordSeparator) {
109
        this.recordSeparator = recordSeparator;
110
    }
111

    
112
    @Override
113
    public String getDelimiter() {
114
        return this.delimiter;
115
    }
116

    
117
    @Override
118
    public void setDelimiter(String delimiter) {
119
        this.delimiter = delimiter;
120
    }
121

    
122
    @Override
123
    public String getQuoteCharacter() {
124
        return this.quoteCharacter;
125
    }
126

    
127
    @Override
128
    public void setQuoteCharacter(String quoteCharacter) {
129
        this.quoteCharacter = quoteCharacter;
130
    }
131

    
132
    @Override
133
    public String getCommentStartMarker() {
134
        return this.commentStartMarker;
135
    }
136

    
137
    @Override
138
    public void setCommentStartMarker(String commentStartMarker) {
139
        this.commentStartMarker = commentStartMarker;
140
    }
141

    
142
    @Override
143
    public String getEscapeCharacter() {
144
        return this.escapeCharacter;
145
    }
146

    
147
    @Override
148
    public void setEscapeCharacter(String escapeCharacer) {
149
        this.escapeCharacter = escapeCharacer;
150
    }
151

    
152
    @Override
153
    public String getCharset() {
154
        return this.charset;
155
    }
156

    
157
    @Override
158
    public void setCharset(String charset) {
159
        this.charset = charset;
160
    }
161

    
162
    @Override
163
    public String toString() {
164
        String label = StringUtils.join(super.getLabel(), ",", this.getProfile());
165
        return label;
166
    }
167

    
168
    public static void registerPersistence() {
169

    
170
        PersistenceManager manager = ToolsLocator.getPersistenceManager();
171
        if (manager.getDefinition("ExportCSVParametersImpl") == null) {
172
            DynStruct definition = manager.addDefinition(ExportCSVParametersImpl.class,
173
                    "ExportCSVParametersImpl", "ExportCSVParametersImpl persistence definition", null, null);
174

    
175
            definition.addDynFieldString("encoding");
176
            definition.addDynFieldFile("file");
177
            definition.addDynFieldString("profile");
178
            definition.addDynFieldString("charset");
179
            definition.addDynFieldString("escapeCharacter");
180
            definition.addDynFieldString("commentStartMarker");
181
            definition.addDynFieldString("quoteCharacter");
182
            definition.addDynFieldString("delimiter");
183
            definition.addDynFieldString("recordSeparator");
184
            definition.addDynFieldString("locale");
185
            definition.addDynFieldString("quotePolicy");
186
            definition.addDynFieldBoolean("includeMetadataInHeader");
187

    
188
            definition.extend(manager.getDefinition("AbstractExportParametersGeometryFile"));
189
        }
190
    }
191

    
192
    @Override
193
    public void saveToState(PersistentState state) throws PersistenceException {
194
        super.saveToState(state);
195
        state.set("encoding", encoding);
196
        state.set("file", file);
197
        state.set("profile", profile);
198
        state.set("charset", charset);
199
        state.set("escapeCharacter", escapeCharacter);
200
        state.set("commentStartMarker", commentStartMarker);
201
        state.set("quoteCharacter", quoteCharacter);
202
        state.set("delimiter", delimiter);
203
        state.set("recordSeparator", recordSeparator);
204
        state.set("locale", locale);
205
        state.set("quotePolicy", quotePolicy);
206
        state.set("includeMetadataInHeader", includeMetadataInHeader);
207
    }
208

    
209
    @Override
210
    public void loadFromState(PersistentState state) throws PersistenceException {
211
        super.loadFromState(state);
212
        this.encoding = state.getString("encoding");
213
        this.file = state.getFile("file");
214
        this.profile = state.getString("profile");
215
        this.charset = state.getString("charset");
216
        this.escapeCharacter = state.getString("escapeCharacter");
217
        this.commentStartMarker = state.getString("commentStartMarker");
218
        this.quoteCharacter = state.getString("quoteCharacter");
219
        this.delimiter = state.getString("delimiter");
220
        this.recordSeparator = state.getString("recordSeparator");
221
        this.locale = state.getString("locale");
222
        this.quotePolicy = state.getString("quotePolicy");
223
        this.includeMetadataInHeader = state.getBoolean("includeMetadataInHeader");
224
    }
225

    
226
    @Override
227
    public boolean getIncludeMetadataInHeader() {
228
        return this.includeMetadataInHeader;
229
    }
230

    
231
    @Override
232
    public void setIncludeMetadataInHeader(boolean includeMetadataInHeader) {
233
        this.includeMetadataInHeader = includeMetadataInHeader;
234
    }
235

    
236
}