Revision 37887 branches/v2_0_0_prep/libraries/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/exportto/swing/impl/DefaultExporttoSwingProviderManager.java
DefaultExporttoSwingProviderManager.java | ||
---|---|---|
22 | 22 |
package org.gvsig.exportto.swing.impl; |
23 | 23 |
|
24 | 24 |
import java.util.ArrayList; |
25 |
import java.util.HashMap; |
|
25 | 26 |
import java.util.Iterator; |
26 | 27 |
import java.util.List; |
28 |
import java.util.Map; |
|
27 | 29 |
|
28 | 30 |
import org.cresques.cts.IProjection; |
29 | 31 |
import org.slf4j.Logger; |
30 | 32 |
import org.slf4j.LoggerFactory; |
31 | 33 |
|
34 |
import org.gvsig.exportto.swing.impl.preferences.DefaultExporttoPreferencesComponent; |
|
35 |
import org.gvsig.exportto.swing.preferences.ExporttoSwingPreferencesComponent; |
|
32 | 36 |
import org.gvsig.exportto.swing.spi.ExporttoSwingProvider; |
33 | 37 |
import org.gvsig.exportto.swing.spi.ExporttoSwingProviderFactory; |
34 | 38 |
import org.gvsig.exportto.swing.spi.ExporttoSwingProviderManager; |
35 | 39 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
36 |
import org.gvsig.i18n.Messages; |
|
37 | 40 |
import org.gvsig.tools.ToolsLocator; |
38 | 41 |
import org.gvsig.tools.dynobject.DynObject; |
39 | 42 |
import org.gvsig.tools.dynobject.exception.DynFieldNotFoundException; |
... | ... | |
65 | 68 |
private static final String PARAMETER_FEATURESTORE = "FeatureStore"; |
66 | 69 |
private static final String PARAMETER_PROJECTION = "Projection"; |
67 | 70 |
|
71 |
private Map<ExporttoSwingProviderFactory, Boolean> providerStatus; |
|
72 |
|
|
68 | 73 |
public DefaultExporttoSwingProviderManager() { |
69 | 74 |
super(); |
75 |
providerStatus = new HashMap<ExporttoSwingProviderFactory, Boolean>(); |
|
70 | 76 |
} |
71 | 77 |
|
72 | 78 |
public ProviderServices createProviderServices(Service service) { |
... | ... | |
125 | 131 |
return providers; |
126 | 132 |
} |
127 | 133 |
|
134 |
public List<ExporttoSwingProviderFactory> getProviderFactories() { |
|
135 |
return getProviderFactories(null); |
|
136 |
} |
|
137 |
|
|
138 |
public List<ExporttoSwingProviderFactory> getProviderFactories( |
|
139 |
int[] providerTypes) { |
|
140 |
ExtensionPointManager extensionPointManager = |
|
141 |
ToolsLocator.getExtensionPointManager(); |
|
142 |
ExtensionPoint extensionPoint = |
|
143 |
extensionPointManager.get(this.getRegistryKey()); |
|
144 |
List<ExporttoSwingProviderFactory> providers = |
|
145 |
new ArrayList<ExporttoSwingProviderFactory>(); |
|
146 |
if (extensionPoint != null) { |
|
147 |
@SuppressWarnings("unchecked") |
|
148 |
Iterator<Extension> it = extensionPoint.iterator(); |
|
149 |
while (it.hasNext()) { |
|
150 |
Extension extension = it.next(); |
|
151 |
try { |
|
152 |
ExporttoSwingProviderFactory exporttoSwingProviderFactory = |
|
153 |
(ExporttoSwingProviderFactory) extension.create(); |
|
154 |
if (providerTypes == null || providerTypes.length == 0) { |
|
155 |
providers.add(exporttoSwingProviderFactory); |
|
156 |
} else { |
|
157 |
boolean areSupported = true; |
|
158 |
for (int i = 0; i < providerTypes.length; i++) { |
|
159 |
if (!exporttoSwingProviderFactory |
|
160 |
.support(providerTypes[i])) { |
|
161 |
areSupported = false; |
|
162 |
break; |
|
163 |
} |
|
164 |
} |
|
165 |
if (areSupported) { |
|
166 |
providers.add(exporttoSwingProviderFactory); |
|
167 |
} |
|
168 |
} |
|
169 |
} catch (InstantiationException e) { |
|
170 |
LOG.error( |
|
171 |
"Not possible to create the exportto provider factory", |
|
172 |
e); |
|
173 |
} catch (IllegalAccessException e) { |
|
174 |
LOG.error( |
|
175 |
"Not possible to create the exportto provider factory", |
|
176 |
e); |
|
177 |
} catch (ServiceException e) { |
|
178 |
LOG.error( |
|
179 |
"Not possible to check if the provider support a format", |
|
180 |
e); |
|
181 |
} |
|
182 |
} |
|
183 |
} |
|
184 |
return providers; |
|
185 |
} |
|
186 |
|
|
128 | 187 |
protected String getRegistryDescription() { |
129 | 188 |
return PROVIDERS_DESCRIPTION; |
130 | 189 |
} |
... | ... | |
188 | 247 |
} |
189 | 248 |
|
190 | 249 |
public String getDescription(String providerName) { |
191 |
if (providerName == null) { |
|
192 |
return Messages.getText("exporer_to"); |
|
193 |
} |
|
194 |
ExtensionPointManager extensionPointManager = |
|
195 |
ToolsLocator.getExtensionPointManager(); |
|
196 |
ExtensionPoint extensionPoint = |
|
197 |
extensionPointManager.get(this.getRegistryKey()); |
|
198 | 250 |
try { |
199 |
Object object = extensionPoint.create(providerName); |
|
200 |
if (object != null) { |
|
201 |
return Messages.getText(((ExporttoSwingProviderFactory) object) |
|
202 |
.getDescription()); |
|
203 |
} |
|
204 |
} catch (InstantiationException e) { |
|
205 |
LOG.error("Not possible to get the exportto provider factory", e); |
|
206 |
} catch (IllegalAccessException e) { |
|
207 |
LOG.error("Not possible to get the exportto provider factory", e); |
|
251 |
return getExporttoSwingProviderFactory(providerName) |
|
252 |
.getDescription(); |
|
253 |
} catch (ServiceException e) { |
|
254 |
throw new RuntimeException(e); |
|
208 | 255 |
} |
209 |
return Messages.getText("exporer_to_format", |
|
210 |
new String[] { providerName }); |
|
211 | 256 |
} |
257 |
|
|
258 |
public boolean isProviderEnabled(ExporttoSwingProviderFactory factory) { |
|
259 |
Boolean status = providerStatus.get(factory); |
|
260 |
return status == null ? true : status.booleanValue(); |
|
261 |
} |
|
262 |
|
|
263 |
public void enableProvider(ExporttoSwingProviderFactory factory, boolean value) { |
|
264 |
providerStatus.put(factory, Boolean.valueOf(value)); |
|
265 |
} |
|
266 |
|
|
267 |
public ExporttoSwingProviderFactory getExporttoSwingProviderFactory( |
|
268 |
String name) throws ServiceException { |
|
269 |
return (ExporttoSwingProviderFactory) getProviderFactory(name); |
|
270 |
} |
|
271 |
|
|
272 |
public ExporttoSwingPreferencesComponent createExporttoSwingProvidersPreferences() { |
|
273 |
return new DefaultExporttoPreferencesComponent(); |
|
274 |
} |
|
212 | 275 |
} |
Also available in: Unified diff