final WizardDialog wizardDialog = (WizardDialog) getContainer();
IGeoResource resource = data.getResource();
try {
SimpleFeatureSource fs = resource.resolve(SimpleFeatureSource.class, null);
SimpleFeatureCollection fc = fs.getFeatures(data.getQuery());
// TODO: remove from catalog/close layers if open?
SimpleFeatureType schema = fs.getSchema();
if (data.getName() != null) {
SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder();
builder.init(schema);
builder.setName(data.getName());
schema = builder.buildFeatureType();
}
File file = determineDestinationFile(data);
monitor.beginTask("", IProgressMonitor.UNKNOWN); //$NON-NLS-1$
CoordinateReferenceSystem fromCRS = schema.getCoordinateReferenceSystem();
CoordinateReferenceSystem crs = data.getCRS();
MathTransform mt;
if (fromCRS != null && crs != null) {
mt = CRS.findMathTransform(fromCRS, crs, true);
} else {
if (crs != null)
mt = IdentityTransform.create(crs.getCoordinateSystem().getDimension());
else if (fromCRS != null)
mt = IdentityTransform.create(fromCRS.getCoordinateSystem().getDimension());
else
mt = IdentityTransform.create(2);
}
if (isAbstractGeometryType(schema)) {
// possibly multiple geometry types
String geomName = schema.getGeometryDescriptor().getName().getLocalPart();
DefaultFeatureCollection pointCollection = new DefaultFeatureCollection();
DefaultFeatureCollection lineCollection = new DefaultFeatureCollection();
DefaultFeatureCollection polygonCollection = new DefaultFeatureCollection();
SimpleFeatureCollection featureCollection = fs.getFeatures();
FeatureIterator<SimpleFeature> featureIterator = featureCollection.features();
while( featureIterator.hasNext() ) {
SimpleFeature feature = featureIterator.next();
String geometryType = ((Geometry) feature.getDefaultGeometry())
.getGeometryType();