Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.file/org.gvsig.fmap.dal.file.dbf/src/main/java/org/gvsig/fmap/dal/store/dbf/DBFLibrary.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.file/org.gvsig.fmap.dal.file.dbf/src/main/java/org/gvsig/fmap/dal/store/dbf/DBFLibrary.java	(revision 43919)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.file/org.gvsig.fmap.dal.file.dbf/src/main/java/org/gvsig/fmap/dal/store/dbf/DBFLibrary.java	(revision 43920)
@@ -66,7 +66,7 @@
 
 	@Override
 	protected void doPostInitialize() throws LibraryException {
-		List<Throwable> exs = new ArrayList<Throwable>();
+		List<Throwable> exs = new ArrayList<>();
 
 		FileHelper.registerParametersDefinition(
 				DBFStoreParameters.PARAMETERS_DEFINITION_NAME,

Property changes on: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.file
___________________________________________________________________
Modified: svn:ignore
   - .project
.classpath
.settings
.settings/**
target
target/**



   + .classpath
target/**
.project
.directory
.settings/**
.settings
target


Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.exportto.app/org.gvsig.exportto.app.mainplugin/src/main/java/org/gvsig/exportto/app/extension/ExporttoTableExtension.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.exportto.app/org.gvsig.exportto.app.mainplugin/src/main/java/org/gvsig/exportto/app/extension/ExporttoTableExtension.java	(revision 43919)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.exportto.app/org.gvsig.exportto.app.mainplugin/src/main/java/org/gvsig/exportto/app/extension/ExporttoTableExtension.java	(revision 43920)
@@ -76,13 +76,12 @@
     private void showExportto(FeatureStore featureStore) {
         I18nManager i18nManager = ToolsLocator.getI18nManager();
         
-        JExporttoServicePanel panel =
-            swingManager
-                .createExportto(
-                    featureStore,
-                    null,
-                    new LoadTableAction(),
-                    new int[] { ExporttoSwingManager.VECTORIAL_TABLE_WITHOUT_GEOMETRY });
+        JExporttoServicePanel panel = swingManager.createExportto(
+            featureStore,
+            null,
+            new LoadTableAction(),
+            null //new int[] { ExporttoSwingManager.VECTORIAL_TABLE_WITHOUT_GEOMETRY, ExporttoSwingManager.VECTORIAL_TABLE_WITH_GEOMETRY }
+        );
 
         swingManager.getWindowManager().showWindow(panel, i18nManager.getTranslation("_Export_to"),
             ExporttoWindowManager.MODE_WINDOW);
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.exportto.app/org.gvsig.exportto.app.mainplugin/src/main/resources-plugin/i18n/text.properties
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.exportto.app/org.gvsig.exportto.app.mainplugin/src/main/resources-plugin/i18n/text.properties	(revision 43919)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.exportto.app/org.gvsig.exportto.app.mainplugin/src/main/resources-plugin/i18n/text.properties	(revision 43920)
@@ -71,4 +71,17 @@
 projection_selected_by_user=Proyecci\u00f3n seleccionada por el usuario
 selected_projection=Proyecci\u00f3n seleccionada
 projection_selector=Selector de proyecciones
-_Trasladar_guiones_en_los_identificadores_a_guion_bajo=Trasladar guiones, "-", en los identificadores a guion-bajo, "_."
\ No newline at end of file
+_Trasladar_guiones_en_los_identificadores_a_guion_bajo=Trasladar guiones, "-", en los identificadores a guion-bajo, "_."
+
+_Selection_of_the_geometry_field=Selecci\u00f3n del campo geometria
+_Use_the_geometry_field_by_default=Usar el campo geometria por defecto
+_Use_null_as_the_value_of_the_geometry=Usar null como valor para las geometrias
+_Select_the_field_to_be_used_as_geometry=Seleccione el campo a usar como geometria
+_Select_target_geometry_type=Seleccionar el tipo de la geometria de destino
+_Type=Tipo
+_Subtype=Subtipo
+_Encoding=Codificaci\u00f3n
+_File=Fichero
+_Select_encoding=Selecci\u00f3n de codificaci\u00f3n
+_Selection_of_geometry_field=Selecci\u00f3n del campo geometria
+
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.exportto.app/org.gvsig.exportto.app.mainplugin/src/main/resources-plugin/i18n/text_en.properties
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.exportto.app/org.gvsig.exportto.app.mainplugin/src/main/resources-plugin/i18n/text_en.properties	(revision 43919)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.exportto.app/org.gvsig.exportto.app.mainplugin/src/main/resources-plugin/i18n/text_en.properties	(revision 43920)
@@ -4,7 +4,7 @@
 _All=All
 _check_geometries_before_export=Check geometries before export
 _check_geometries_before_export_header=Validation of the geometry information
-_Comprobar_la_validez_de_las_geometrias_antes_de_insertarlas=Check the if the geometry if valid
+_Comprobar_la_validez_de_las_geometrias_antes_de_insertarlas=Check the validity of the geometries before inserting them
 _Comprobar_que_la_geometria_no_este_corrupta=Check if the geometry is corrupt
 _Crear_indice_espacial_sobre_las_columnas_de_tipo_geometria=Create a spatial index in the geoetry columns
 _Crear_una_tabla_nueva=Create a new table
@@ -70,4 +70,18 @@
 projection_selected_by_user=Projection selected by user
 selected_projection=Selected projection
 projection_selector=Projection selector
-_Trasladar_guiones_en_los_identificadores_a_guion_bajo=Change hyphens, "-", in identifiers to underscores, "_".
\ No newline at end of file
+_Trasladar_guiones_en_los_identificadores_a_guion_bajo=Change hyphens, "-", in identifiers to underscores, "_".
+
+_Selection_of_the_geometry_field=Selection of the geometry field
+_Use_the_geometry_field_by_default=Use the geometry field by default
+_Use_null_as_the_value_of_the_geometry=Use null as the value of the geometry
+_Select_the_field_to_be_used_as_geometry=Select the field to be used as geometry
+_Select_target_geometry_type=Select target geometry type
+_Type=Type
+_Subtype=Subtype
+_Encoding=Encoding
+_File=File
+_Select_geometry_type=Select geometry type
+_Select_encoding=Select encoding
+_Selection_of_geometry_field=Selection of geometry field
+

Property changes on: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.h2spatial.app/org.gvsig.h2spatial.app.mainplugin/src/main/java/org/gvsig/h2spatial
___________________________________________________________________
Added: svn:ignore
   + 


Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.lib/org.gvsig.exportto.lib.impl/src/main/java/org/gvsig/exportto/impl/AttributeNamesTranslator.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.lib/org.gvsig.exportto.lib.impl/src/main/java/org/gvsig/exportto/impl/AttributeNamesTranslator.java	(revision 43919)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.lib/org.gvsig.exportto.lib.impl/src/main/java/org/gvsig/exportto/impl/AttributeNamesTranslator.java	(revision 43920)
@@ -37,6 +37,7 @@
          return this.targetToSource.getOrDefault(name, name);
     }
     
+    @Override
     public Iterator<String> iterator() {
         return this.sourceToTarget.keySet().iterator();
     }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/resources/abeille.jfpr
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/resources/abeille.jfpr
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/AbstractExporttoSwingProvider.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/AbstractExporttoSwingProvider.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/AbstractExporttoSwingProvider.java	(revision 43920)
@@ -0,0 +1,60 @@
+package org.gvsig.exportto.swing.spi;
+
+import org.gvsig.exportto.swing.spi.options.ExportOptions;
+import org.gvsig.exportto.swing.spi.options.BaseExportGeometryOptions;
+import java.util.ArrayList;
+import java.util.List;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.tools.service.spi.AbstractProvider;
+import org.gvsig.tools.service.spi.ProviderServices;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public abstract class AbstractExporttoSwingProvider 
+        extends AbstractProvider
+        implements ExporttoSwingProvider 
+    {
+    
+    protected ExportOptions options;
+    private final List<ExporttoSwingProviderPanel> panels;
+    
+    @SuppressWarnings("OverridableMethodCallInConstructor")
+    protected AbstractExporttoSwingProvider(
+            ProviderServices providerServices,
+            FeatureStore featureStore
+        ) {
+        super(providerServices);
+        this.panels = new ArrayList<>();
+        this.getOptions().setSourceFeatureStore(featureStore);
+    }
+    
+    @Override
+    public ExportOptions getOptions() {
+        if( this.options == null ) {
+            this.options = new BaseExportGeometryOptions();                    
+        }
+        return this.options;
+    }
+    
+    protected void panelAdd(ExporttoSwingProviderPanel panel) {
+        this.panels.add(panel);
+    }
+    
+    @Override
+    public int getPanelCount() {
+        return this.panels.size();
+    }
+
+    @Override
+    public ExporttoSwingProviderPanel getPanelAt(int index) {
+        return this.panels.get(index);
+    }
+
+    @Override
+    public boolean needsPanelTargetProjection() {
+        return false;
+    }
+    
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/options/BaseExportOptions.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/options/BaseExportOptions.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/options/BaseExportOptions.java	(revision 43920)
@@ -0,0 +1,78 @@
+package org.gvsig.exportto.swing.spi.options;
+
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.dal.feature.FeatureType;
+import org.gvsig.tools.evaluator.Evaluator;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class BaseExportOptions implements ExportOptions {
+
+    private FeatureType sourceFeatureType;
+    private FeatureStore sourceFeatureStore;
+    private Evaluator filter;
+    private String filterName;
+    private String filterExpression;
+
+    @Override
+    public FeatureType getSourceFeatureType() {
+        return this.sourceFeatureType;
+    }
+    
+    @Override
+    public void setSourceFeatureType(FeatureType sourceFeatureType) {
+        this.sourceFeatureType = sourceFeatureType;
+    }
+    
+    @Override
+    public void setSourceFeatureStore(FeatureStore sourceFeatureStore) {
+        this.sourceFeatureStore = sourceFeatureStore;
+        if( this.sourceFeatureType==null ) {
+            try {
+                this.sourceFeatureType = sourceFeatureStore.getDefaultFeatureType();
+            } catch (DataException ex) {
+                throw new RuntimeException("Can't get feature type", ex);
+            }
+        }
+    }
+
+    @Override
+    public FeatureStore getSourceFeatureStore() {
+        return this.sourceFeatureStore;
+    }
+
+    @Override
+    public Evaluator getFilter() {
+        return this.filter;
+    }
+
+    @Override
+    public String getFilterExpresion() {
+        return this.filterExpression;
+    }
+
+    @Override
+    public String getFilterName() {
+        return this.filterName;
+    }
+
+    @Override
+    public void setFilter(Evaluator filter) {
+        this.filter = filter;
+    }
+
+    @Override
+    public void setFilterExpresion(String expression) {
+        this.filterExpression = expression;
+    }
+
+    @Override
+    public void setFilterName(String name) {
+        this.filterName = name;
+    }
+    
+    
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/options/ExportGeometryOptions.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/options/ExportGeometryOptions.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/options/ExportGeometryOptions.java	(revision 43920)
@@ -0,0 +1,54 @@
+package org.gvsig.exportto.swing.spi.options;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public interface ExportGeometryOptions extends ExportOptions {
+    
+    public static final int CHECKGEOMETRY_NONE = 0;
+    public static final int CHECKGEOMETRY_CHECK_IF_CORRUPT = 1;
+    public static final int CHECKGEOMETRY_CHECK_IF_VALID = 2;
+
+    public static final int CHECKGEOMETRYACTION_SET_GEOMETRY_TO_NULL = 0;
+    public static final int CHECKGEOMETRYACTION_SKIP_FEATURE = 1;
+    public static final int CHECKGEOMETRYACTION_ABORT = 2;
+    
+
+    public void setTargetProjection(IProjection targetProjection);
+
+    public IProjection getTargetProjection();
+
+    public boolean needsPanelTargetProjection();
+
+    public int getGeometryChecks();
+
+    public int getGeometryChecksAction();
+
+    public boolean getTryToFixGeometry();
+
+    public void setGeometryChecks(int geometryChecks);
+
+    public void setGeometryChecksAction(int geometryChecksAction);
+
+    public void setTryToFixGeometry(boolean tryToFixGeometry);
+    
+    public String getGeometryFieldName();
+    
+    public void setGeometryFieldName(String geometryFieldName);
+    
+    public GeometryType getGeometryType();
+    
+    public int getGeometryTypeAsInt();
+    
+    public int getGeometrySubtype();
+    
+    public void setGeometryType(GeometryType type);
+    
+    public void setGeometryType(int type);
+    
+    public void setGeometrySubtype(int subtype);
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/options/ExportOptions.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/options/ExportOptions.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/options/ExportOptions.java	(revision 43920)
@@ -0,0 +1,37 @@
+package org.gvsig.exportto.swing.spi.options;
+
+import org.apache.commons.lang3.StringUtils;
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.DataManager;
+import org.gvsig.fmap.dal.exception.InitializeException;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.dal.feature.FeatureType;
+import org.gvsig.tools.evaluator.Evaluator;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public interface ExportOptions {
+
+    public FeatureType getSourceFeatureType();
+    
+    public void setSourceFeatureType(FeatureType sourceFeatureType);
+    
+    public void setSourceFeatureStore(FeatureStore sourceFeatureStore);
+    
+    public FeatureStore getSourceFeatureStore();
+    
+    public Evaluator getFilter();
+    
+    public String getFilterExpresion();
+
+    public String getFilterName();
+    
+    public void setFilter(Evaluator filter);
+    
+    public void setFilterExpresion(String expression);
+
+    public void setFilterName(String name);
+    
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/options/BaseExportGeometryOptions.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/options/BaseExportGeometryOptions.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/options/BaseExportGeometryOptions.java	(revision 43920)
@@ -0,0 +1,127 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.gvsig.exportto.swing.spi.options;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.type.GeometryType;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class BaseExportGeometryOptions 
+        extends BaseExportOptions
+        implements ExportGeometryOptions 
+    {
+
+    protected IProjection projection;
+    private int geometryChecks;
+    private int geometryChecksAction;
+    private boolean tryToFixGeometry;
+    private String geometryFieldName;
+    private int geometryType;
+    private int geometrySubtype;
+        
+    @Override
+    public boolean needsPanelTargetProjection() {
+        return false;
+    }    
+
+    @Override
+    public void setTargetProjection(IProjection targetProjection) {
+        this.projection = targetProjection;
+    }
+
+    @Override
+    public IProjection getTargetProjection() {
+        return this.projection;
+    }
+
+    @Override
+    public int getGeometryChecks() {
+        return this.geometryChecks;
+    }
+
+    @Override
+    public int getGeometryChecksAction() {
+        return this.geometryChecksAction;
+    }
+
+    @Override
+    public boolean getTryToFixGeometry() {
+        return this.tryToFixGeometry;
+    }
+
+    @Override
+    public void setGeometryChecks(int geometryChecks) {
+        this.geometryChecks = geometryChecks;
+    }
+
+    @Override
+    public void setGeometryChecksAction(int geometryChecksAction) {
+        this.geometryChecksAction = geometryChecksAction;
+    }
+
+    @Override
+    public void setTryToFixGeometry(boolean tryToFixGeometry) {
+        this.tryToFixGeometry = tryToFixGeometry;
+    }
+
+    @Override
+    public String getGeometryFieldName() {
+        return this.geometryFieldName;
+    }
+
+    @Override
+    public void setGeometryFieldName(String geometryFieldName) {
+        this.geometryFieldName = geometryFieldName;
+    }
+
+    @Override
+    public int getGeometryTypeAsInt() {
+        return geometryType;
+    }
+
+    @Override
+    public int getGeometrySubtype() {
+        return geometrySubtype;
+    }
+
+    @Override
+    public void setGeometryType(int geometryType) {
+        this.geometryType = geometryType;
+    }
+
+    @Override
+    public void setGeometrySubtype(int subtype) {
+        this.geometrySubtype = subtype;
+    }
+
+    @Override
+    public void setGeometryType(GeometryType type) {
+        this.geometryType = type.getType();
+        this.geometrySubtype = type.getSubType();
+    }
+
+    @Override
+    public GeometryType getGeometryType() {
+        try {
+            GeometryManager geomManager = GeometryLocator.getGeometryManager();
+            GeometryType type = geomManager.getGeometryType(
+                    geometryType,
+                    geometryType
+            );
+            return type;
+        } catch (Exception ex) {
+            throw new RuntimeException("Can't create geoemtry type from type "+geometryType+", subtype "+geometrySubtype+".", ex);
+        }
+    }
+
+
+
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/ExportGeometryUtils.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/ExportGeometryUtils.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/ExportGeometryUtils.java	(revision 43920)
@@ -0,0 +1,138 @@
+package org.gvsig.exportto.swing.spi;
+
+import org.gvsig.exportto.swing.spi.options.ExportGeometryOptions;
+import org.cresques.cts.ICoordTrans;
+import org.gvsig.fmap.geom.Geometry;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class ExportGeometryUtils {
+
+    public static class FixGeometryStatus {
+
+        public static final int STATE_OK = 0;
+        public static final int STATE_SKIP = 1;
+        public static final int STATE_ABORT = 2;
+
+        private Geometry geometry;
+        private final int state;
+        private String message;
+
+        public FixGeometryStatus(Geometry geometry, int state) {
+            this.geometry = geometry;
+            this.state = state;
+        }
+
+        public FixGeometryStatus(Geometry geometry) {
+            this.geometry = geometry;
+            this.state = STATE_OK;
+        }
+
+        public FixGeometryStatus(int state) {
+            this.geometry = null;
+            this.state = state;
+        }
+
+        public FixGeometryStatus(int state, String message) {
+            this.geometry = null;
+            this.state = state;
+            this.message = message;
+        }
+
+        private void setGeometry(Geometry geometry) {
+            this.geometry = geometry;
+        }
+
+        public Geometry getGeometry() {
+            return this.geometry;
+        }
+
+        public int getState() {
+            return state;
+        }
+
+        public String getMessage() {
+            return this.message;
+        }
+
+    }
+
+    public static FixGeometryStatus fixGeometry(
+            ExportGeometryOptions options,
+            ICoordTrans coord_trans,
+            Geometry geometry
+    ) {
+        Geometry.ValidationStatus geometryCheck;
+        FixGeometryStatus status;
+
+        if (geometry == null) {
+            return new FixGeometryStatus(geometry);
+        }
+        switch (options.getGeometryChecks()) {
+            case ExportGeometryOptions.CHECKGEOMETRY_CHECK_IF_CORRUPT:
+                geometryCheck = geometry.getValidationStatus();
+                if (geometryCheck.isValid()) {
+                    status = new FixGeometryStatus(geometry);
+                    break;
+                }
+                switch (options.getGeometryChecksAction()) {
+                    case ExportGeometryOptions.CHECKGEOMETRYACTION_SET_GEOMETRY_TO_NULL:
+                        status = new FixGeometryStatus(null);
+                        break;
+                    case ExportGeometryOptions.CHECKGEOMETRYACTION_SKIP_FEATURE:
+                        status = new FixGeometryStatus(FixGeometryStatus.STATE_SKIP, geometryCheck.getMessage());
+                        break;
+                    case ExportGeometryOptions.CHECKGEOMETRYACTION_ABORT:
+                    default:
+                        status = new FixGeometryStatus(FixGeometryStatus.STATE_ABORT, geometryCheck.getMessage());
+                        break;
+                }
+                break;
+
+            case ExportGeometryOptions.CHECKGEOMETRY_CHECK_IF_VALID:
+                geometryCheck = geometry.getValidationStatus();
+                if (geometryCheck.isValid()) {
+                    status = new FixGeometryStatus(geometry);
+                    break;
+                }
+                Geometry g;
+                if (options.getTryToFixGeometry()) {
+                    g = geometry.makeValid();
+                    if (g != null) {
+                        status = new FixGeometryStatus(g);
+                        break;
+                    }
+                }
+                switch (options.getGeometryChecksAction()) {
+                    case ExportGeometryOptions.CHECKGEOMETRYACTION_SET_GEOMETRY_TO_NULL:
+                        status = new FixGeometryStatus(null);
+                        break;
+                    case ExportGeometryOptions.CHECKGEOMETRYACTION_SKIP_FEATURE:
+                        status = new FixGeometryStatus(FixGeometryStatus.STATE_SKIP, geometryCheck.getMessage());
+                        break;
+                    case ExportGeometryOptions.CHECKGEOMETRYACTION_ABORT:
+                    default:
+                        status = new FixGeometryStatus(FixGeometryStatus.STATE_ABORT, geometryCheck.getMessage());
+                        break;
+                }
+                break;
+
+            case ExportGeometryOptions.CHECKGEOMETRY_NONE:
+            default:
+                status = new FixGeometryStatus(geometry);
+                break;
+        }
+        if (coord_trans != null) {
+            if (status.getState() == FixGeometryStatus.STATE_OK) {
+                if (status.getGeometry() != null) {
+                    Geometry reproj_geom = status.getGeometry().cloneGeometry();
+                    reproj_geom.reProject(coord_trans);
+                    status.setGeometry(reproj_geom);
+                }
+            }
+        }
+        return status;
+    }
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectOutputFilePanelView.xml
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectOutputFilePanelView.xml	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectOutputFilePanelView.xml	(revision 43920)
@@ -0,0 +1,294 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<object classname="com.jeta.forms.store.memento.FormPackage">
+ <at name="fileversion">
+  <object classname="com.jeta.forms.store.memento.FormsVersion2">
+   <at name="major">2</at>
+   <at name="minor">0</at>
+   <at name="sub">0</at>
+  </object>
+ </at>
+ <at name="form">
+  <object classname="com.jeta.forms.store.memento.FormMemento">
+   <super classname="com.jeta.forms.store.memento.ComponentMemento">
+    <at name="cellconstraints">
+     <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+      <at name="column">1</at>
+      <at name="row">1</at>
+      <at name="colspan">1</at>
+      <at name="rowspan">1</at>
+      <at name="halign">default</at>
+      <at name="valign">default</at>
+      <at name="insets" object="insets">0,0,0,0</at>
+     </object>
+    </at>
+    <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
+   </super>
+   <at name="id">/home/jjdelcerro/datos/devel/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectFilePanelView.xml</at>
+   <at name="rowspecs">CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE</at>
+   <at name="colspecs">FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE</at>
+   <at name="components">
+    <object classname="java.util.LinkedList">
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">2</at>
+           <at name="row">2</at>
+           <at name="colspan">1</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+            <at name="name">lblFile</at>
+            <at name="width">25</at>
+            <at name="text">_File</at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="height">14</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">4</at>
+           <at name="row">2</at>
+           <at name="colspan">1</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">javax.swing.JTextField</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JTextField</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+            <at name="name">txtFile</at>
+            <at name="width">559</at>
+            <at name="height">20</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">6</at>
+           <at name="row">2</at>
+           <at name="colspan">1</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">javax.swing.JButton</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JButton</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.EmptyBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                    <at name="title"></at>
+                   </super>
+                   <at name="top">2</at>
+                   <at name="left">2</at>
+                   <at name="bottom">2</at>
+                   <at name="right">2</at>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+            <at name="actionCommand">...</at>
+            <at name="name">btnSelectFile</at>
+            <at name="width">16</at>
+            <at name="text">...</at>
+            <at name="height">18</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+    </object>
+   </at>
+   <at name="properties">
+    <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+     <at name="classname">com.jeta.forms.gui.form.GridView</at>
+     <at name="properties">
+      <object classname="com.jeta.forms.store.support.PropertyMap">
+       <at name="border">
+        <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+         <super classname="com.jeta.forms.store.properties.BorderProperty">
+          <at name="name">border</at>
+         </super>
+         <at name="borders">
+          <object classname="java.util.LinkedList"/>
+         </at>
+        </object>
+       </at>
+       <at name="name"></at>
+       <at name="fill">
+        <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+         <at name="name">fill</at>
+        </object>
+       </at>
+       <at name="scollBars">
+        <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+         <at name="name">scollBars</at>
+         <at name="verticalpolicy">21</at>
+         <at name="horizontalpolicy">31</at>
+         <at name="border">
+          <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+           <super classname="com.jeta.forms.store.properties.BorderProperty">
+            <at name="name">border</at>
+           </super>
+           <at name="borders">
+            <object classname="java.util.LinkedList">
+             <item >
+              <at name="value">
+               <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                <super classname="com.jeta.forms.store.properties.BorderProperty">
+                 <at name="name">border</at>
+                </super>
+               </object>
+              </at>
+             </item>
+            </object>
+           </at>
+          </object>
+         </at>
+        </object>
+       </at>
+      </object>
+     </at>
+    </object>
+   </at>
+   <at name="cellpainters">
+    <object classname="com.jeta.forms.store.support.Matrix">
+     <at name="rows">
+      <object classname="[Ljava.lang.Object;" size="3">
+       <at name="item" index="0">
+        <object classname="[Ljava.lang.Object;" size="7"/>
+       </at>
+       <at name="item" index="1">
+        <object classname="[Ljava.lang.Object;" size="7"/>
+       </at>
+       <at name="item" index="2">
+        <object classname="[Ljava.lang.Object;" size="7"/>
+       </at>
+      </object>
+     </at>
+    </object>
+   </at>
+   <at name="rowgroups">
+    <object classname="com.jeta.forms.store.memento.FormGroupSet">
+     <at name="groups">
+      <object classname="java.util.HashMap"/>
+     </at>
+    </object>
+   </at>
+   <at name="colgroups">
+    <object classname="com.jeta.forms.store.memento.FormGroupSet">
+     <at name="groups">
+      <object classname="java.util.HashMap"/>
+     </at>
+    </object>
+   </at>
+  </object>
+ </at>
+</object>
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectOutputFilePanelView.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectOutputFilePanelView.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectOutputFilePanelView.java	(revision 43920)
@@ -0,0 +1,148 @@
+package org.gvsig.exportto.swing.spi.panels;
+
+import com.jeta.open.i18n.I18NUtils;
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.FormLayout;
+import java.awt.BorderLayout;
+import java.awt.ComponentOrientation;
+import java.awt.Container;
+import java.awt.Dimension;
+import javax.swing.Box;
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+import javax.swing.border.EmptyBorder;
+
+
+public class SelectOutputFilePanelView extends JPanel
+{
+   JLabel lblFile = new JLabel();
+   JTextField txtFile = new JTextField();
+   JButton btnSelectFile = new JButton();
+
+   /**
+    * Default constructor
+    */
+   public SelectOutputFilePanelView()
+   {
+      initializePanel();
+   }
+
+   /**
+    * Adds fill components to empty cells in the first row and first column of the grid.
+    * This ensures that the grid spacing will be the same as shown in the designer.
+    * @param cols an array of column indices in the first row where fill components should be added.
+    * @param rows an array of row indices in the first column where fill components should be added.
+    */
+   void addFillComponents( Container panel, int[] cols, int[] rows )
+   {
+      Dimension filler = new Dimension(10,10);
+
+      boolean filled_cell_11 = false;
+      CellConstraints cc = new CellConstraints();
+      if ( cols.length > 0 && rows.length > 0 )
+      {
+         if ( cols[0] == 1 && rows[0] == 1 )
+         {
+            /** add a rigid area  */
+            panel.add( Box.createRigidArea( filler ), cc.xy(1,1) );
+            filled_cell_11 = true;
+         }
+      }
+
+      for( int index = 0; index < cols.length; index++ )
+      {
+         if ( cols[index] == 1 && filled_cell_11 )
+         {
+            continue;
+         }
+         panel.add( Box.createRigidArea( filler ), cc.xy(cols[index],1) );
+      }
+
+      for( int index = 0; index < rows.length; index++ )
+      {
+         if ( rows[index] == 1 && filled_cell_11 )
+         {
+            continue;
+         }
+         panel.add( Box.createRigidArea( filler ), cc.xy(1,rows[index]) );
+      }
+
+   }
+
+   /**
+    * Helper method to load an image file from the CLASSPATH
+    * @param imageName the package and name of the file to load relative to the CLASSPATH
+    * @return an ImageIcon instance with the specified image file
+    * @throws IllegalArgumentException if the image resource cannot be loaded.
+    */
+   public ImageIcon loadImage( String imageName )
+   {
+      try
+      {
+         ClassLoader classloader = getClass().getClassLoader();
+         java.net.URL url = classloader.getResource( imageName );
+         if ( url != null )
+         {
+            ImageIcon icon = new ImageIcon( url );
+            return icon;
+         }
+      }
+      catch( Exception e )
+      {
+         e.printStackTrace();
+      }
+      throw new IllegalArgumentException( "Unable to load image: " + imageName );
+   }
+
+   /**
+    * Method for recalculating the component orientation for 
+    * right-to-left Locales.
+    * @param orientation the component orientation to be applied
+    */
+   public void applyComponentOrientation( ComponentOrientation orientation )
+   {
+      // Not yet implemented...
+      // I18NUtils.applyComponentOrientation(this, orientation);
+      super.applyComponentOrientation(orientation);
+   }
+
+   public JPanel createPanel()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE","CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      lblFile.setName("lblFile");
+      lblFile.setText("_File");
+      jpanel1.add(lblFile,cc.xy(2,2));
+
+      txtFile.setName("txtFile");
+      jpanel1.add(txtFile,cc.xy(4,2));
+
+      btnSelectFile.setActionCommand("...");
+      btnSelectFile.setName("btnSelectFile");
+      btnSelectFile.setText("...");
+      EmptyBorder emptyborder1 = new EmptyBorder(2,2,2,2);
+      btnSelectFile.setBorder(emptyborder1);
+      jpanel1.add(btnSelectFile,cc.xy(6,2));
+
+      addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6,7 },new int[]{ 1,2,3 });
+      return jpanel1;
+   }
+
+   /**
+    * Initializer
+    */
+   protected void initializePanel()
+   {
+      setLayout(new BorderLayout());
+      add(createPanel(), BorderLayout.CENTER);
+   }
+
+
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectionOfTheGeometryFieldPanel.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectionOfTheGeometryFieldPanel.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectionOfTheGeometryFieldPanel.java	(revision 43920)
@@ -0,0 +1,119 @@
+package org.gvsig.exportto.swing.spi.panels;
+
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JComponent;
+import org.gvsig.exportto.swing.spi.options.ExportGeometryOptions;
+import org.gvsig.exportto.swing.spi.ExporttoPanelValidationException;
+import org.gvsig.exportto.swing.spi.ExporttoSwingProviderPanel;
+import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.i18n.I18nManager;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+import org.gvsig.tools.swing.api.ToolsSwingManager;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class SelectionOfTheGeometryFieldPanel 
+        extends SelectionOfTheGeometryFieldPanelView
+        implements ExporttoSwingProviderPanel 
+    {
+    
+    private final ExportGeometryOptions options;
+    
+    public SelectionOfTheGeometryFieldPanel(ExportGeometryOptions options) {
+        this.options = options;
+
+        if( this.options.getSourceFeatureType().getDefaultGeometryAttribute()==null ) {
+            this.options.setGeometryFieldName(null);
+        } else {
+            this.options.setGeometryFieldName(this.options.getSourceFeatureType().getDefaultGeometryAttributeName());
+        }
+
+        this.initComponents();
+    }
+
+    @Override
+    public String getPanelTitle() {
+        I18nManager i18nManager = ToolsLocator.getI18nManager();
+        return i18nManager.getTranslation("_Selection_of_geometry_field");    
+    }
+
+    @Override
+    public boolean isValidPanel() throws ExporttoPanelValidationException {
+        this.options.setGeometryFieldName(this.getGeometryField());
+        return true;
+    }
+
+    @Override
+    public void enterPanel() {
+        // Default do nothing
+    }
+
+    @Override
+    public JComponent asJComponent() {
+        return this;
+    }
+
+    private void initComponents() {
+        this.rdoSelectTheFieldToBeUsedAsGeometry.setEnabled(true);
+        this.rdoSelectTheFieldToBeUsedAsGeometry.setSelected(false);
+        
+        if( this.options.getGeometryFieldName()==null ) {
+            this.rdoUseTheGeometryFieldByDefault.setEnabled(false);
+            this.rdoUseTheGeometryFieldByDefault.setSelected(false);
+            this.rdoUseNullAsTheValueOfTheGeometry.setSelected(true);
+        } else {
+            this.rdoUseTheGeometryFieldByDefault.setEnabled(true);
+            this.rdoUseTheGeometryFieldByDefault.setSelected(true);
+            this.rdoUseNullAsTheValueOfTheGeometry.setSelected(false);
+        }
+        List<String> items = new ArrayList<>();
+        for (FeatureAttributeDescriptor descr : this.options.getSourceFeatureType()) {
+            items.add(descr.getName());
+        }        
+        items.sort(new Comparator<String>() {
+            @Override
+            public int compare(String o1, String o2) {
+                return o1.compareTo(o2);
+            }
+        });
+        DefaultComboBoxModel model = new DefaultComboBoxModel();
+        for (String item : items) {
+            model.addElement(item);
+        }
+        this.cboGeometryField.setModel(model);
+        this.cboGeometryField.setEnabled(false);
+        this.rdoSelectTheFieldToBeUsedAsGeometry.addItemListener(new ItemListener() {
+            @Override
+            public void itemStateChanged(ItemEvent e) {
+                cboGeometryField.setEnabled(rdoSelectTheFieldToBeUsedAsGeometry.isSelected());
+            }
+        });
+        this.translate();
+    }
+    
+    private void translate() {
+        ToolsSwingManager i18nc = ToolsSwingLocator.getToolsSwingManager();
+        i18nc.translate(this.lblSelectOfTheGeometryField);
+        i18nc.translate(this.rdoSelectTheFieldToBeUsedAsGeometry);
+        i18nc.translate(this.rdoUseNullAsTheValueOfTheGeometry);
+        i18nc.translate(this.rdoUseTheGeometryFieldByDefault);
+    }
+
+    public String getGeometryField() {
+        if( this.rdoUseNullAsTheValueOfTheGeometry.isSelected() ) {
+            return null;
+        }
+        if( this.rdoUseTheGeometryFieldByDefault.isSelected() ) {
+            return this.options.getSourceFeatureType().getDefaultGeometryAttribute().getName();
+        }
+        return (String) this.cboGeometryField.getSelectedItem();
+    }
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectGeometryTypePanel.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectGeometryTypePanel.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectGeometryTypePanel.java	(revision 43920)
@@ -0,0 +1,223 @@
+package org.gvsig.exportto.swing.spi.panels;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JComponent;
+import org.apache.commons.lang3.ArrayUtils;
+import org.gvsig.exportto.swing.spi.ExporttoPanelValidationException;
+import org.gvsig.exportto.swing.spi.ExporttoSwingProviderPanel;
+import org.gvsig.exportto.swing.spi.options.ExportGeometryOptions;
+import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
+import org.gvsig.fmap.dal.feature.FeatureType;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.i18n.I18nManager;
+import org.gvsig.tools.swing.api.ListElement;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+import org.gvsig.tools.swing.api.ToolsSwingManager;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class SelectGeometryTypePanel 
+        extends SelectGeometryTypePanelView 
+        implements ExporttoSwingProviderPanel 
+    {
+
+    private final ExportGeometryOptions options;
+    private int[] geometryTypes;
+    private int[] geometrySubtypes;
+    private final Map<Integer, String> geometryTypeNames;
+    private final Map<Integer, String> geometrySubtypeNames;
+    private boolean updateComponents;
+
+            
+    public SelectGeometryTypePanel(ExportGeometryOptions options) {
+        this(options,null,null);
+    }
+
+    public SelectGeometryTypePanel(ExportGeometryOptions options, int[] geometryTypes, int[] geometrySubtypes) {
+        this.geometryTypeNames = new HashMap<>();
+        this.geometrySubtypeNames = new HashMap<>();
+        this.options = options;
+        this.geometryTypes = geometryTypes;
+        this.geometrySubtypes = geometrySubtypes;
+        this.initData();
+        this.initComponents();
+    }
+
+    private void initData() {
+        FeatureType ft = this.options.getSourceFeatureType();
+        FeatureAttributeDescriptor geomDescriptor = ft.getDefaultGeometryAttribute();
+        
+        if( geomDescriptor == null ) {
+            this.options.setGeometryType(Geometry.TYPES.GEOMETRY);
+            this.options.setGeometrySubtype(Geometry.SUBTYPES.GEOM2D);
+        } else {
+            GeometryType gt = geomDescriptor.getGeomType();
+            this.options.setGeometryType(gt.getType());
+            this.options.setGeometrySubtype(gt.getSubType());
+        }
+        
+        if( ArrayUtils.isEmpty(this.geometryTypes) ) {
+            this.geometryTypes = new int[] {
+                Geometry.TYPES.GEOMETRY,
+                Geometry.TYPES.POINT,
+                Geometry.TYPES.CURVE,
+                Geometry.TYPES.SURFACE,
+                Geometry.TYPES.SOLID,
+                Geometry.TYPES.AGGREGATE,
+                Geometry.TYPES.MULTIPOINT,
+                Geometry.TYPES.MULTICURVE,
+                Geometry.TYPES.MULTISURFACE,
+                Geometry.TYPES.MULTISOLID,
+                Geometry.TYPES.CIRCLE,
+                Geometry.TYPES.ARC,
+                Geometry.TYPES.ELLIPSE,
+                Geometry.TYPES.SPLINE,
+                Geometry.TYPES.ELLIPTICARC,
+                Geometry.TYPES.COMPLEX,
+                Geometry.TYPES.LINE,
+                Geometry.TYPES.POLYGON,
+                //Geometry.TYPES.RING,
+                Geometry.TYPES.MULTILINE,
+                Geometry.TYPES.MULTIPOLYGON,
+                Geometry.TYPES.CIRCUMFERENCE,
+                Geometry.TYPES.PERIELLIPSE,
+                Geometry.TYPES.FILLEDSPLINE
+            };                    
+        }
+        if( ArrayUtils.isEmpty(this.geometrySubtypes) ) {
+            this.geometrySubtypes = new int[] {
+                Geometry.SUBTYPES.GEOM2D,
+                Geometry.SUBTYPES.GEOM2DM,
+                Geometry.SUBTYPES.GEOM3D,
+                Geometry.SUBTYPES.GEOM3DM
+            };
+        }
+        this.geometryTypeNames.put(Geometry.TYPES.GEOMETRY,"GEOMETRY");
+        this.geometryTypeNames.put(Geometry.TYPES.POINT,"POINT");
+        this.geometryTypeNames.put(Geometry.TYPES.CURVE,"CURVE");
+        this.geometryTypeNames.put(Geometry.TYPES.SURFACE,"SURFACE");
+        this.geometryTypeNames.put(Geometry.TYPES.SOLID,"SOLID");
+        this.geometryTypeNames.put(Geometry.TYPES.AGGREGATE,"AGGREGATE");
+        this.geometryTypeNames.put(Geometry.TYPES.MULTIPOINT,"MULTIPOINT");
+        this.geometryTypeNames.put(Geometry.TYPES.MULTICURVE,"MULTICURVE");
+        this.geometryTypeNames.put(Geometry.TYPES.MULTISURFACE,"MULTISURFACE");
+        this.geometryTypeNames.put(Geometry.TYPES.MULTISOLID,"MULTISOLID");
+        this.geometryTypeNames.put(Geometry.TYPES.CIRCLE,"CIRCLE");
+        this.geometryTypeNames.put(Geometry.TYPES.ARC,"ARC");
+        this.geometryTypeNames.put(Geometry.TYPES.ELLIPSE,"ELLIPSE");
+        this.geometryTypeNames.put(Geometry.TYPES.SPLINE,"SPLINE");
+        this.geometryTypeNames.put(Geometry.TYPES.ELLIPTICARC,"ELLIPTICARC");
+        this.geometryTypeNames.put(Geometry.TYPES.COMPLEX,"COMPLEX");
+        this.geometryTypeNames.put(Geometry.TYPES.LINE,"LINE");
+        this.geometryTypeNames.put(Geometry.TYPES.POLYGON,"POLYGON");
+        this.geometryTypeNames.put(Geometry.TYPES.NULL,"NULL");
+        this.geometryTypeNames.put(Geometry.TYPES.RING,"RING");
+        this.geometryTypeNames.put(Geometry.TYPES.MULTILINE,"MULTILINE");
+        this.geometryTypeNames.put(Geometry.TYPES.MULTIPOLYGON,"MULTIPOLYGON");
+        this.geometryTypeNames.put(Geometry.TYPES.CIRCUMFERENCE,"CIRCUMFERENCE");
+        this.geometryTypeNames.put(Geometry.TYPES.PERIELLIPSE,"PERIELLIPSE");
+        this.geometryTypeNames.put(Geometry.TYPES.FILLEDSPLINE,"FILLEDSPLINE");
+        this.geometrySubtypeNames.put(Geometry.SUBTYPES.GEOM2D,"2D");
+        this.geometrySubtypeNames.put(Geometry.SUBTYPES.GEOM2DM,"2DM");
+        this.geometrySubtypeNames.put(Geometry.SUBTYPES.GEOM3D,"3D");
+        this.geometrySubtypeNames.put(Geometry.SUBTYPES.GEOM3DM,"3DM");
+        this.geometrySubtypeNames.put(Geometry.SUBTYPES.UNKNOWN,"UNKNOWN");
+    }
+    
+    private void initComponents() {
+        List<ListElement<Integer>> items;
+
+        items = new ArrayList<>();
+        for (int geometryType : this.geometryTypes) {
+            items.add(new ListElement<>(
+                    this.geometryTypeNames.getOrDefault(geometryType, "unknown ("+geometryType+")"),
+                    geometryType
+                )
+            );
+        }
+        items.sort(new Comparator<ListElement<Integer>>() {
+            @Override
+            public int compare(ListElement<Integer> o1, ListElement<Integer> o2) {
+                return o1.toString().compareToIgnoreCase(o2.toString());
+            }
+        });
+        DefaultComboBoxModel model1 = new DefaultComboBoxModel();
+        for (ListElement<Integer> item : items) {
+            model1.addElement(item);
+        }
+        this.cboType.setModel(model1);
+
+
+        items = new ArrayList<>();
+        for (int geometrySubtype : this.geometrySubtypes) {
+            items.add(new ListElement<>(
+                    this.geometrySubtypeNames.getOrDefault(geometrySubtype, "unknown ("+geometrySubtype+")"),
+                    geometrySubtype
+                )
+            );
+        }
+        items.sort(new Comparator<ListElement<Integer>>() {
+            @Override
+            public int compare(ListElement<Integer> o1, ListElement<Integer> o2) {
+                return o1.toString().compareToIgnoreCase(o2.toString());
+            }
+        });
+        model1 = new DefaultComboBoxModel();
+        for (ListElement<Integer> item : items) {
+            model1.addElement(item);
+        }
+        this.cboSubtype.setModel(model1);
+        this.updateComponents=true;
+        this.translate();
+    }
+    
+    private void translate() {
+        ToolsSwingManager i18nc = ToolsSwingLocator.getToolsSwingManager();
+        i18nc.translate(this.lblSelectTargetGeometryType);
+        i18nc.translate(this.lblSubtype);
+        i18nc.translate(this.lblType);
+    }
+
+    @Override
+    public String getPanelTitle() {
+        I18nManager i18nManager = ToolsLocator.getI18nManager();
+        return i18nManager.getTranslation("_Select_geometry_type");    
+    }
+
+    @Override
+    public boolean isValidPanel() throws ExporttoPanelValidationException {
+        Integer n = (Integer) ListElement.getSelected(cboType);
+        if( n!=null ) {
+            this.options.setGeometryType(n);
+        }
+        n = (Integer) ListElement.getSelected(cboSubtype);
+        if( n!=null ) {
+            this.options.setGeometrySubtype(n);
+        }
+        return true;
+    }
+
+    @Override
+    public void enterPanel() {
+        if( this.updateComponents ) {
+            ListElement.setSelected(cboType, this.options.getGeometryTypeAsInt());
+            ListElement.setSelected(cboSubtype, this.options.getGeometrySubtype());
+        }
+        this.updateComponents=false;
+    }
+
+    @Override
+    public JComponent asJComponent() {
+        return this;
+    }
+
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/CheckGeometriesPanelLayout.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/CheckGeometriesPanelLayout.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/CheckGeometriesPanelLayout.java	(revision 43920)
@@ -0,0 +1,156 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.gvsig.exportto.swing.spi.panels;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class CheckGeometriesPanelLayout extends javax.swing.JPanel {
+
+    /**
+     * Creates new form CheckGeometriesPanelLayout
+     */
+    public CheckGeometriesPanelLayout() {
+        initComponents();
+    }
+
+    /**
+     * This method is called from within the constructor to initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is always
+     * regenerated by the Form Editor.
+     */
+    @SuppressWarnings("unchecked")
+    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+    private void initComponents() {
+        java.awt.GridBagConstraints gridBagConstraints;
+
+        buttonGroup1 = new javax.swing.ButtonGroup();
+        lblHeader = new javax.swing.JLabel();
+        lblCheckIsCorrupt = new javax.swing.JLabel();
+        rdbCheckNone = new javax.swing.JRadioButton();
+        rdbCheckIsCorrupt = new javax.swing.JRadioButton();
+        cboActionIsCorrupt = new javax.swing.JComboBox();
+        rdbCheckIsValid = new javax.swing.JRadioButton();
+        lblCheckIsvalid = new javax.swing.JLabel();
+        cboActionIsValid = new javax.swing.JComboBox();
+        filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 32767));
+        filler2 = new javax.swing.Box.Filler(new java.awt.Dimension(16, 0), new java.awt.Dimension(16, 0), new java.awt.Dimension(16, 32767));
+        chkTryFixGeometry = new javax.swing.JCheckBox();
+
+        java.awt.GridBagLayout layout = new java.awt.GridBagLayout();
+        layout.columnWidths = new int[] {0, 5, 0, 5, 0, 5, 0};
+        layout.rowHeights = new int[] {0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0};
+        setLayout(layout);
+
+        lblHeader.setText("Validacion de la informacion geometrica");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 2;
+        gridBagConstraints.gridwidth = 3;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
+        gridBagConstraints.weightx = 0.1;
+        add(lblHeader, gridBagConstraints);
+
+        lblCheckIsCorrupt.setText("Cuando la geometria este corrupta;");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 4;
+        gridBagConstraints.gridy = 8;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
+        add(lblCheckIsCorrupt, gridBagConstraints);
+
+        buttonGroup1.add(rdbCheckNone);
+        rdbCheckNone.setText("No realizar ninguna comprobacion sobre las geometrias");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 4;
+        gridBagConstraints.gridwidth = 3;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
+        gridBagConstraints.weightx = 0.1;
+        add(rdbCheckNone, gridBagConstraints);
+
+        buttonGroup1.add(rdbCheckIsCorrupt);
+        rdbCheckIsCorrupt.setText("Comprobar que la geometria no este corrupta");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 6;
+        gridBagConstraints.gridwidth = 3;
+        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
+        gridBagConstraints.weightx = 0.1;
+        add(rdbCheckIsCorrupt, gridBagConstraints);
+
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 4;
+        gridBagConstraints.gridy = 10;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
+        add(cboActionIsCorrupt, gridBagConstraints);
+
+        buttonGroup1.add(rdbCheckIsValid);
+        rdbCheckIsValid.setText("Comprobar la validez de las geometrias antes de insertarlas");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 12;
+        gridBagConstraints.gridwidth = 3;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
+        gridBagConstraints.weightx = 0.1;
+        add(rdbCheckIsValid, gridBagConstraints);
+
+        lblCheckIsvalid.setText("Cuando la geometria no sea valida:");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 4;
+        gridBagConstraints.gridy = 14;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
+        add(lblCheckIsvalid, gridBagConstraints);
+
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 4;
+        gridBagConstraints.gridy = 18;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
+        add(cboActionIsValid, gridBagConstraints);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 20;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.VERTICAL;
+        gridBagConstraints.weighty = 0.1;
+        add(filler1, gridBagConstraints);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 0;
+        add(filler2, gridBagConstraints);
+
+        chkTryFixGeometry.setText("Intentar reparar la geometria");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 4;
+        gridBagConstraints.gridy = 16;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
+        add(chkTryFixGeometry, gridBagConstraints);
+    }// </editor-fold>//GEN-END:initComponents
+
+
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    protected javax.swing.ButtonGroup buttonGroup1;
+    protected javax.swing.JComboBox cboActionIsCorrupt;
+    protected javax.swing.JComboBox cboActionIsValid;
+    protected javax.swing.JCheckBox chkTryFixGeometry;
+    protected javax.swing.Box.Filler filler1;
+    protected javax.swing.Box.Filler filler2;
+    protected javax.swing.JLabel lblCheckIsCorrupt;
+    protected javax.swing.JLabel lblCheckIsvalid;
+    protected javax.swing.JLabel lblHeader;
+    protected javax.swing.JRadioButton rdbCheckIsCorrupt;
+    protected javax.swing.JRadioButton rdbCheckIsValid;
+    protected javax.swing.JRadioButton rdbCheckNone;
+    // End of variables declaration//GEN-END:variables
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectOutputFilePanel.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectOutputFilePanel.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectOutputFilePanel.java	(revision 43920)
@@ -0,0 +1,87 @@
+package org.gvsig.exportto.swing.spi.panels;
+
+import java.io.File;
+import javax.swing.JComponent;
+import javax.swing.JOptionPane;
+import org.gvsig.exportto.swing.spi.ExporttoPanelValidationException;
+import org.gvsig.exportto.swing.spi.ExporttoSwingProviderPanel;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.i18n.I18nManager;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+import org.gvsig.tools.swing.api.ToolsSwingManager;
+import org.gvsig.tools.swing.api.pickercontroller.FilePickerController;
+import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager;
+import org.gvsig.tools.util.HasAFile;
+
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class SelectOutputFilePanel 
+        extends SelectOutputFilePanelView
+        implements ExporttoSwingProviderPanel
+    {
+
+    private FilePickerController fileController;
+    private final HasAFile options;
+    
+    
+    public SelectOutputFilePanel(HasAFile options) {
+        this.options = options;
+        this.initComponents();
+    }
+
+    @Override
+    public String getPanelTitle() {
+        I18nManager i18n = ToolsLocator.getI18nManager();
+        return i18n.getTranslation("Seleccionar_fichero");    
+    }
+
+    @Override
+    public boolean isValidPanel() throws ExporttoPanelValidationException {
+        I18nManager i18n = ToolsLocator.getI18nManager();
+        ThreadSafeDialogsManager dialogs = ToolsSwingLocator.getThreadSafeDialogsManager();
+        
+        if( this.fileController.isEmpty() ) {
+            throw new ExporttoPanelValidationException(
+                i18n.getTranslation("_File_cannot_be_empty"));
+        }
+        File file = this.fileController.get();
+        if (file.exists()) {
+            int resp = dialogs.confirmDialog(
+                    i18n.getTranslation("fichero_ya_existe_seguro_desea_guardarlo"),
+                    i18n.getTranslation("guardar"),
+                    JOptionPane.YES_NO_OPTION, 
+                    JOptionPane.QUESTION_MESSAGE, 
+                    "OverwriteFileOnExport"
+            );
+            if (resp == JOptionPane.NO_OPTION) {
+                return false;
+            }
+        }
+        this.options.setFile(file);
+        return true;
+    }
+
+    @Override
+    public void enterPanel() {
+        // Default do nothing
+    }
+
+    @Override
+    public JComponent asJComponent() {
+        return this;
+    }
+
+    private void initComponents() {
+        this.fileController = ToolsSwingLocator.getToolsSwingManager()
+                .createFilePickerController(txtFile, btnSelectFile);
+        this.translate();
+    }
+    
+    private void translate() {
+        ToolsSwingManager i18nc = ToolsSwingLocator.getToolsSwingManager();
+        i18nc.translate(this.lblFile);
+    }
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/CheckGeometriesPanel.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/CheckGeometriesPanel.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/CheckGeometriesPanel.java	(revision 43920)
@@ -0,0 +1,205 @@
+package org.gvsig.exportto.swing.spi.panels;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import javax.swing.JComponent;
+import org.gvsig.exportto.swing.spi.options.ExportGeometryOptions;
+import org.gvsig.exportto.swing.spi.ExporttoPanelValidationException;
+import org.gvsig.exportto.swing.spi.ExporttoSwingProviderPanel;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.i18n.I18nManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class CheckGeometriesPanel 
+        extends CheckGeometriesPanelLayout 
+        implements ExporttoSwingProviderPanel 
+    {
+
+    private final static Logger logger = LoggerFactory.getLogger(CheckGeometriesPanel.class);
+
+    private final CheckAction[] checkActions = {
+        new CheckAction("_Set_geometry_to_null", ExportGeometryOptions.CHECKGEOMETRYACTION_SET_GEOMETRY_TO_NULL),
+        new CheckAction("_Skip_entire_feature", ExportGeometryOptions.CHECKGEOMETRYACTION_SKIP_FEATURE),
+        new CheckAction("_Abort_process", ExportGeometryOptions.CHECKGEOMETRYACTION_ABORT)
+    };
+    private final ExportGeometryOptions options;
+    private boolean updateComponents;
+    
+    private static class CheckAction {
+
+        private final String label;
+        private final int code;
+
+        public CheckAction(String label, int code) {
+            this.code = code;
+            this.label = ToolsLocator.getI18nManager().getTranslation(label);
+        }
+        @Override
+        public String toString() {
+            return this.label;
+        }
+        public int getCode() {
+            return this.code;
+        }
+    }
+        
+    public CheckGeometriesPanel(ExportGeometryOptions options) {
+        this.options = options;
+        this.options.setGeometryChecks(ExportGeometryOptions.CHECKGEOMETRY_NONE);
+        this.options.setGeometryChecksAction(ExportGeometryOptions.CHECKGEOMETRYACTION_SET_GEOMETRY_TO_NULL);
+        this.options.setTryToFixGeometry(true);
+        this.updateComponents = true;
+        initComponents();
+    }
+    
+    private void initComponents() {
+        this.rdbCheckIsCorrupt.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+               onChangeRadioButtons();
+            }
+        });
+        this.rdbCheckIsValid.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+               onChangeRadioButtons();
+            }
+        });
+        this.rdbCheckNone.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+               onChangeRadioButtons();
+            }
+        });
+        for (CheckAction checkAction : checkActions) {
+            this.cboActionIsCorrupt.addItem(checkAction);
+            this.cboActionIsValid.addItem(checkAction);            
+        }
+        this.rdbCheckNone.setSelected(true);
+        this.rdbCheckIsValid.setSelected(true);
+        this.cboActionIsValid.setSelectedItem(checkActions[2]);
+        this.translate();
+    }
+    
+    private void translate() {
+        I18nManager i18nManager = ToolsLocator.getI18nManager();
+                    
+        this.lblHeader.setText("<html>"+i18nManager.getTranslation("_check_geometries_before_export_header")+"</html>");
+        this.rdbCheckNone.setText(i18nManager.getTranslation("_No_realizar_ninguna_comprobacion_sobre_las_geometrias"));
+        this.rdbCheckIsCorrupt.setText(i18nManager.getTranslation("_Comprobar_que_la_geometria_no_este_corrupta"));
+        this.rdbCheckIsValid.setText(i18nManager.getTranslation("_Comprobar_la_validez_de_las_geometrias_antes_de_insertarlas"));
+        this.lblCheckIsCorrupt.setText(i18nManager.getTranslation("_Cuando_la_geometria_este_corrupta"));
+        this.lblCheckIsvalid.setText(i18nManager.getTranslation("_Cuando_la_geometria_no_sea_valida"));
+        this.chkTryFixGeometry.setText(i18nManager.getTranslation("_Intentar_reparar_la_geometria"));
+    }
+    
+    @Override
+    public String getPanelTitle() {
+        I18nManager i18nManager = ToolsLocator.getI18nManager();
+        return i18nManager.getTranslation("_check_geometries_before_export");    
+    }
+
+    @Override
+    public boolean isValidPanel() throws ExporttoPanelValidationException {
+        this.options.setGeometryChecks(this.getGeometryChecks());
+        this.options.setGeometryChecksAction(this.getGeometryChecksAction());
+        this.options.setTryToFixGeometry(this.getTryToFixGeometry());
+        return true;
+    }
+    
+    @Override
+    public void enterPanel() {
+        if( this.updateComponents ) {
+            switch(this.options.getGeometryChecks()) {
+                case ExportGeometryOptions.CHECKGEOMETRY_NONE:
+                    this.rdbCheckNone.setSelected(true);
+                    this.rdbCheckIsCorrupt.setSelected(false);
+                    this.cboActionIsCorrupt.setEnabled(false);
+                    this.rdbCheckIsValid.setSelected(false);
+                    this.cboActionIsValid.setEnabled(false);
+                    this.chkTryFixGeometry.setEnabled(false);
+                    break;
+                case ExportGeometryOptions.CHECKGEOMETRY_CHECK_IF_VALID:
+                    this.rdbCheckNone.setSelected(false);
+                    this.rdbCheckIsCorrupt.setSelected(false);
+                    this.cboActionIsCorrupt.setEnabled(false);
+                    this.rdbCheckIsValid.setSelected(true);
+                    this.cboActionIsValid.setEnabled(true);
+                    this.chkTryFixGeometry.setEnabled(true);
+                    break;
+                case ExportGeometryOptions.CHECKGEOMETRY_CHECK_IF_CORRUPT:
+                    this.rdbCheckNone.setSelected(false);
+                    this.rdbCheckIsCorrupt.setSelected(true);
+                    this.cboActionIsCorrupt.setEnabled(true);
+                    this.rdbCheckIsValid.setSelected(false);
+                    this.cboActionIsValid.setEnabled(false);
+                    this.chkTryFixGeometry.setEnabled(false);
+                    break;
+            }
+            this.chkTryFixGeometry.setSelected( this.options.getTryToFixGeometry() );
+        }
+        this.updateComponents = false;
+        if( this.options.getGeometryFieldName()==null ) {
+            this.rdbCheckIsCorrupt.setEnabled(false);
+            this.rdbCheckIsValid.setEnabled(false);
+            this.rdbCheckNone.setEnabled(false);
+        } else {
+            this.rdbCheckIsCorrupt.setEnabled(true);
+            this.rdbCheckIsValid.setEnabled(true);
+            this.rdbCheckNone.setEnabled(true);
+        }
+    }
+    
+    @Override
+    public JComponent asJComponent() {
+        return this;
+    }
+
+    public int getGeometryChecks() {
+        if( this.rdbCheckIsCorrupt.isSelected() ) {
+            return ExportGeometryOptions.CHECKGEOMETRY_CHECK_IF_CORRUPT;
+        } else if( this.rdbCheckIsValid.isSelected()) {
+            return ExportGeometryOptions.CHECKGEOMETRY_CHECK_IF_VALID;
+        } else {
+            return ExportGeometryOptions.CHECKGEOMETRY_NONE;
+        }
+    }
+
+    public int getGeometryChecksAction() {
+        try {
+            if( this.rdbCheckIsCorrupt.isSelected() ) {
+                CheckAction checkAction = (CheckAction)(this.cboActionIsCorrupt.getSelectedItem());
+                return checkAction.getCode();
+            } else if( this.rdbCheckIsValid.isSelected()) {
+                CheckAction checkAction = (CheckAction)(this.cboActionIsValid.getSelectedItem());
+                return checkAction.getCode();
+            } else {
+                return ExportGeometryOptions.CHECKGEOMETRYACTION_ABORT;
+            }
+        } catch(Exception ex) {
+            logger.warn("Can't get action for geometry check in export to JDBC.",ex);
+            return ExportGeometryOptions.CHECKGEOMETRYACTION_ABORT;
+        }
+    }
+
+    public boolean getTryToFixGeometry() {
+        return this.chkTryFixGeometry.isSelected();
+    }
+    
+    private void onChangeRadioButtons() {
+        if( this.rdbCheckNone.isSelected() ) {
+            this.cboActionIsCorrupt.setEnabled(false);
+            this.cboActionIsValid.setEnabled(false);
+            this.chkTryFixGeometry.setEnabled(false);
+        } else if( this.rdbCheckIsCorrupt.isSelected() ) {
+            this.cboActionIsCorrupt.setEnabled(true);
+            this.cboActionIsValid.setEnabled(false);
+            this.chkTryFixGeometry.setEnabled(false);
+        } else if( this.rdbCheckIsValid.isSelected()) {
+            this.cboActionIsCorrupt.setEnabled(false);
+            this.cboActionIsValid.setEnabled(true);
+            this.chkTryFixGeometry.setEnabled(true);
+        }
+    }
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/CheckGeometriesPanelLayout.form
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/CheckGeometriesPanelLayout.form	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/CheckGeometriesPanelLayout.form	(revision 43920)
@@ -0,0 +1,1188 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.8" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
+  <NonVisualComponents>
+    <Component class="javax.swing.ButtonGroup" name="buttonGroup1">
+    </Component>
+  </NonVisualComponents>
+  <AuxValues>
+    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
+    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="4"/>
+    <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,44,0,0,1,-112"/>
+  </AuxValues>
+  <SubComponents>
+    <Component class="javax.swing.JLabel" name="lblHeader">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Validacion de la informacion geometrica"/>
+      </Properties>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="2" gridY="2" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.1" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.JLabel" name="lblCheckIsCorrupt">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Cuando la geometria este corrupta;"/>
+      </Properties>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="4" gridY="8" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.JRadioButton" name="rdbCheckNone">
+      <Properties>
+        <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+          <ComponentRef name="buttonGroup1"/>
+        </Property>
+        <Property name="text" type="java.lang.String" value="No realizar ninguna comprobacion sobre las geometrias"/>
+      </Properties>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="2" gridY="4" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.1" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.JRadioButton" name="rdbCheckIsCorrupt">
+      <Properties>
+        <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+          <ComponentRef name="buttonGroup1"/>
+        </Property>
+        <Property name="text" type="java.lang.String" value="Comprobar que la geometria no este corrupta"/>
+      </Properties>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="2" gridY="6" gridWidth="3" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.1" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.JComboBox" name="cboActionIsCorrupt">
+      <Properties>
+        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
+          <StringArray count="0"/>
+        </Property>
+      </Properties>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="4" gridY="10" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.JRadioButton" name="rdbCheckIsValid">
+      <Properties>
+        <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+          <ComponentRef name="buttonGroup1"/>
+        </Property>
+        <Property name="text" type="java.lang.String" value="Comprobar la validez de las geometrias antes de insertarlas"/>
+      </Properties>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="2" gridY="12" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.1" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.JLabel" name="lblCheckIsvalid">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Cuando la geometria no sea valida:"/>
+      </Properties>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="4" gridY="14" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.JComboBox" name="cboActionIsValid">
+      <Properties>
+        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
+          <StringArray count="0"/>
+        </Property>
+      </Properties>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="4" gridY="18" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.Box$Filler" name="filler1">
+      <Properties>
+        <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[0, 32767]"/>
+        </Property>
+      </Properties>
+      <AuxValues>
+        <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.VerticalGlue"/>
+      </AuxValues>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="2" gridY="20" gridWidth="1" gridHeight="1" fill="3" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.1"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.Box$Filler" name="filler2">
+      <Properties>
+        <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[16, 32767]"/>
+        </Property>
+        <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[16, 0]"/>
+        </Property>
+        <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[16, 0]"/>
+        </Property>
+      </Properties>
+      <AuxValues>
+        <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.HorizontalStrut"/>
+      </AuxValues>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="2" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.JCheckBox" name="chkTryFixGeometry">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Intentar reparar la geometria"/>
+      </Properties>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="4" gridY="16" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+  </SubComponents>
+  <LayoutCode>
+    <CodeStatement>
+      <CodeExpression id="1_layout">
+        <CodeVariable name="layout" type="4096" declaredType="java.awt.GridBagLayout"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagLayout" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="1_layout"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="1_layout"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="columnWidths" class="java.awt.GridBagLayout"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="2">
+          <ExpressionOrigin>
+            <Value type="[I" editor="org.netbeans.modules.form.layoutsupport.delegates.GridBagLayoutSupport$IntArrayPropertyEditor">
+              <PropertyValue value="[0, 5, 0, 5, 0, 5, 0]"/>
+            </Value>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="1_layout"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="rowHeights" class="java.awt.GridBagLayout"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="3">
+          <ExpressionOrigin>
+            <Value type="[I" editor="org.netbeans.modules.form.layoutsupport.delegates.GridBagLayoutSupport$IntArrayPropertyEditor">
+              <PropertyValue value="[0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0]"/>
+            </Value>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4">
+        <ExpressionOrigin>
+          <ExpressionProvider type="ComponentRef">
+            <ComponentRef name="."/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="setLayout" class="java.awt.Container" parameterTypes="java.awt.LayoutManager"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="1_layout"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="5_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints" type="20480" declaredType="java.awt.GridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="5_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="5_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="6">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="5_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="7">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="5_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="8">
+          <ExpressionOrigin>
+            <Value type="int" value="3"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="5_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="9">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="5_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="10">
+          <ExpressionOrigin>
+            <Value type="int" value="21"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="5_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="weightx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="11">
+          <ExpressionOrigin>
+            <Value type="double" value="0.1"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="12_lblHeader">
+          <CodeVariable name="lblHeader" type="8196" declaredType="javax.swing.JLabel"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="lblHeader"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="5_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="13_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="13_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="13_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="14">
+          <ExpressionOrigin>
+            <Value type="int" value="4"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="13_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="15">
+          <ExpressionOrigin>
+            <Value type="int" value="8"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="13_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="16">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="13_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="17">
+          <ExpressionOrigin>
+            <Value type="int" value="21"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="18_lblCheckIsCorrupt">
+          <CodeVariable name="lblCheckIsCorrupt" type="8196" declaredType="javax.swing.JLabel"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="lblCheckIsCorrupt"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="13_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="19_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="19_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="19_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="20">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="19_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="21">
+          <ExpressionOrigin>
+            <Value type="int" value="4"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="19_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="22">
+          <ExpressionOrigin>
+            <Value type="int" value="3"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="19_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="23">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="19_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="24">
+          <ExpressionOrigin>
+            <Value type="int" value="21"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="19_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="weightx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="25">
+          <ExpressionOrigin>
+            <Value type="double" value="0.1"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="26_rdbCheckNone">
+          <CodeVariable name="rdbCheckNone" type="8196" declaredType="javax.swing.JRadioButton"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="rdbCheckNone"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="19_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="27_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="27_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="27_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="28">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="27_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="29">
+          <ExpressionOrigin>
+            <Value type="int" value="6"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="27_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="30">
+          <ExpressionOrigin>
+            <Value type="int" value="3"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="27_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="31">
+          <ExpressionOrigin>
+            <Value type="int" value="21"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="27_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="weightx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="32">
+          <ExpressionOrigin>
+            <Value type="double" value="0.1"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="33_rdbCheckIsCorrupt">
+          <CodeVariable name="rdbCheckIsCorrupt" type="8196" declaredType="javax.swing.JRadioButton"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="rdbCheckIsCorrupt"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="27_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="34_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="34_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="34_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="35">
+          <ExpressionOrigin>
+            <Value type="int" value="4"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="34_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="36">
+          <ExpressionOrigin>
+            <Value type="int" value="10"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="34_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="37">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="34_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="38">
+          <ExpressionOrigin>
+            <Value type="int" value="21"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="39_cboActionIsCorrupt">
+          <CodeVariable name="cboActionIsCorrupt" type="8196" declaredType="javax.swing.JComboBox"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="cboActionIsCorrupt"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="34_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="40_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="40_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="40_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="41">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="40_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="42">
+          <ExpressionOrigin>
+            <Value type="int" value="12"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="40_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="43">
+          <ExpressionOrigin>
+            <Value type="int" value="3"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="40_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="44">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="40_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="45">
+          <ExpressionOrigin>
+            <Value type="int" value="21"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="40_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="weightx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="46">
+          <ExpressionOrigin>
+            <Value type="double" value="0.1"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="47_rdbCheckIsValid">
+          <CodeVariable name="rdbCheckIsValid" type="8196" declaredType="javax.swing.JRadioButton"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="rdbCheckIsValid"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="40_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="48_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="48_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="48_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="49">
+          <ExpressionOrigin>
+            <Value type="int" value="4"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="48_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="50">
+          <ExpressionOrigin>
+            <Value type="int" value="14"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="48_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="51">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="48_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="52">
+          <ExpressionOrigin>
+            <Value type="int" value="21"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="53_lblCheckIsvalid">
+          <CodeVariable name="lblCheckIsvalid" type="8196" declaredType="javax.swing.JLabel"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="lblCheckIsvalid"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="48_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="54_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="54_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="54_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="55">
+          <ExpressionOrigin>
+            <Value type="int" value="4"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="54_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="56">
+          <ExpressionOrigin>
+            <Value type="int" value="18"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="54_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="57">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="54_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="58">
+          <ExpressionOrigin>
+            <Value type="int" value="21"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="59_cboActionIsValid">
+          <CodeVariable name="cboActionIsValid" type="8196" declaredType="javax.swing.JComboBox"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="cboActionIsValid"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="54_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="60_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="60_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="60_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="61">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="60_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="62">
+          <ExpressionOrigin>
+            <Value type="int" value="20"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="60_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="63">
+          <ExpressionOrigin>
+            <Value type="int" value="3"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="60_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="weighty" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="64">
+          <ExpressionOrigin>
+            <Value type="double" value="0.1"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="65_filler1">
+          <CodeVariable name="filler1" type="8196" declaredType="javax.swing.Box$Filler"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="filler1"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="60_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="66_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="66_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="66_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="67">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="66_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="68">
+          <ExpressionOrigin>
+            <Value type="int" value="0"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="69_filler2">
+          <CodeVariable name="filler2" type="8196" declaredType="javax.swing.Box$Filler"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="filler2"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="66_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="70_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="70_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="70_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="71">
+          <ExpressionOrigin>
+            <Value type="int" value="4"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="70_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="72">
+          <ExpressionOrigin>
+            <Value type="int" value="16"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="70_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="73">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="70_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="74">
+          <ExpressionOrigin>
+            <Value type="int" value="21"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="75_chkTryFixGeometry">
+          <CodeVariable name="chkTryFixGeometry" type="8196" declaredType="javax.swing.JCheckBox"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="chkTryFixGeometry"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="70_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+  </LayoutCode>
+</Form>
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectionOfTheGeometryFieldPanelView.xml
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectionOfTheGeometryFieldPanelView.xml	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectionOfTheGeometryFieldPanelView.xml	(revision 43920)
@@ -0,0 +1,428 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<object classname="com.jeta.forms.store.memento.FormPackage">
+ <at name="fileversion">
+  <object classname="com.jeta.forms.store.memento.FormsVersion2">
+   <at name="major">2</at>
+   <at name="minor">0</at>
+   <at name="sub">0</at>
+  </object>
+ </at>
+ <at name="form">
+  <object classname="com.jeta.forms.store.memento.FormMemento">
+   <super classname="com.jeta.forms.store.memento.ComponentMemento">
+    <at name="cellconstraints">
+     <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+      <at name="column">1</at>
+      <at name="row">1</at>
+      <at name="colspan">1</at>
+      <at name="rowspan">1</at>
+      <at name="halign">default</at>
+      <at name="valign">default</at>
+      <at name="insets" object="insets">0,0,0,0</at>
+     </object>
+    </at>
+    <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
+   </super>
+   <at name="id">W54070b29S165676b6c23RF8000</at>
+   <at name="rowspecs">CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE</at>
+   <at name="colspecs">FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),FILL:DEFAULT:NONE</at>
+   <at name="components">
+    <object classname="java.util.LinkedList">
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">2</at>
+           <at name="row">2</at>
+           <at name="colspan">2</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+            <at name="name">lblSelectOfTheGeometryField</at>
+            <at name="width">631</at>
+            <at name="text">_Selection_of_the_geometry_field</at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="height">14</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">2</at>
+           <at name="row">4</at>
+           <at name="colspan">2</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">javax.swing.JRadioButton</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JRadioButton</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+            <at name="actionCommand">_Use_the_geometry_field_by_default</at>
+            <at name="buttonGroup">
+             <object classname="com.jeta.forms.store.properties.ButtonGroupProperty">
+              <at name="name">buttonGroup</at>
+              <at name="groupname">1</at>
+             </object>
+            </at>
+            <at name="name">rdoUseTheGeometryFieldByDefault</at>
+            <at name="width">631</at>
+            <at name="text">_Use_the_geometry_field_by_default</at>
+            <at name="height">16</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">2</at>
+           <at name="row">6</at>
+           <at name="colspan">2</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">javax.swing.JRadioButton</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JRadioButton</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+            <at name="actionCommand">_Use_null_as_the_value_of_the_geometry</at>
+            <at name="buttonGroup">
+             <object classname="com.jeta.forms.store.properties.ButtonGroupProperty">
+              <at name="name">buttonGroup</at>
+              <at name="groupname">1</at>
+             </object>
+            </at>
+            <at name="name">rdoUseNullAsTheValueOfTheGeometry</at>
+            <at name="width">631</at>
+            <at name="text">_Use_null_as_the_value_of_the_geometry</at>
+            <at name="height">16</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">2</at>
+           <at name="row">8</at>
+           <at name="colspan">2</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">javax.swing.JRadioButton</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JRadioButton</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+            <at name="actionCommand">_Select_the_field_to_be_used_as_geometry</at>
+            <at name="buttonGroup">
+             <object classname="com.jeta.forms.store.properties.ButtonGroupProperty">
+              <at name="name">buttonGroup</at>
+              <at name="groupname">1</at>
+             </object>
+            </at>
+            <at name="name">rdoSelectTheFieldToBeUsedAsGeometry</at>
+            <at name="width">631</at>
+            <at name="text">_Select_the_field_to_be_used_as_geometry</at>
+            <at name="height">16</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">3</at>
+           <at name="row">10</at>
+           <at name="colspan">1</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">javax.swing.JComboBox</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JComboBox</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+            <at name="name">cboGeometryField</at>
+            <at name="width">615</at>
+            <at name="items">
+             <object classname="com.jeta.forms.store.properties.ItemsProperty">
+              <at name="name">items</at>
+             </object>
+            </at>
+            <at name="height">20</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+    </object>
+   </at>
+   <at name="properties">
+    <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+     <at name="classname">com.jeta.forms.gui.form.GridView</at>
+     <at name="properties">
+      <object classname="com.jeta.forms.store.support.PropertyMap">
+       <at name="border">
+        <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+         <super classname="com.jeta.forms.store.properties.BorderProperty">
+          <at name="name">border</at>
+         </super>
+         <at name="borders">
+          <object classname="java.util.LinkedList"/>
+         </at>
+        </object>
+       </at>
+       <at name="name"></at>
+       <at name="fill">
+        <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+         <at name="name">fill</at>
+        </object>
+       </at>
+       <at name="scollBars">
+        <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+         <at name="name">scollBars</at>
+         <at name="verticalpolicy">21</at>
+         <at name="horizontalpolicy">31</at>
+        </object>
+       </at>
+      </object>
+     </at>
+    </object>
+   </at>
+   <at name="cellpainters">
+    <object classname="com.jeta.forms.store.support.Matrix">
+     <at name="rows">
+      <object classname="[Ljava.lang.Object;" size="11">
+       <at name="item" index="0">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="1">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="2">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="3">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="4">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="5">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="6">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="7">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="8">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="9">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="10">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+      </object>
+     </at>
+    </object>
+   </at>
+   <at name="rowgroups">
+    <object classname="com.jeta.forms.store.memento.FormGroupSet">
+     <at name="groups">
+      <object classname="java.util.HashMap"/>
+     </at>
+    </object>
+   </at>
+   <at name="colgroups">
+    <object classname="com.jeta.forms.store.memento.FormGroupSet">
+     <at name="groups">
+      <object classname="java.util.HashMap"/>
+     </at>
+    </object>
+   </at>
+  </object>
+ </at>
+</object>
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectionOfTheGeometryFieldPanelView.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectionOfTheGeometryFieldPanelView.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectionOfTheGeometryFieldPanelView.java	(revision 43920)
@@ -0,0 +1,162 @@
+package org.gvsig.exportto.swing.spi.panels;
+
+import com.jeta.open.i18n.I18NUtils;
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.FormLayout;
+import java.awt.BorderLayout;
+import java.awt.ComponentOrientation;
+import java.awt.Container;
+import java.awt.Dimension;
+import javax.swing.Box;
+import javax.swing.ButtonGroup;
+import javax.swing.ImageIcon;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JRadioButton;
+
+
+public class SelectionOfTheGeometryFieldPanelView extends JPanel
+{
+   JLabel lblSelectOfTheGeometryField = new JLabel();
+   JRadioButton rdoUseTheGeometryFieldByDefault = new JRadioButton();
+   ButtonGroup buttongroup1 = new ButtonGroup();
+   JRadioButton rdoUseNullAsTheValueOfTheGeometry = new JRadioButton();
+   JRadioButton rdoSelectTheFieldToBeUsedAsGeometry = new JRadioButton();
+   JComboBox cboGeometryField = new JComboBox();
+
+   /**
+    * Default constructor
+    */
+   public SelectionOfTheGeometryFieldPanelView()
+   {
+      initializePanel();
+   }
+
+   /**
+    * Adds fill components to empty cells in the first row and first column of the grid.
+    * This ensures that the grid spacing will be the same as shown in the designer.
+    * @param cols an array of column indices in the first row where fill components should be added.
+    * @param rows an array of row indices in the first column where fill components should be added.
+    */
+   void addFillComponents( Container panel, int[] cols, int[] rows )
+   {
+      Dimension filler = new Dimension(10,10);
+
+      boolean filled_cell_11 = false;
+      CellConstraints cc = new CellConstraints();
+      if ( cols.length > 0 && rows.length > 0 )
+      {
+         if ( cols[0] == 1 && rows[0] == 1 )
+         {
+            /** add a rigid area  */
+            panel.add( Box.createRigidArea( filler ), cc.xy(1,1) );
+            filled_cell_11 = true;
+         }
+      }
+
+      for( int index = 0; index < cols.length; index++ )
+      {
+         if ( cols[index] == 1 && filled_cell_11 )
+         {
+            continue;
+         }
+         panel.add( Box.createRigidArea( filler ), cc.xy(cols[index],1) );
+      }
+
+      for( int index = 0; index < rows.length; index++ )
+      {
+         if ( rows[index] == 1 && filled_cell_11 )
+         {
+            continue;
+         }
+         panel.add( Box.createRigidArea( filler ), cc.xy(1,rows[index]) );
+      }
+
+   }
+
+   /**
+    * Helper method to load an image file from the CLASSPATH
+    * @param imageName the package and name of the file to load relative to the CLASSPATH
+    * @return an ImageIcon instance with the specified image file
+    * @throws IllegalArgumentException if the image resource cannot be loaded.
+    */
+   public ImageIcon loadImage( String imageName )
+   {
+      try
+      {
+         ClassLoader classloader = getClass().getClassLoader();
+         java.net.URL url = classloader.getResource( imageName );
+         if ( url != null )
+         {
+            ImageIcon icon = new ImageIcon( url );
+            return icon;
+         }
+      }
+      catch( Exception e )
+      {
+         e.printStackTrace();
+      }
+      throw new IllegalArgumentException( "Unable to load image: " + imageName );
+   }
+
+   /**
+    * Method for recalculating the component orientation for 
+    * right-to-left Locales.
+    * @param orientation the component orientation to be applied
+    */
+   public void applyComponentOrientation( ComponentOrientation orientation )
+   {
+      // Not yet implemented...
+      // I18NUtils.applyComponentOrientation(this, orientation);
+      super.applyComponentOrientation(orientation);
+   }
+
+   public JPanel createPanel()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),FILL:DEFAULT:NONE","CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      lblSelectOfTheGeometryField.setName("lblSelectOfTheGeometryField");
+      lblSelectOfTheGeometryField.setText("_Selection_of_the_geometry_field");
+      jpanel1.add(lblSelectOfTheGeometryField,cc.xywh(2,2,2,1));
+
+      rdoUseTheGeometryFieldByDefault.setActionCommand("_Use_the_geometry_field_by_default");
+      rdoUseTheGeometryFieldByDefault.setName("rdoUseTheGeometryFieldByDefault");
+      rdoUseTheGeometryFieldByDefault.setText("_Use_the_geometry_field_by_default");
+      buttongroup1.add(rdoUseTheGeometryFieldByDefault);
+      jpanel1.add(rdoUseTheGeometryFieldByDefault,cc.xywh(2,4,2,1));
+
+      rdoUseNullAsTheValueOfTheGeometry.setActionCommand("_Use_null_as_the_value_of_the_geometry");
+      rdoUseNullAsTheValueOfTheGeometry.setName("rdoUseNullAsTheValueOfTheGeometry");
+      rdoUseNullAsTheValueOfTheGeometry.setText("_Use_null_as_the_value_of_the_geometry");
+      buttongroup1.add(rdoUseNullAsTheValueOfTheGeometry);
+      jpanel1.add(rdoUseNullAsTheValueOfTheGeometry,cc.xywh(2,6,2,1));
+
+      rdoSelectTheFieldToBeUsedAsGeometry.setActionCommand("_Select_the_field_to_be_used_as_geometry");
+      rdoSelectTheFieldToBeUsedAsGeometry.setName("rdoSelectTheFieldToBeUsedAsGeometry");
+      rdoSelectTheFieldToBeUsedAsGeometry.setText("_Select_the_field_to_be_used_as_geometry");
+      buttongroup1.add(rdoSelectTheFieldToBeUsedAsGeometry);
+      jpanel1.add(rdoSelectTheFieldToBeUsedAsGeometry,cc.xywh(2,8,2,1));
+
+      cboGeometryField.setName("cboGeometryField");
+      jpanel1.add(cboGeometryField,cc.xy(3,10));
+
+      addFillComponents(jpanel1,new int[]{ 1,2,3,4 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11 });
+      return jpanel1;
+   }
+
+   /**
+    * Initializer
+    */
+   protected void initializePanel()
+   {
+      setLayout(new BorderLayout());
+      add(createPanel(), BorderLayout.CENTER);
+   }
+
+
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectGeometryTypePanelView.xml
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectGeometryTypePanelView.xml	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectGeometryTypePanelView.xml	(revision 43920)
@@ -0,0 +1,441 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<object classname="com.jeta.forms.store.memento.FormPackage">
+ <at name="fileversion">
+  <object classname="com.jeta.forms.store.memento.FormsVersion2">
+   <at name="major">2</at>
+   <at name="minor">0</at>
+   <at name="sub">0</at>
+  </object>
+ </at>
+ <at name="form">
+  <object classname="com.jeta.forms.store.memento.FormMemento">
+   <super classname="com.jeta.forms.store.memento.ComponentMemento">
+    <at name="cellconstraints">
+     <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+      <at name="column">1</at>
+      <at name="row">1</at>
+      <at name="colspan">1</at>
+      <at name="rowspan">1</at>
+      <at name="halign">default</at>
+      <at name="valign">default</at>
+      <at name="insets" object="insets">0,0,0,0</at>
+     </object>
+    </at>
+    <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
+   </super>
+   <at name="id">/home/jjdelcerro/datos/devel/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectGeometryTypePanelView.xml</at>
+   <at name="rowspecs">CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE</at>
+   <at name="colspecs">FILL:8DLU:NONE,FILL:8DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:8DLU:NONE</at>
+   <at name="components">
+    <object classname="java.util.LinkedList">
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">2</at>
+           <at name="row">2</at>
+           <at name="colspan">2</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+            <at name="name">lblSelectTargetGeometryType</at>
+            <at name="width">635</at>
+            <at name="text">_Select_target_geometry_type</at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="height">14</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">2</at>
+           <at name="row">4</at>
+           <at name="colspan">2</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+            <at name="name">lblType</at>
+            <at name="width">635</at>
+            <at name="text">_Type</at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="height">14</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">3</at>
+           <at name="row">6</at>
+           <at name="colspan">1</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">javax.swing.JComboBox</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JComboBox</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+            <at name="name">cboType</at>
+            <at name="width">621</at>
+            <at name="items">
+             <object classname="com.jeta.forms.store.properties.ItemsProperty">
+              <at name="name">items</at>
+             </object>
+            </at>
+            <at name="height">20</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">2</at>
+           <at name="row">8</at>
+           <at name="colspan">2</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+            <at name="name">lblSubtype</at>
+            <at name="width">635</at>
+            <at name="text">_Subtype</at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="height">14</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">3</at>
+           <at name="row">10</at>
+           <at name="colspan">1</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">javax.swing.JComboBox</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JComboBox</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+            <at name="name">cboSubtype</at>
+            <at name="width">621</at>
+            <at name="items">
+             <object classname="com.jeta.forms.store.properties.ItemsProperty">
+              <at name="name">items</at>
+             </object>
+            </at>
+            <at name="height">20</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+    </object>
+   </at>
+   <at name="properties">
+    <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+     <at name="classname">com.jeta.forms.gui.form.GridView</at>
+     <at name="properties">
+      <object classname="com.jeta.forms.store.support.PropertyMap">
+       <at name="border">
+        <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+         <super classname="com.jeta.forms.store.properties.BorderProperty">
+          <at name="name">border</at>
+         </super>
+         <at name="borders">
+          <object classname="java.util.LinkedList"/>
+         </at>
+        </object>
+       </at>
+       <at name="name"></at>
+       <at name="fill">
+        <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+         <at name="name">fill</at>
+        </object>
+       </at>
+       <at name="scollBars">
+        <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+         <at name="name">scollBars</at>
+         <at name="verticalpolicy">21</at>
+         <at name="horizontalpolicy">31</at>
+         <at name="border">
+          <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+           <super classname="com.jeta.forms.store.properties.BorderProperty">
+            <at name="name">border</at>
+           </super>
+           <at name="borders">
+            <object classname="java.util.LinkedList">
+             <item >
+              <at name="value">
+               <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                <super classname="com.jeta.forms.store.properties.BorderProperty">
+                 <at name="name">border</at>
+                </super>
+               </object>
+              </at>
+             </item>
+            </object>
+           </at>
+          </object>
+         </at>
+        </object>
+       </at>
+      </object>
+     </at>
+    </object>
+   </at>
+   <at name="cellpainters">
+    <object classname="com.jeta.forms.store.support.Matrix">
+     <at name="rows">
+      <object classname="[Ljava.lang.Object;" size="11">
+       <at name="item" index="0">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="1">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="2">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="3">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="4">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="5">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="6">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="7">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="8">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="9">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="10">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+      </object>
+     </at>
+    </object>
+   </at>
+   <at name="rowgroups">
+    <object classname="com.jeta.forms.store.memento.FormGroupSet">
+     <at name="groups">
+      <object classname="java.util.HashMap"/>
+     </at>
+    </object>
+   </at>
+   <at name="colgroups">
+    <object classname="com.jeta.forms.store.memento.FormGroupSet">
+     <at name="groups">
+      <object classname="java.util.HashMap"/>
+     </at>
+    </object>
+   </at>
+  </object>
+ </at>
+</object>
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectGeometryTypePanelView.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectGeometryTypePanelView.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/panels/SelectGeometryTypePanelView.java	(revision 43920)
@@ -0,0 +1,152 @@
+package org.gvsig.exportto.swing.spi.panels;
+
+import com.jeta.open.i18n.I18NUtils;
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.FormLayout;
+import java.awt.BorderLayout;
+import java.awt.ComponentOrientation;
+import java.awt.Container;
+import java.awt.Dimension;
+import javax.swing.Box;
+import javax.swing.ImageIcon;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+
+public class SelectGeometryTypePanelView extends JPanel
+{
+   JLabel lblSelectTargetGeometryType = new JLabel();
+   JLabel lblType = new JLabel();
+   JComboBox cboType = new JComboBox();
+   JLabel lblSubtype = new JLabel();
+   JComboBox cboSubtype = new JComboBox();
+
+   /**
+    * Default constructor
+    */
+   public SelectGeometryTypePanelView()
+   {
+      initializePanel();
+   }
+
+   /**
+    * Adds fill components to empty cells in the first row and first column of the grid.
+    * This ensures that the grid spacing will be the same as shown in the designer.
+    * @param cols an array of column indices in the first row where fill components should be added.
+    * @param rows an array of row indices in the first column where fill components should be added.
+    */
+   void addFillComponents( Container panel, int[] cols, int[] rows )
+   {
+      Dimension filler = new Dimension(10,10);
+
+      boolean filled_cell_11 = false;
+      CellConstraints cc = new CellConstraints();
+      if ( cols.length > 0 && rows.length > 0 )
+      {
+         if ( cols[0] == 1 && rows[0] == 1 )
+         {
+            /** add a rigid area  */
+            panel.add( Box.createRigidArea( filler ), cc.xy(1,1) );
+            filled_cell_11 = true;
+         }
+      }
+
+      for( int index = 0; index < cols.length; index++ )
+      {
+         if ( cols[index] == 1 && filled_cell_11 )
+         {
+            continue;
+         }
+         panel.add( Box.createRigidArea( filler ), cc.xy(cols[index],1) );
+      }
+
+      for( int index = 0; index < rows.length; index++ )
+      {
+         if ( rows[index] == 1 && filled_cell_11 )
+         {
+            continue;
+         }
+         panel.add( Box.createRigidArea( filler ), cc.xy(1,rows[index]) );
+      }
+
+   }
+
+   /**
+    * Helper method to load an image file from the CLASSPATH
+    * @param imageName the package and name of the file to load relative to the CLASSPATH
+    * @return an ImageIcon instance with the specified image file
+    * @throws IllegalArgumentException if the image resource cannot be loaded.
+    */
+   public ImageIcon loadImage( String imageName )
+   {
+      try
+      {
+         ClassLoader classloader = getClass().getClassLoader();
+         java.net.URL url = classloader.getResource( imageName );
+         if ( url != null )
+         {
+            ImageIcon icon = new ImageIcon( url );
+            return icon;
+         }
+      }
+      catch( Exception e )
+      {
+         e.printStackTrace();
+      }
+      throw new IllegalArgumentException( "Unable to load image: " + imageName );
+   }
+
+   /**
+    * Method for recalculating the component orientation for 
+    * right-to-left Locales.
+    * @param orientation the component orientation to be applied
+    */
+   public void applyComponentOrientation( ComponentOrientation orientation )
+   {
+      // Not yet implemented...
+      // I18NUtils.applyComponentOrientation(this, orientation);
+      super.applyComponentOrientation(orientation);
+   }
+
+   public JPanel createPanel()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:8DLU:NONE,FILL:8DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:8DLU:NONE","CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      lblSelectTargetGeometryType.setName("lblSelectTargetGeometryType");
+      lblSelectTargetGeometryType.setText("_Select_target_geometry_type");
+      jpanel1.add(lblSelectTargetGeometryType,cc.xywh(2,2,2,1));
+
+      lblType.setName("lblType");
+      lblType.setText("_Type");
+      jpanel1.add(lblType,cc.xywh(2,4,2,1));
+
+      cboType.setName("cboType");
+      jpanel1.add(cboType,cc.xy(3,6));
+
+      lblSubtype.setName("lblSubtype");
+      lblSubtype.setText("_Subtype");
+      jpanel1.add(lblSubtype,cc.xywh(2,8,2,1));
+
+      cboSubtype.setName("cboSubtype");
+      jpanel1.add(cboSubtype,cc.xy(3,10));
+
+      addFillComponents(jpanel1,new int[]{ 1,2,3,4 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11 });
+      return jpanel1;
+   }
+
+   /**
+    * Initializer
+    */
+   protected void initializePanel()
+   {
+      setLayout(new BorderLayout());
+      add(createPanel(), BorderLayout.CENTER);
+   }
+
+
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/ExporttoSwingProvider.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/ExporttoSwingProvider.java	(revision 43919)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/src/main/java/org/gvsig/exportto/swing/spi/ExporttoSwingProvider.java	(revision 43920)
@@ -25,6 +25,7 @@
 
 import org.cresques.cts.IProjection;
 import org.gvsig.exportto.ExporttoService;
+import org.gvsig.exportto.swing.spi.options.ExportOptions;
 
 /**
  * A Exportto provider.
@@ -58,17 +59,8 @@
      */
     public ExporttoService createExporttoService();
 
-    /**
-     * Sets the target projection to which should be exported
-     * @param targetProjection
-     */
-    public void setTargetProjection(IProjection targetProjection);
-
-    /**
-     * Informs if it needs to ask for a target projection,
-     * or if it is not needed or provided through its own wizard panel.
-     * @return
-     */
+    public ExportOptions getOptions();
+    
     public boolean needsPanelTargetProjection();
 
 }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/pom.xml
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/pom.xml	(revision 43919)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.spi/pom.xml	(revision 43920)
@@ -49,6 +49,11 @@
         <artifactId>org.gvsig.i18n</artifactId>    
         <scope>compile</scope>        
     </dependency>
+    <dependency>
+      <groupId>com.jgoodies</groupId>
+      <artifactId>jgoodies-forms</artifactId>
+      <scope>compile</scope>        
+    </dependency>
   </dependencies>
 </project>
 
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/exportto/swing/impl/wizard/ExportTargetProjectionWizard.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/exportto/swing/impl/wizard/ExportTargetProjectionWizard.java	(revision 43919)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/exportto/swing/impl/wizard/ExportTargetProjectionWizard.java	(revision 43920)
@@ -25,11 +25,10 @@
 
 import javax.swing.JPanel;
 
-import org.cresques.cts.IProjection;
 import org.gvsig.exportto.swing.impl.DefaultJExporttoServicePanel;
-import org.gvsig.exportto.swing.impl.panel.ExportFilterPanel;
 import org.gvsig.exportto.swing.impl.panel.ExportTargetProjectionPanel;
-import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.exportto.swing.spi.options.ExportGeometryOptions;
+import org.gvsig.exportto.swing.spi.options.ExportOptions;
 import org.gvsig.gui.beans.wizard.panel.NotContinueWizardException;
 import org.gvsig.gui.beans.wizard.panel.OptionPanel;
 
@@ -41,32 +40,43 @@
 public class ExportTargetProjectionWizard extends ExportTargetProjectionPanel implements
     OptionPanel {
 
-    private DefaultJExporttoServicePanel exporttoServicePanel;
+    private final DefaultJExporttoServicePanel exporttoServicePanel;
+    private final ExportGeometryOptions options;
 
-    public ExportTargetProjectionWizard(DefaultJExporttoServicePanel exporttoServicePanel) {
+    public ExportTargetProjectionWizard(
+            DefaultJExporttoServicePanel exporttoServicePanel,
+            ExportGeometryOptions options
+        ) {
         super(exporttoServicePanel);
         this.exporttoServicePanel = exporttoServicePanel;
+        this.options = options;
     }
 
+    @Override
     public String getPanelTitle() {
         return exporttoServicePanel.getExporttoSwingManager().getTranslation(
             "exportto_options");
     }
 
+    @Override
     public void nextPanel() throws NotContinueWizardException {
+        this.options.setTargetProjection(this.getTargetProjection());
         this.checkPanel();
     }
 
+    @Override
     public void lastPanel() {
         exporttoServicePanel.setExportButtonEnabled(false);
         exporttoServicePanel.setNextButtonEnabled(true);
     }
 
+    @Override
     public void updatePanel() {
         exporttoServicePanel.setExportButtonEnabled(false);
         exporttoServicePanel.setNextButtonEnabled(true);
     }
 
+    @Override
     public JPanel getJPanel() {
         return this;
     }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/exportto/swing/impl/wizard/ExportFilterWizard.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/exportto/swing/impl/wizard/ExportFilterWizard.java	(revision 43919)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/exportto/swing/impl/wizard/ExportFilterWizard.java	(revision 43920)
@@ -27,6 +27,7 @@
 
 import org.gvsig.exportto.swing.impl.DefaultJExporttoServicePanel;
 import org.gvsig.exportto.swing.impl.panel.ExportFilterPanel;
+import org.gvsig.exportto.swing.spi.options.ExportOptions;
 import org.gvsig.gui.beans.wizard.panel.NotContinueWizardException;
 import org.gvsig.gui.beans.wizard.panel.OptionPanel;
 
@@ -39,32 +40,45 @@
     OptionPanel {
 
     private static final long serialVersionUID = 8801849211055890046L;
-    private DefaultJExporttoServicePanel exporttoServicePanel;
+    private final DefaultJExporttoServicePanel exporttoServicePanel;
+    private final ExportOptions options;
 
-    public ExportFilterWizard(DefaultJExporttoServicePanel exporttoServicePanel) {
+    public ExportFilterWizard(
+            DefaultJExporttoServicePanel exporttoServicePanel,
+            ExportOptions options
+        ) {
         super(exporttoServicePanel);
         this.exporttoServicePanel = exporttoServicePanel;
+        this.options = options;
     }
 
+    @Override
     public String getPanelTitle() {
         return exporttoServicePanel.getExporttoSwingManager().getTranslation(
             "exportto_options");
     }
 
+    @Override
     public void nextPanel() throws NotContinueWizardException {
+        this.options.setFilter(this.getFilter());
+        this.options.setFilterExpresion(this.getFilterExpresion());
+        this.options.setFilterName(this.getFilterName());
         this.checkPanel();
     }
 
+    @Override
     public void lastPanel() {
         exporttoServicePanel.setExportButtonEnabled(false);
         exporttoServicePanel.setNextButtonEnabled(true);
     }
 
+    @Override
     public void updatePanel() {
         exporttoServicePanel.setExportButtonEnabled(true);
         exporttoServicePanel.setNextButtonEnabled(false);
     }
 
+    @Override
     public JPanel getJPanel() {
         return this;
     }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/exportto/swing/impl/wizard/ExporttoProgressWizard.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/exportto/swing/impl/wizard/ExporttoProgressWizard.java	(revision 43919)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/exportto/swing/impl/wizard/ExporttoProgressWizard.java	(revision 43920)
@@ -28,6 +28,7 @@
 import javax.swing.JPanel;
 
 import org.gvsig.exportto.swing.impl.DefaultJExporttoServicePanel;
+import org.gvsig.exportto.swing.spi.options.ExportOptions;
 import org.gvsig.gui.beans.wizard.panel.NotContinueWizardException;
 import org.gvsig.gui.beans.wizard.panel.OptionPanel;
 import org.gvsig.tools.swing.api.ToolsSwingLocator;
@@ -43,42 +44,51 @@
 public class ExporttoProgressWizard extends JPanel implements OptionPanel {
 
     private static final long serialVersionUID = 8235569247892299856L;
-    private static final TaskStatusSwingManager TASK_STATUS_SWING_MANAGER =
-        ToolsSwingLocator.getTaskStatusSwingManager();
 
     private DefaultJExporttoServicePanel exporttoServicePanel = null;
     private JTaskStatus jTaskStatus = null;
+    private final ExportOptions options;
 
     public ExporttoProgressWizard(
-        DefaultJExporttoServicePanel exporttoServicePanel) {
+            DefaultJExporttoServicePanel exporttoServicePanel,
+            ExportOptions options
+        ) {
         super();
         this.exporttoServicePanel = exporttoServicePanel;
-        jTaskStatus = TASK_STATUS_SWING_MANAGER.createJTaskStatus();
+        this.options = options;
+        TaskStatusSwingManager TaskStatusSwingManager = ToolsSwingLocator.getTaskStatusSwingManager();
+
+        jTaskStatus = TaskStatusSwingManager.createJTaskStatus();
         this.setLayout(new BorderLayout());
         this.add(jTaskStatus, BorderLayout.NORTH);
     }
 
+    @Override
     public String getPanelTitle() {
         return exporttoServicePanel.getExporttoSwingManager().getTranslation(
             "export_progress");
     }
 
+    @Override
     public void nextPanel() throws NotContinueWizardException {
         // TODO Auto-generated method stub
 
     }
 
+    @Override
     public void lastPanel() {
         exporttoServicePanel.setCancelButtonText(exporttoServicePanel
             .getExporttoSwingManager().getTranslation("cancel"));
     }
 
+    @Override
     public void updatePanel() {
         exporttoServicePanel.setExportButtonEnabled(false);
         exporttoServicePanel.setCancelButtonText(exporttoServicePanel
             .getExporttoSwingManager().getTranslation("close"));
     }
 
+    @Override
     public JPanel getJPanel() {
         return this;
     }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/exportto/swing/impl/DefaultJExporttoServicePanel.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/exportto/swing/impl/DefaultJExporttoServicePanel.java	(revision 43919)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/exportto/swing/impl/DefaultJExporttoServicePanel.java	(revision 43920)
@@ -50,6 +50,8 @@
 import org.gvsig.exportto.swing.spi.ExporttoSwingProviderFactory;
 import org.gvsig.exportto.swing.spi.ExporttoSwingProviderLocator;
 import org.gvsig.exportto.swing.spi.ExporttoSwingProviderManager;
+import org.gvsig.exportto.swing.spi.options.ExportGeometryOptions;
+import org.gvsig.exportto.swing.spi.options.ExportOptions;
 import org.gvsig.fmap.dal.DALLocator;
 import org.gvsig.fmap.dal.DataManager;
 import org.gvsig.fmap.dal.exception.DataException;
@@ -81,8 +83,6 @@
     private static final Logger LOG = LoggerFactory
         .getLogger(DefaultJExporttoServicePanel.class);
 
-    private static final ExporttoSwingProviderManager EXPORTTO_SWING_PROVIDER_MANAGER =
-        ExporttoSwingProviderLocator.getManager();
     private static final DataManager DATA_MANAGER = DALLocator.getDataManager();
 
     private static final long serialVersionUID = -7026467582252285238L;
@@ -95,8 +95,8 @@
     // Used to get the new feature store parameters
     private ExporttoSwingProvider exporttoSwingProvider;
 
-    // Provider types that will be displayed
-    private int[] providerTypes;
+//    // Provider types that will be displayed
+//    private int[] providerTypes;
 
     // Wizards used to create the main wizard
     private ExporterSelectionWizard exporterSelectionWizard = null;
@@ -128,26 +128,26 @@
         vectorLayer = vlayer;
     }
 
-    public DefaultJExporttoServicePanel(DefaultExporttoSwingManager uimanager,
-        FeatureStore featureStore, IProjection projection,
-        ExporttoServiceFinishAction exporttoServiceFinishAction,
-        int[] providerTypes) {
+    @SuppressWarnings("LeakingThisInConstructor")
+    public DefaultJExporttoServicePanel(
+            DefaultExporttoSwingManager uimanager,
+            FeatureStore featureStore, 
+            IProjection projection,
+            ExporttoServiceFinishAction exporttoServiceFinishAction,
+            int[] providerTypes
+        ) {
         this.featureStore = featureStore;
         this.projection = projection;
         this.uimanager = uimanager;
         this.exporttoServiceFinishAction = exporttoServiceFinishAction;
-        this.providerTypes = providerTypes;
+//        this.providerTypes = providerTypes;
         this.status = JOptionPane.UNDEFINED_CONDITION;
 
         ImageIcon ii = IconThemeHelper.getImageIcon("wizard-export-to");
         wizardPanelWithLogo = new WizardPanelWithLogo(ii);
 
         // Initialize the wizards
-        exporterSelectionWizard =
-            new ExporterSelectionWizard(this, providerTypes);
-        exportTargetProjectionWizard = new ExportTargetProjectionWizard(this);
-        exportFilterWizard = new ExportFilterWizard(this);
-        exporttoProgressWizard = new ExporttoProgressWizard(this);
+        exporterSelectionWizard = new ExporterSelectionWizard(this, providerTypes);
 
         // Adding the wizards to the main wizard
         wizardPanelWithLogo.addOptionPanel(exporterSelectionWizard);
@@ -156,6 +156,13 @@
         this.wizardPanelWithLogo.getWizardComponents().getFinishButton()
             .setText(uimanager.getTranslation("export"));
 
+        // Set the listener for the finish and cancell events
+        this.wizardPanelWithLogo.setWizardListener(this);
+        
+        this.initComponents();
+    }
+    
+    private void initComponents() {
         this.setLayout(new BorderLayout());
         this.add(wizardPanelWithLogo, BorderLayout.CENTER);
 
@@ -164,7 +171,6 @@
         setExportButtonEnabled(false);
 
         // Set the listener for the finish and cancell events
-        this.wizardPanelWithLogo.setWizardListener(this);
         this.setPreferredSize(new Dimension(700, 350));
     }
 
@@ -193,40 +199,46 @@
     }
 
     /**
-     * @param exporttoSwingProvider
+     * @param provider
      * @throws ServiceException
      */
-    public void selectExporttoSwingProvider(
-        ExporttoSwingProviderFactory provider)
+    public void selectExporttoSwingProvider(ExporttoSwingProviderFactory provider)
         throws ServiceException {
+        
+        ExporttoSwingProviderManager manager = ExporttoSwingProviderLocator.getManager();
+        exporttoSwingProvider = manager.createExporttoSwingProvider(
+                provider.getName(), vectorLayer
+        );
+        ExportOptions options = this.exporttoSwingProvider.getOptions();
 
-        if (vectorLayer == null) {
-            exporttoSwingProvider =
-                EXPORTTO_SWING_PROVIDER_MANAGER.createExporttoSwingProvider(
-                    provider.getName(), featureStore, projection);
-        } else {
-            exporttoSwingProvider =
-                EXPORTTO_SWING_PROVIDER_MANAGER.createExporttoSwingProvider(
-                    provider.getName(), vectorLayer);
+        if( options instanceof ExportGeometryOptions ) {
+            ExportGeometryOptions geomOptions = (ExportGeometryOptions) options;
+            geomOptions.setTargetProjection(projection);
+            exportTargetProjectionWizard = new ExportTargetProjectionWizard(this, geomOptions);
+            exportTargetProjectionWizard.setVectorLayer(vectorLayer);
         }
+        exportFilterWizard = new ExportFilterWizard(this, options);
+        exporttoProgressWizard = new ExporttoProgressWizard(this, options);
 
-        DefaultJWizardComponents wizardComponents =
-            wizardPanelWithLogo.getWizardComponents();
+        DefaultJWizardComponents wizardComponents = wizardPanelWithLogo.getWizardComponents();
         for (int i = wizardComponents.getWizardPanelList().size() - 1; i >= 1; i--) {
             wizardComponents.removeWizardPanel(i);
         }
         for (int i = 0; i < exporttoSwingProvider.getPanelCount(); i++) {
-            wizardPanelWithLogo.addOptionPanel(new DefaultWizardContainer(
-                exporttoSwingProvider.getPanelAt(i)));
+            wizardPanelWithLogo.addOptionPanel(
+                new DefaultWizardContainer(
+                    exporttoSwingProvider.getPanelAt(i)
+                )
+            );
         }
-        exportTargetProjectionWizard.setVectorLayer(vectorLayer);
-        if (exporttoSwingProvider.needsPanelTargetProjection()){
+        if (exporttoSwingProvider.needsPanelTargetProjection() && exportTargetProjectionWizard!=null ){
             wizardPanelWithLogo.addOptionPanel(exportTargetProjectionWizard);
         }
         wizardPanelWithLogo.addOptionPanel(exportFilterWizard);
         wizardPanelWithLogo.addOptionPanel(exporttoProgressWizard);
     }
 
+    @Override
     public Dimension getPreferredSize() {
         return new Dimension(800, 550);
     }
@@ -250,9 +262,6 @@
                 featureSet = featureStore.getFeatureSet(featureQuery);
             }
         }
-        if( exporttoSwingProvider.needsPanelTargetProjection()) {
-            exporttoSwingProvider.setTargetProjection(exportTargetProjectionWizard.getTargetProjection());
-        }
 
         Export export = new Export(featureSet);
         export.start();
@@ -265,13 +274,14 @@
 
     private class Export extends Thread {
 
-        private FeatureSet featureSet;
+        private final FeatureSet featureSet;
 
         public Export(FeatureSet featureSet) {
             super();
             this.featureSet = featureSet;
         }
 
+        @Override
         public synchronized void run() {
             ExporttoService exportService;
             try {
@@ -314,11 +324,13 @@
         );
     }
 
+    @Override
     public void setWizardPanelActionListener(
         WizardPanelActionListener wizardActionListener) {
         this.exporttoServicePanelListener = wizardActionListener;
     }
 
+    @Override
     public WizardPanelActionListener getWizardPanelActionListener() {
         if (exporttoServicePanelListener == null) {
             exporttoServicePanelListener =
Index: 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.shape/src/main/java/org/gvsig/exportto/swing/prov/shape/BaseExportShapeOptions.java
===================================================================
--- 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.shape/src/main/java/org/gvsig/exportto/swing/prov/shape/BaseExportShapeOptions.java	(revision 0)
+++ 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.shape/src/main/java/org/gvsig/exportto/swing/prov/shape/BaseExportShapeOptions.java	(revision 43920)
@@ -0,0 +1,42 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.gvsig.exportto.swing.prov.shape;
+
+import java.io.File;
+import org.gvsig.exportto.swing.spi.options.BaseExportGeometryOptions;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class BaseExportShapeOptions 
+        extends BaseExportGeometryOptions
+        implements ExportShapeOptions
+    {
+    private String encoding;
+    private File file;
+
+    @Override
+    public String getEncoding() {
+        return this.encoding;
+    }
+
+    @Override
+    public void setEncoding(String encoding) {
+        this.encoding = encoding;
+    }
+
+    @Override
+    public File getFile() {
+        return this.file;
+    }
+
+    @Override
+    public void setFile(File file) {
+        this.file = file;
+    }
+        
+}
Index: 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.shape/src/main/java/org/gvsig/exportto/swing/prov/shape/ExportShapeOptions.java
===================================================================
--- 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.shape/src/main/java/org/gvsig/exportto/swing/prov/shape/ExportShapeOptions.java	(revision 0)
+++ 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.shape/src/main/java/org/gvsig/exportto/swing/prov/shape/ExportShapeOptions.java	(revision 43920)
@@ -0,0 +1,12 @@
+package org.gvsig.exportto.swing.prov.shape;
+
+import org.gvsig.exportto.swing.prov.dbf.ExportDBFOptions;
+import org.gvsig.exportto.swing.spi.options.ExportGeometryOptions;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public interface ExportShapeOptions extends ExportDBFOptions, ExportGeometryOptions {
+    
+}
Index: 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.shape/src/main/java/org/gvsig/exportto/swing/prov/shape/ExporttoShapeProvider.java
===================================================================
--- 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.shape/src/main/java/org/gvsig/exportto/swing/prov/shape/ExporttoShapeProvider.java	(revision 43919)
+++ 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.shape/src/main/java/org/gvsig/exportto/swing/prov/shape/ExporttoShapeProvider.java	(revision 43920)
@@ -25,11 +25,13 @@
 
 import org.cresques.cts.IProjection;
 import org.gvsig.exportto.ExporttoService;
-import org.gvsig.exportto.swing.prov.dbf.ExporttoDBFService;
-import org.gvsig.exportto.swing.prov.dbf.panel.ExporttoDBFPanel;
-import org.gvsig.exportto.swing.prov.file.AbstractExporttoFileProvider;
+import org.gvsig.exportto.swing.prov.dbf.ExporttoDBFProvider;
 import org.gvsig.exportto.swing.spi.ExporttoSwingProvider;
+import org.gvsig.exportto.swing.spi.panels.CheckGeometriesPanel;
+import org.gvsig.exportto.swing.spi.panels.SelectGeometryTypePanel;
+import org.gvsig.exportto.swing.spi.panels.SelectionOfTheGeometryFieldPanel;
 import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.geom.Geometry;
 import org.gvsig.tools.service.spi.ProviderServices;
 
 /**
@@ -38,24 +40,60 @@
  * @author gvSIG Team
  * @version $Id$
  */
-public class ExporttoShapeProvider extends AbstractExporttoFileProvider
+public class ExporttoShapeProvider extends ExporttoDBFProvider
     implements ExporttoSwingProvider {
 
-    /**
-     * Constructor.
-     * 
-     * @param providerServices
-     *            the services for the provider
-     * @param file
-     *            to get the Exporto from
-     */
-    public ExporttoShapeProvider(ProviderServices providerServices,
-        FeatureStore featureStore, IProjection projection) {
-        super(providerServices, featureStore, projection, new ExporttoDBFPanel());
+    @SuppressWarnings("OverridableMethodCallInConstructor")
+    public ExporttoShapeProvider(
+        ProviderServices providerServices,
+        FeatureStore featureStore,
+        IProjection projection
+        ) {
+        super(providerServices, featureStore);
+        this.getOptions().setTargetProjection(projection);
     }
 
+    @Override
+    protected void addPanels() {
+        this.panelAdd(new SelectionOfTheGeometryFieldPanel(this.getOptions()));
+        this.panelAdd(new SelectGeometryTypePanel(
+                this.getOptions(),
+                new int[] { 
+                    Geometry.TYPES.GEOMETRY,
+                    Geometry.TYPES.POINT,
+                    Geometry.TYPES.LINE,
+                    Geometry.TYPES.POLYGON,
+                    Geometry.TYPES.MULTIPOINT,
+                    Geometry.TYPES.MULTILINE,
+                    Geometry.TYPES.MULTIPOLYGON
+                },
+                new int[] {
+                    Geometry.SUBTYPES.GEOM2D,
+                    Geometry.SUBTYPES.GEOM3D,
+                    Geometry.SUBTYPES.GEOM3DM
+                } 
+            )
+        );
+        this.panelAdd(new CheckGeometriesPanel(this.getOptions()));
+        super.addPanels(); 
+    }
+
+    @Override
+    public ExportShapeOptions getOptions() {
+        if( this.options == null ) {
+            this.options = new BaseExportShapeOptions();
+        }
+        return (ExportShapeOptions) this.options;
+    }
+    
+    @Override
     public ExporttoService createExporttoService() {
-        return new ExporttoShapeService(
-            selectFileOptionPanel, featureStore, projection, ((ExporttoDBFPanel) selectFileOptionPanel).getEncoding());
+        return new ExporttoShapeService(this.getOptions());
     }
+
+    @Override
+    public boolean needsPanelTargetProjection() {
+        return true;
+    }
+    
 }
Index: 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.shape/src/main/java/org/gvsig/exportto/swing/prov/shape/ExporttoShapeService.java
===================================================================
--- 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.shape/src/main/java/org/gvsig/exportto/swing/prov/shape/ExporttoShapeService.java	(revision 43919)
+++ 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.shape/src/main/java/org/gvsig/exportto/swing/prov/shape/ExporttoShapeService.java	(revision 43920)
@@ -28,6 +28,7 @@
 import java.util.List;
 
 import javax.swing.JOptionPane;
+import org.apache.commons.io.FilenameUtils;
 
 import org.cresques.cts.ICoordTrans;
 import org.cresques.cts.IProjection;
@@ -35,7 +36,6 @@
 import org.gvsig.exportto.ExporttoServiceException;
 import org.gvsig.exportto.ExporttoServiceFinishAction;
 import org.gvsig.exportto.impl.AttributeNamesTranslator;
-import org.gvsig.exportto.swing.prov.file.panel.SelectFileOptionPanel;
 import org.gvsig.fmap.dal.DALLocator;
 import org.gvsig.fmap.dal.DataManager;
 import org.gvsig.fmap.dal.DataStoreParameters;
@@ -69,149 +69,122 @@
 import org.gvsig.fmap.geom.primitive.Surface;
 import org.gvsig.fmap.geom.type.GeometryType;
 import org.gvsig.i18n.Messages;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dataTypes.CoercionException;
+import org.gvsig.tools.dataTypes.DataTypesManager.Coercion;
 import org.gvsig.tools.dispose.DisposableIterator;
 import org.gvsig.tools.dispose.DisposeUtils;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager;
 import org.gvsig.tools.task.AbstractMonitorableTask;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-
 /**
  * @author gvSIG Team
  * @version $Id$
  *
  */
 public class ExporttoShapeService extends AbstractMonitorableTask implements
-    ExporttoService {
+        ExporttoService {
 
-    private static Logger logger = LoggerFactory.getLogger(ExporttoShapeService.class);
+    private static final Logger logger = LoggerFactory.getLogger(ExporttoShapeService.class);
 
     public static final int MAX_FIELD_NAME_LENGTH = 10;
 
-    private File theShapeFile;
-    private IProjection projection;
-    private FeatureStore featureStore;
-    private AttributeNamesTranslator nameTranslator;
+    private final AttributeNamesTranslator nameTranslator;
 
-    private int geometryType = -1;
     private NewFeatureStoreParameters newFeatureStoreParameters;
     private FilesystemServerExplorer filesystemServerExplorer;
-    private SelectFileOptionPanel filePanel = null;
-    private String encoding = null;
 
-    private static GeometryManager geoManager = GeometryLocator.getGeometryManager();
-
     private ExporttoServiceFinishAction exporttoServiceFinishAction;
+    private final ExportShapeOptions options;
 
-    public ExporttoShapeService(
-    		SelectFileOptionPanel fPanel,
-    		FeatureStore featureStore,
-    		IProjection projection) {
+    public ExporttoShapeService(ExportShapeOptions options) {
 
-    	this(fPanel, featureStore, projection, null);
-    }
-    
-    public ExporttoShapeService(
-    		SelectFileOptionPanel fPanel,
-    		FeatureStore featureStore,
-    		IProjection projection,
-    		String encoding) {
-
         super("Export to shape");
-        this.featureStore = featureStore;
-        this.filePanel = fPanel;
-        this.theShapeFile = fPanel.getSelectedFile();
-        this.projection = projection;
-        this.encoding = encoding;
-
-        try {
-            this.nameTranslator = new AttributeNamesTranslator(
-                featureStore.getDefaultFeatureType(), 
+        this.options = options;
+        this.nameTranslator = new AttributeNamesTranslator(
+                this.options.getSourceFeatureType(),
                 MAX_FIELD_NAME_LENGTH
-            );
-		} catch (DataException e) {
-			logger.error("While getting def feat type.", e);
-		}
+        );
     }
 
-	public void export(FeatureSet featureSet) throws ExporttoServiceException {
+    @Override
+    public void export(FeatureSet featureSet) throws ExporttoServiceException {
 
         ExporttoServiceException throw_exp = null;
-        File item_shp = null;
-        String pathFile = theShapeFile.getAbsolutePath();
-        String withoutShp = pathFile.replaceAll("\\.shp", "");
+        File item_shp;
+        
+        String layer_name = FilenameUtils.getBaseName(this.options.getFile().getName());
+        String pathName = FilenameUtils.removeExtension(this.options.getFile().getAbsolutePath());
 
-        File single_file = new File(withoutShp + ".shp");
-
-        String layer_name = single_file.getName();
-        int lastp = layer_name.lastIndexOf(".shp");
-        if (lastp > -1) {
-            layer_name = layer_name.substring(0, lastp);
-        }
-
-        initializeParams(featureSet, single_file);
-
+        int geometryType = options.getGeometryTypeAsInt();
+        
         if (geometryType == Geometry.TYPES.GEOMETRY) {
             // SURFACE
-            String fileName = withoutShp + "_surface" + ".shp";
-            item_shp = new File(fileName);
+            String fullPathName = pathName + "_surface" + ".shp";
+            item_shp = new File(fullPathName);
             initializeParams(featureSet, item_shp);
             newFeatureStoreParameters.setDynValue("shpfile", item_shp);
             taskStatus.setTitle("Exporting surfaces");
 
-            try {
-                export(filesystemServerExplorer, newFeatureStoreParameters,
-                    featureSet, Geometry.TYPES.SURFACE, true);
-            } catch (ExporttoServiceException ee) {
-                throw_exp = ee;
-            }
-            finishAction(layer_name + " (surface)", item_shp, projection);
+            export(
+                    filesystemServerExplorer, 
+                    newFeatureStoreParameters,
+                    featureSet, 
+                    Geometry.TYPES.SURFACE, 
+                    true
+            );
+            finishAction(layer_name + " (surface)", item_shp, options.getTargetProjection());
 
             // CURVE
-            fileName = withoutShp + "_curve" + ".shp";
-            item_shp = new File(fileName);
+            fullPathName = pathName + "_curve" + ".shp";
+            item_shp = new File(fullPathName);
             initializeParams(featureSet, item_shp);
             newFeatureStoreParameters.setDynValue("shpfile", item_shp);
             taskStatus.setTitle("Exporting curves");
 
-            try {
-                export(filesystemServerExplorer, newFeatureStoreParameters,
-                    featureSet, Geometry.TYPES.CURVE, true);
-            } catch (ExporttoServiceException ee) {
-                throw_exp = ee;
-            }
+            export(
+                    filesystemServerExplorer, 
+                    newFeatureStoreParameters,
+                    featureSet, 
+                    Geometry.TYPES.CURVE, 
+                    true
+            );
 
-            finishAction(layer_name + " (curve)", item_shp, projection);
+            finishAction(layer_name + " (curve)", item_shp, options.getTargetProjection());
 
             // POINT
-            fileName = withoutShp + "_point" + ".shp";
-            item_shp = new File(fileName);
+            fullPathName = pathName + "_point" + ".shp";
+            item_shp = new File(fullPathName);
             initializeParams(featureSet, item_shp);
 
             newFeatureStoreParameters.setDynValue("shpfile", item_shp);
             taskStatus.setTitle("Exporting points");
 
-            try {
-                export(filesystemServerExplorer, newFeatureStoreParameters,
-                    featureSet, Geometry.TYPES.POINT, true);
-            } catch (ExporttoServiceException ee) {
-                throw_exp = ee;
-            }
+            export(
+                    filesystemServerExplorer, 
+                    newFeatureStoreParameters,
+                    featureSet, 
+                    Geometry.TYPES.POINT, 
+                    true
+            );
 
-            finishAction(layer_name + " (point)", item_shp, projection);
+            finishAction(layer_name + " (point)", item_shp, options.getTargetProjection());
 
-
         } else {
-
-            // params already initialized
+            File single_file = new File(pathName + ".shp");
+            initializeParams(featureSet, single_file);
             newFeatureStoreParameters.setDynValue("shpfile", single_file);
-            try {
-                export(filesystemServerExplorer, newFeatureStoreParameters,
-                    featureSet, geometryType, false);
-            } catch (ExporttoServiceException ee) {
-                throw_exp = ee;
-            }
-            finishAction(layer_name, single_file, projection);
+            export(
+                    filesystemServerExplorer, 
+                    newFeatureStoreParameters,
+                    featureSet, 
+                    geometryType, 
+                    false
+            );
+            finishAction(layer_name, single_file, options.getTargetProjection());
         }
         this.taskStatus.terminate();
         this.taskStatus.remove();
@@ -219,74 +192,75 @@
         if (throw_exp != null) {
             throw throw_exp;
         } else {
-        	if ( this.nameTranslator.hasTranslations() ) {
-        		showNewNamesDialog(this.nameTranslator);
-        	}
+            if (this.nameTranslator.hasTranslations()) {
+                showNewNamesDialog(this.nameTranslator);
+            }
         }
     }
 
     private void showNewNamesDialog(AttributeNamesTranslator nameTranslator) {
-        if( nameTranslator.hasTranslations() ) {
+        if (nameTranslator.hasTranslations()) {
             String msg = Messages.getText("_Some_field_names_too_long_automatically_changed");
             msg = msg + ":\n";
-            for( String source_name : nameTranslator ) {
+            for (String source_name : nameTranslator) {
                 String target_name = nameTranslator.getTargetName(source_name);
                 msg = msg + "\n" + source_name + " > " + target_name;
             }
-            JOptionPane.showMessageDialog(
-                this.filePanel,
-                msg,
-                Messages.getText("export_progress"),
-                JOptionPane.WARNING_MESSAGE);
+            ThreadSafeDialogsManager dialogs = ToolsSwingLocator.getThreadSafeDialogsManager();
+            dialogs.messageDialog(
+                    msg,
+                    null,
+                    Messages.getText("export_progress"),
+                    JOptionPane.WARNING_MESSAGE,
+                    "FieldNameTooLongInShape"
+            );
         }
     }
 
-	private void initializeParams(
-        FeatureSet featureSet, File out_shp_file)
-        throws ExporttoServiceException {
+    private void initializeParams(
+            FeatureSet featureSet, File out_shp_file)
+            throws ExporttoServiceException {
 
         DataManager dataManager = DALLocator.getDataManager();
 
         FilesystemServerExplorerParameters explorerParams;
         try {
-            explorerParams =
-                (FilesystemServerExplorerParameters) dataManager
-                    .createServerExplorerParameters(FilesystemServerExplorer.NAME);
-        } catch (InitializeException e) {
+            explorerParams
+                    = (FilesystemServerExplorerParameters) dataManager
+                            .createServerExplorerParameters(FilesystemServerExplorer.NAME);
+        } catch (InitializeException | ProviderNotRegisteredException e) {
             throw new ExporttoServiceException(e);
-        } catch (ProviderNotRegisteredException e) {
-            throw new ExporttoServiceException(e);
         }
         explorerParams.setRoot(out_shp_file.getParent());
 
         try {
-            filesystemServerExplorer =
-                (FilesystemServerExplorer) dataManager.openServerExplorer(
-                    "FilesystemExplorer", explorerParams);
+            filesystemServerExplorer
+                    = (FilesystemServerExplorer) dataManager.openServerExplorer(
+                            "FilesystemExplorer", explorerParams);
         } catch (Exception e) {
             throw new ExporttoServiceException(e);
         }
 
         try {
-            newFeatureStoreParameters =
-                (NewFeatureStoreParameters) filesystemServerExplorer
-                    .getAddParameters(out_shp_file);
+            newFeatureStoreParameters
+                    = (NewFeatureStoreParameters) filesystemServerExplorer
+                            .getAddParameters(out_shp_file);
         } catch (DataException e) {
             throw new ExporttoServiceException(e);
         }
 
-        newFeatureStoreParameters.setDynValue("CRS", projection);
-        newFeatureStoreParameters.setDynValue("encoding", encoding);
+        newFeatureStoreParameters.setDynValue("CRS", options.getTargetProjection());
+        newFeatureStoreParameters.setDynValue("encoding", options.getEncoding());
 
-        geometryType =
-            featureSet.getDefaultFeatureType().getDefaultGeometryAttribute()
-                .getGeomType().getType();
-
     }
 
-    private void export(FilesystemServerExplorer explorer,
-        NewFeatureStoreParameters params, FeatureSet featureSet,
-        int geometryType, boolean checkType) throws ExporttoServiceException {
+    private void export(
+            FilesystemServerExplorer explorer,
+            NewFeatureStoreParameters params, 
+            FeatureSet featureSet,
+            int geometryType, 
+            boolean checkType
+        ) throws ExporttoServiceException {
 
         String providerName = params.getDataStoreName();
         String explorerName = explorer.getProviderName();
@@ -294,45 +268,46 @@
 
         DisposableIterator it = null;
         try {
-            EditableFeatureType type =
-                featureStore.getDefaultFeatureType().getCopy().getEditable();
+            EditableFeatureType type = this.options.getSourceFeatureType().getCopy().getEditable();
 
-            FeatureAttributeDescriptor fad =
-                (FeatureAttributeDescriptor) type.get(type
-                    .getDefaultGeometryAttributeName());
-
-            type.remove(fad.getName());
-            EditableFeatureAttributeDescriptor efad =
-                type.add(fad.getName(), fad.getType(), fad.getSize());
-            efad.setDefaultValue(fad.getDefaultValue());
-
-            int gsubtype = fad.getGeomType().getSubType();
+            String geomFieldName = this.options.getGeometryFieldName();
+            
+            FeatureAttributeDescriptor geomFieldDescSource = (FeatureAttributeDescriptor) type.getDefaultGeometryAttribute();
+            if( geomFieldDescSource!=null ) { 
+                type.remove(geomFieldDescSource.getName());
+            }
+            EditableFeatureAttributeDescriptor geomFieldDescTarget = type.add(
+                    "GEOMETRY",
+                    this.options.getGeometryTypeAsInt()
+            );
+            geomFieldDescTarget.setDefaultValue(null);
+            int gsubtype = this.options.getGeometrySubtype();
             // El shp solo soporta los subtipos 2D y 3D
-            switch( gsubtype ) {
-            case Geometry.SUBTYPES.GEOM2D:
-                break;
-            case Geometry.SUBTYPES.GEOM3D:
-                break;
-            default:
-                // Forzaremos las geometrias a 3D
-                gsubtype = Geometry.SUBTYPES.GEOM3D;
-                break;
+            switch (gsubtype) {
+                case Geometry.SUBTYPES.GEOM2D:
+                    break;
+                case Geometry.SUBTYPES.GEOM3D:
+                    break;
+                default:
+                    // Forzaremos las geometrias a 3D
+                    gsubtype = Geometry.SUBTYPES.GEOM3D;
+                    break;
             }
             GeometryType gty = null;
             try {
+                GeometryManager geoManager = GeometryLocator.getGeometryManager();
                 gty = geoManager.getGeometryType(geometryType, gsubtype);
             } catch (Exception e) {
                 throw new ExporttoServiceException(e);
             }
 
-            efad.setGeometryType(gty);
+            geomFieldDescTarget.setGeometryType(gty);
 
-            efad.setName(this.nameTranslator.getTargetName(fad.getName()));
-            efad.setPrecision(fad.getPrecision());
+            geomFieldDescTarget.setName(this.nameTranslator.getTargetName(geomFieldDescSource.getName()));
+            geomFieldDescTarget.setPrecision(geomFieldDescSource.getPrecision());
 
+            type.setDefaultGeometryAttributeName(geomFieldDescTarget.getName());
 
-            type.setDefaultGeometryAttributeName(efad.getName());
-
             // ==========================
             fixNames(type);
             // ==========================
@@ -344,9 +319,8 @@
             DataManager manager = DALLocator.getDataManager();
 
             manager.newStore(explorerName, providerName, params, true);
-            FeatureStore target =
-                (FeatureStore) manager.openStore(providerName, params);
-
+            
+            FeatureStore target = (FeatureStore) manager.openStore(providerName, params);
             FeatureType targetType = target.getDefaultFeatureType();
 
             taskStatus.setRangeOfValues(0, featureSet.getSize());
@@ -357,84 +331,111 @@
 
             // ================================================
             // Reprojection stuff
-            Geometry reproj_geom = null;
-            EditableFeature edit_feat = null;
-            IProjection sourceProjection =
-                featureStore.getDefaultFeatureType().getDefaultGeometryAttribute().getSRS();
+            Geometry reproj_geom;
+            EditableFeature edit_feat;
+            IProjection sourceProjection
+                    = options.getSourceFeatureType().getDefaultGeometryAttribute().getSRS();
 
             ICoordTrans coord_trans = null;
             // this comparison is perhaps too preventive
             // we could  have two instances of same projection
             // so we would do more computations than needed
-            if (sourceProjection != null && sourceProjection != this.projection) {
-                coord_trans = sourceProjection.getCT(this.projection);
+            if (sourceProjection != null && sourceProjection != this.options.getTargetProjection()) {
+                coord_trans = sourceProjection.getCT(this.options.getTargetProjection());
             }
             // ================================================
 
-            List<Geometry> extracted = null;
-            Geometry gitem = null;
-
+            List<Geometry> extracted;
+            Geometry gitem ;
+            Coercion toGeometry = ToolsLocator.getDataTypesManager()
+                    .get(DataTypes.GEOMETRY).getCoercion();
+            
             while (it.hasNext()) {
 
                 Feature feature = (Feature) it.next();
-                gitem = feature.getDefaultGeometry();
-
-                if (checkType) {
-                    extracted = getGeometriesFrom(gitem, geometryType);
-                    if (extracted.size() == 0) {
-                        // found no geometries of correct type
-                        continue;
-                    } else {
-                        if (geometryType != Geometry.TYPES.POINT) {
-                            // If not points, merge geometries
-                            // (curves or surfaces)
-                            try {
-                                gitem = union(extracted);
-                                extracted = new ArrayList<Geometry>();
-                                extracted.add(gitem);
-                            } catch (Exception ex) {
-                                there_was_error = true;
-                                logger.info("Error in union.", ex);
+                if( geomFieldName==null ) {
+                    edit_feat = target.createNewFeature(true);
+                    //
+                    // Accumulate error in boolean.
+                    // This also fixes field names (using origNameToDbfName)
+                    // 
+                    there_was_error = there_was_error |
+                        setNonNulls(
+                                options.getSourceFeatureType(),
+                                targetType, 
+                                feature, 
+                                edit_feat
+                        );
+                    edit_feat.setDefaultGeometry(null);                    
+                    target.insert(edit_feat);
+                } else {
+                    Object x = feature.getGeometry(geomFieldName);
+                    try {
+                        gitem = (Geometry) toGeometry.coerce(x);
+                    } catch (CoercionException ex) {
+                        gitem = null;
+                    }
+                    
+                    if (checkType) {
+                        extracted = getGeometriesFrom(gitem, geometryType);
+                        if (extracted.isEmpty()) {
+                            // found no geometries of correct type
+                            continue;
+                        } else {
+                            if (geometryType != Geometry.TYPES.POINT) {
+                                // If not points, merge geometries
+                                // (curves or surfaces)
+                                try {
+                                    gitem = union(extracted);
+                                    extracted = new ArrayList<>();
+                                    extracted.add(gitem);
+                                } catch (Exception ex) {
+                                    there_was_error = true;
+                                    logger.info("Error in union.", ex);
+                                }
+                            } else {
+                                // only in the case of points, we can have several
+                                // geometries if source is multipoint
                             }
-                        } else {
-                            // only in the case of points, we can have several
-                            // geometries if source is multipoint
                         }
+                    } else {
+                        extracted = new ArrayList<>();
+                        extracted.add(gitem);
                     }
-                } else {
-                    extracted = new ArrayList<Geometry>();
-                    extracted.add(gitem);
-                }
 
-                for (int i=0; i<extracted.size(); i++) {
-                    gitem = extracted.get(i);
+                    for (int i = 0; i < extracted.size(); i++) {
+                        gitem = extracted.get(i);
 
-                    if( gsubtype==Geometry.SUBTYPES.GEOM2D ) {
-                        gitem = force2D(gitem, geometryType);
-                    } else {
-                        gitem = force3D(gitem, geometryType);
+                        if (gsubtype == Geometry.SUBTYPES.GEOM2D) {
+                            gitem = force2D(gitem, geometryType);
+                        } else {
+                            gitem = force3D(gitem, geometryType);
+                        }
+                        edit_feat = target.createNewFeature(true);
+                        //
+                        // Accumulate error in boolean.
+                        // This also fixes field names (using origNameToDbfName)
+                        // 
+                        there_was_error = there_was_error |
+                            setNonNulls(
+                                    options.getSourceFeatureType(),
+                                    targetType, 
+                                    feature, 
+                                    edit_feat
+                            );
+                        edit_feat.setDefaultGeometry(gitem);
+                        // ================================================
+                        // Reprojection stuff
+                        if (coord_trans != null && gitem != null) {
+                            reproj_geom = edit_feat.getDefaultGeometry();
+                            reproj_geom = reproj_geom.cloneGeometry();
+                            reproj_geom.reProject(coord_trans);
+                            edit_feat.setDefaultGeometry(reproj_geom);
+                        }
+                        // ================================================
+                        target.insert(edit_feat);
                     }
-                    edit_feat = target.createNewFeature(true);
-                    there_was_error = there_was_error |
-                    		/*
-                    		 * Accumulate error in boolean.
-                    		 * This also fixes field names (using origNameToDbfName)
-                    		 */
-                    		setNonNulls(featureStore.getDefaultFeatureType(),
-                    				targetType, feature, edit_feat);
-                    edit_feat.setDefaultGeometry(gitem);
-                    // ================================================
-                    // Reprojection stuff
-                    if (coord_trans != null && gitem != null ) {
-                        reproj_geom = edit_feat.getDefaultGeometry();
-                        reproj_geom = reproj_geom.cloneGeometry();
-                        reproj_geom.reProject(coord_trans);
-                        edit_feat.setDefaultGeometry(reproj_geom);
-                    }
-                    // ================================================
-                    target.insert(edit_feat);
                 }
-
                 featureCount++;
                 this.taskStatus.setCurValue(featureCount);
 
@@ -452,54 +453,54 @@
 
         if (there_was_error) {
             Exception cause = new Exception(
-                "_Issues_with_attributes_or_geometries");
+                    "_Issues_with_attributes_or_geometries");
             throw new ExporttoServiceException(cause);
         }
     }
 
-
     private void fixNames(EditableFeatureType eft) {
 
-    	FeatureAttributeDescriptor[] atts = eft.getAttributeDescriptors();
-    	EditableFeatureAttributeDescriptor efad = null;
-    	for (int i=0; i<atts.length; i++) {
-    		String new_name = this.nameTranslator.getTargetName(atts[i].getName());
-    		if (new_name != null) {
-    			eft.remove(atts[i].getName());
-    			efad = eft.add(new_name, atts[i].getType(), atts[i].getSize());
-    			efad.setPrecision(atts[i].getPrecision());
-    			if(atts[i].getDataType().getType() == DataTypes.GEOMETRY){
-    				efad.setGeometryType(atts[i].getGeomType());
-    			}
-    		}
-    	}
-	}
+        FeatureAttributeDescriptor[] atts = eft.getAttributeDescriptors();
+        EditableFeatureAttributeDescriptor efad;
+        for (int i = 0; i < atts.length; i++) {
+            String new_name = this.nameTranslator.getTargetName(atts[i].getName());
+            if (new_name != null) {
+                eft.remove(atts[i].getName());
+                efad = eft.add(new_name, atts[i].getType(), atts[i].getSize());
+                efad.setPrecision(atts[i].getPrecision());
+                if (atts[i].getDataType().getType() == DataTypes.GEOMETRY) {
+                    efad.setGeometryType(atts[i].getGeomType());
+                }
+            }
+        }
+    }
 
-	/**
+    /**
      * @param gitem
      * @param geometryType2
      * @return
      */
     private Geometry force2D(Geometry ge, int gt) throws CreateGeometryException {
-        if( ge == null ) {
+        if (ge == null) {
             return null;
         }
         if (ge.getGeometryType().getSubType() == Geometry.SUBTYPES.GEOM2D) {
             return ge;
         } else {
+            GeometryManager geoManager = GeometryLocator.getGeometryManager();
             switch (gt) {
-            case Geometry.TYPES.POINT:
-                Point p = (Point) ge;
-                Point point = geoManager.createPoint(
-                    p.getX(), p.getY(),
-                    Geometry.SUBTYPES.GEOM2D);
-                return point;
-            case Geometry.TYPES.CURVE:
-                return geoManager.createCurve(ge.getGeneralPath(), Geometry.SUBTYPES.GEOM2D);
-            case Geometry.TYPES.SURFACE:
-                return geoManager.createSurface(ge.getGeneralPath(), Geometry.SUBTYPES.GEOM2D);
-            default:
-                return ge;
+                case Geometry.TYPES.POINT:
+                    Point p = (Point) ge;
+                    Point point = geoManager.createPoint(
+                            p.getX(), p.getY(),
+                            Geometry.SUBTYPES.GEOM2D);
+                    return point;
+                case Geometry.TYPES.CURVE:
+                    return geoManager.createCurve(ge.getGeneralPath(), Geometry.SUBTYPES.GEOM2D);
+                case Geometry.TYPES.SURFACE:
+                    return geoManager.createSurface(ge.getGeneralPath(), Geometry.SUBTYPES.GEOM2D);
+                default:
+                    return ge;
             }
         }
     }
@@ -510,19 +511,20 @@
      * @return
      */
     private Geometry force3D(Geometry ge, int gt) throws CreateGeometryException {
-        if( ge == null ) {
+        if (ge == null) {
             return null;
         }
         // Los try catch que hay abajo, son para asegurarse de que la geometría original
         // tiene las 3 dimensiones necesarias. A veces nos llegan geometrías que aunque son de subtipo GEOM3D
         // los puntos del generalPath que contienen no son 3D y no tienen la coordenada Z
-            Point point;
-            switch (gt) {
+        GeometryManager geoManager = GeometryLocator.getGeometryManager();
+        Point point;
+        switch (gt) {
             case Geometry.TYPES.POINT:
                 Point p = (Point) ge;
                 point = geoManager.createPoint(
-                    p.getX(), p.getY(),
-                    Geometry.SUBTYPES.GEOM3D);
+                        p.getX(), p.getY(),
+                        Geometry.SUBTYPES.GEOM3D);
                 try {
                     point.setCoordinateAt(2, p.getCoordinateAt(2));
                 } catch (Exception e) {
@@ -532,8 +534,8 @@
             case Geometry.TYPES.CURVE:
             case Geometry.TYPES.LINE:
                 Line line = geoManager.createLine(Geometry.SUBTYPES.GEOM3D);
-                for (int i = 0; i < ((OrientablePrimitive)ge).getNumVertices(); i++) {
-                    Point vertex = ((OrientablePrimitive)ge).getVertex(i);
+                for (int i = 0; i < ((OrientablePrimitive) ge).getNumVertices(); i++) {
+                    Point vertex = ((OrientablePrimitive) ge).getVertex(i);
                     point = geoManager.createPoint(vertex.getX(), vertex.getY(), Geometry.SUBTYPES.GEOM3D);
                     try {
                         point.setCoordinateAt(2, vertex.getCoordinateAt(2));
@@ -541,14 +543,15 @@
                         point.setCoordinateAt(2, 0);
                     }
                     line.addVertex(point);
-                };
+                }
+                ;
                 return line;
 
             case Geometry.TYPES.SURFACE:
             case Geometry.TYPES.POLYGON:
                 Polygon polygon = geoManager.createPolygon(Geometry.SUBTYPES.GEOM3D);
-                for (int i = 0; i < ((OrientablePrimitive)ge).getNumVertices(); i++) {
-                    Point vertex = ((OrientablePrimitive)ge).getVertex(i);
+                for (int i = 0; i < ((OrientablePrimitive) ge).getNumVertices(); i++) {
+                    Point vertex = ((OrientablePrimitive) ge).getVertex(i);
                     point = geoManager.createPoint(vertex.getX(), vertex.getY(), Geometry.SUBTYPES.GEOM3D);
                     try {
                         point.setCoordinateAt(2, vertex.getCoordinateAt(2));
@@ -556,40 +559,41 @@
                         point.setCoordinateAt(2, 0);
                     }
                     polygon.addVertex(point);
-                };
+                }
+                ;
                 return polygon;
             default:
                 return ge;
-            }
+        }
     }
-    private void createPoint(int geom3d) {
-        // TODO Auto-generated method stub
 
-    }
 
     /**
      * @param feature
      * @param edit_feat
      */
     private boolean setNonNulls(
-        FeatureType src_ft, FeatureType target_ft,
-        Feature feat, EditableFeature edit_f) {
+            FeatureType src_ft, 
+            FeatureType target_ft,
+            Feature feat, 
+            EditableFeature edit_f
+        ) {
 
         boolean error = false;
         FeatureAttributeDescriptor[] atts = src_ft.getAttributeDescriptors();
-        String orig_name = null;
-        String dbf_name = null;
-        for (int i=0; i<atts.length; i++) {
+        String orig_name;
+        String dbf_name;
+        for (int i = 0; i < atts.length; i++) {
             if (atts[i].getType() != org.gvsig.fmap.geom.DataTypes.GEOMETRY) {
 
                 Object val = null;
 
                 try {
-                	orig_name = atts[i].getName();
-                	dbf_name = this.nameTranslator.getTargetName(orig_name);
-                	if (dbf_name == null) {
-                		dbf_name = orig_name;
-                	}
+                    orig_name = atts[i].getName();
+                    dbf_name = this.nameTranslator.getTargetName(orig_name);
+                    if (dbf_name == null) {
+                        dbf_name = orig_name;
+                    }
                     val = feat.get(orig_name);
                     if (val != null) {
                         edit_f.set(dbf_name, val);
@@ -604,9 +608,9 @@
     }
 
     private Geometry union(List<Geometry> geoms)
-        throws GeometryOperationNotSupportedException, GeometryOperationException {
+            throws GeometryOperationNotSupportedException, GeometryOperationException {
 
-        if (geoms == null || geoms.size() == 0) {
+        if ( geoms == null || geoms.isEmpty()) {
             return null;
         }
 
@@ -615,11 +619,12 @@
         }
 
         Geometry resp = geoms.get(0);
-        for (int i=1; i<geoms.size(); i++) {
+        for (int i = 1; i < geoms.size(); i++) {
             resp = resp.union(geoms.get(i));
         }
         return resp;
     }
+
     /**
      * @param feat_geom_type
      * @param type must be POINT, LINE or POLYGON (Geometry.TYPES)
@@ -627,8 +632,8 @@
      */
     private List<Geometry> getGeometriesFrom(Geometry in_geom, int type) {
 
-        List<Geometry> resp = new ArrayList<Geometry>();
-        Aggregate agg = null;
+        List<Geometry> resp = new ArrayList<>();
+        Aggregate agg;
 
         /*
          * If input geometry is aggregate, search its
@@ -636,9 +641,9 @@
          */
         if (in_geom instanceof Aggregate) {
             agg = (Aggregate) in_geom;
-            Geometry item = null;
-            List<Geometry> add_parts = new ArrayList<Geometry>();
-            for (int i=0; i<agg.getPrimitivesNumber(); i++) {
+            Geometry item;
+            List<Geometry> add_parts = new ArrayList<>();
+            for (int i = 0; i < agg.getPrimitivesNumber(); i++) {
                 item = agg.getPrimitiveAt(i);
                 add_parts = getGeometriesFrom(item, type);
                 resp.addAll(add_parts);
@@ -647,32 +652,31 @@
         }
 
         // ============================================
-
         switch (type) {
-        case Geometry.TYPES.POINT:
-            if (in_geom instanceof Point) {
-                resp.add(in_geom);
-            }
-            // =======================================================
-            break;
-        case Geometry.TYPES.CURVE:
-            if (in_geom instanceof Curve) {
-                resp.add(in_geom);
-            }
-            // =======================================================
-            break;
-        case Geometry.TYPES.SURFACE:
-            if (in_geom instanceof Surface) {
-                resp.add(in_geom);
-            }
-            // =======================================================
-            break;
+            case Geometry.TYPES.POINT:
+                if (in_geom instanceof Point) {
+                    resp.add(in_geom);
+                }
+                // =======================================================
+                break;
+            case Geometry.TYPES.CURVE:
+                if (in_geom instanceof Curve) {
+                    resp.add(in_geom);
+                }
+                // =======================================================
+                break;
+            case Geometry.TYPES.SURFACE:
+                if (in_geom instanceof Surface) {
+                    resp.add(in_geom);
+                }
+                // =======================================================
+                break;
         }
         return resp;
     }
 
     private void finishAction(String layerName, File shp_file, IProjection proj)
-    throws ExporttoServiceException {
+            throws ExporttoServiceException {
 
         if (exporttoServiceFinishAction != null) {
 
@@ -680,11 +684,11 @@
              * Export is done. We notify with a SHPStoreParameters,
              * not with the NewSHPParameters we have used:
              */
-        	DataStoreParameters shp_params = null;
+            DataStoreParameters shp_params = null;
             try {
-	            shp_params = DALLocator.getDataManager().createStoreParameters("Shape");
-	            shp_params.setDynValue("shpfile", shp_file);
-	            shp_params.setDynValue("CRS", proj);
+                shp_params = DALLocator.getDataManager().createStoreParameters("Shape");
+                shp_params.setDynValue("shpfile", shp_file);
+                shp_params.setDynValue("CRS", proj);
 
                 shp_params.validate();
             } catch (Exception e) {
@@ -694,8 +698,9 @@
         }
     }
 
+    @Override
     public void setFinishAction(
-        ExporttoServiceFinishAction exporttoServiceFinishAction) {
+            ExporttoServiceFinishAction exporttoServiceFinishAction) {
         this.exporttoServiceFinishAction = exporttoServiceFinishAction;
     }
 }
Index: 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/ExporttoJDBCOptions.java
===================================================================
--- 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/ExporttoJDBCOptions.java	(revision 43919)
+++ 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/ExporttoJDBCOptions.java	(revision 43920)
@@ -6,16 +6,14 @@
 
 package org.gvsig.exportto.swing.prov.jdbc;
 
-import java.util.List;
-import org.cresques.cts.IProjection;
-import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.exportto.swing.spi.options.ExportGeometryOptions;
 import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
 
 /**
  *
  * @author jjdelcerro
  */
-public interface ExporttoJDBCOptions  {
+public interface ExporttoJDBCOptions  extends ExportGeometryOptions {
 
     public JDBCServerExplorerParameters getExplorerParameters();
     
@@ -27,26 +25,16 @@
     
     public String getPrimaryKey();
     
-    public int getGeometryChecks();
-    
-    public int getGeometryChecksAction();
-    
     public String getStoreName();
 
     public String getExplorerName();
     
-    public FeatureStore getSource();
-    
-    public boolean getTryToFixGeometry();
-
     public boolean getTranslateIdentifiersToLowerCase();
 
     public boolean getRemoveSpacesInIdentifiers();
     
     public boolean getTranslateHyphens();
     
-    public IProjection getTargetProjection();
-    
     public String getSelectRole();
     
     public String getInsertRole();
@@ -68,4 +56,110 @@
     public boolean getCreateIndexInGeometryRow();
     
     public boolean getUpdateTableStatistics();
+   
+
+    /**
+     * @param allRole the allRole to set
+     */
+    void setAllRole(String allRole);
+
+    /**
+     * @param canCreatetable the canCreatetable to set
+     */
+    void setCanCreatetable(boolean canCreatetable);
+
+    /**
+     * @param createIndexInGeometryRow the createIndexInGeometryRow to set
+     */
+    void setCreateIndexInGeometryRow(boolean createIndexInGeometryRow);
+
+    /**
+     * @param deleteRole the deleteRole to set
+     */
+    void setDeleteRole(String deleteRole);
+
+    /**
+     * @param explorerName the explorerName to set
+     */
+    void setExplorerName(String explorerName);
+
+    /**
+     * @param explorerParameters the explorerParameters to set
+     */
+    void setExplorerParameters(JDBCServerExplorerParameters explorerParameters);
+
+    /**
+     * @param insertRole the insertRole to set
+     */
+    void setInsertRole(String insertRole);
+
+    /**
+     * @param postCreatingStatement the postCreatingStatement to set
+     */
+    void setPostCreatingStatement(String postCreatingStatement);
+
+    /**
+     * @param primaryKey the primaryKey to set
+     */
+    void setPrimaryKey(String primaryKey);
+
+    /**
+     * @param referenceRole the referenceRole to set
+     */
+    void setReferenceRole(String referenceRole);
+
+    /**
+     * @param removeSpacesInIdentifiers the removeSpacesInIdentifiers to set
+     */
+    void setRemoveSpacesInIdentifiers(boolean removeSpacesInIdentifiers);
+
+    /**
+     * @param schema the schema to set
+     */
+    void setSchema(String schema);
+
+    /**
+     * @param selectRole the selectRole to set
+     */
+    void setSelectRole(String selectRole);
+
+    /**
+     * @param storeName the storeName to set
+     */
+    void setStoreName(String storeName);
+
+    /**
+     * @param tableName the tableName to set
+     */
+    void setTableName(String tableName);
+
+    /**
+     * @param translateHyphens the translateHyphens to set
+     */
+    void setTranslateHyphens(boolean translateHyphens);
+
+    /**
+     * @param translateIdentifiersToLowerCase the translateIdentifiersToLowerCase to set
+     */
+    void setTranslateIdentifiersToLowerCase(boolean translateIdentifiersToLowerCase);
+
+    /**
+     * @param triggerRole the triggerRole to set
+     */
+    void setTriggerRole(String triggerRole);
+
+    /**
+     * @param truncateRole the truncateRole to set
+     */
+    void setTruncateRole(String truncateRole);
+
+    /**
+     * @param updateRole the updateRole to set
+     */
+    void setUpdateRole(String updateRole);
+
+    /**
+     * @param updateTableStatistics the updateTableStatistics to set
+     */
+    void setUpdateTableStatistics(boolean updateTableStatistics);
 }
Index: 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/BaseExporttoJDBCProviderFactory.java
===================================================================
--- 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/BaseExporttoJDBCProviderFactory.java	(revision 43919)
+++ 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/BaseExporttoJDBCProviderFactory.java	(revision 43920)
@@ -25,7 +25,6 @@
 
 import java.util.Iterator;
 import java.util.List;
-import org.cresques.cts.IProjection;
 import org.gvsig.exportto.swing.ExporttoSwingManager;
 import org.gvsig.exportto.swing.spi.AbstractExporttoProviderFactory;
 import org.gvsig.fmap.dal.DALLocator;
@@ -57,15 +56,18 @@
             ExporttoSwingManager.VECTORIAL_TABLE_WITH_GEOMETRY});
     }
 
+    @Override
     public String getName() {
         return PROVIDER_NAME;
     }
 
+    @Override
     public String getDescription() {
         return Messages.getText("general_exporter_description",
                 new String[]{"DataBase (" + getConnectorNames() + " throws JDBC)"});
     }
 
+    @Override
     public String getLabel() {
         return Messages.getText("general_exporter_label",
                 new String[]{"DataBase (throws JDBC)"});
@@ -102,10 +104,12 @@
         }
     }
 
+    @Override
     public Provider create(DynObject parameters, ProviderServices services) throws ServiceException {
-        return new BaseExporttoJDBCProvider(services,
-                (FeatureStore) parameters.getDynValue(PARAMETER_FEATURESTORE),
-                (IProjection) parameters.getDynValue(PARAMETER_PROJECTION));
+        return new BaseExporttoJDBCProvider(
+                services,
+                (FeatureStore) parameters.getDynValue(PARAMETER_FEATURESTORE)
+        );
     }
 
 }
Index: 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/ExporrtoJDBCService.java
===================================================================
--- 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/ExporrtoJDBCService.java	(revision 43919)
+++ 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/ExporrtoJDBCService.java	(revision 43920)
@@ -29,9 +29,10 @@
 import org.gvsig.exportto.ExporttoService;
 import org.gvsig.exportto.ExporttoServiceException;
 import org.gvsig.exportto.ExporttoServiceFinishAction;
+import org.gvsig.exportto.swing.spi.ExportGeometryUtils;
+import org.gvsig.exportto.swing.spi.ExportGeometryUtils.FixGeometryStatus;
 import org.gvsig.fmap.dal.DALLocator;
 import org.gvsig.fmap.dal.DataManager;
-import org.gvsig.fmap.dal.DataStoreProviderFactory;
 import org.gvsig.fmap.dal.DataTypes;
 import org.gvsig.fmap.dal.feature.EditableFeature;
 import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
@@ -61,14 +62,6 @@
 
     private static final Logger logger = LoggerFactory.getLogger(ExporrtoJDBCService.class);
 
-    public static final int CHECK_NONE = 0;
-    public static final int CHECK_IF_CORRUPT = 1;
-    public static final int CHECK_IF_VALID = 2;
-
-    public static final int ACTION_SET_GEOMETRY_TO_NULL = 0;
-    public static final int ACTION_SKIP_FEATURE = 1;
-    public static final int ACTION_ABORT = 2;
-
     private ExporttoServiceFinishAction exporttoServiceFinishAction = null;
     private final ExporttoJDBCOptions options;
     private FeatureType targetFeatureType = null;
@@ -102,7 +95,7 @@
         
         boolean preferNotToUseNonNullRestrictions = factory.preferNotToUseNonNullRestrictions();
         
-        targetTempFeatureType = options.getSource().getDefaultFeatureType().getCopy();
+        targetTempFeatureType = options.getSourceFeatureType().getCopy();
         targetEditableFeatureType = targetTempFeatureType.getEditable();
 
         // Remove inherited primary keys from the data source and remove NotNull
@@ -204,7 +197,7 @@
 
             // ======================================
             // Reprojection
-            FeatureAttributeDescriptor geo_att = this.options.getSource().getDefaultFeatureType().getDefaultGeometryAttribute();
+            FeatureAttributeDescriptor geo_att = this.options.getSourceFeatureType().getDefaultGeometryAttribute();
             IProjection sourceProjection;
             ICoordTrans coord_trans = null;
             Geometry reproj_geom;
@@ -238,7 +231,7 @@
             openParams.setTable(this.options.getTableName());
             openParams.setCRS(targetProjection);
             openParams.setDefaultGeometryField(
-                    this.options.getSource().getDefaultFeatureType().getDefaultGeometryAttributeName()
+                    this.options.getSourceFeatureType().getDefaultGeometryAttributeName()
             );
             target = (FeatureStore) explorer.open(openParams);
 
@@ -290,63 +283,15 @@
                 }
 
                 Geometry geometry = targetFeature.getGeometry(targetGeometryIndex);
-                if (geometry != null) {
-                    switch (this.options.getGeometryChecks()) {
-                        case CHECK_IF_CORRUPT:
-                            geometryCheck = geometry.getValidationStatus();
-                            if (geometryCheck.getStatusCode() == Geometry.ValidationStatus.CURRUPTED) {
-                                switch (this.options.getGeometryChecksAction()) {
-                                    case ACTION_SET_GEOMETRY_TO_NULL:
-                                        targetFeature.setDefaultGeometry(null);
-                                        break;
-                                    case ACTION_SKIP_FEATURE:
-                                        continue;
-                                    case ACTION_ABORT:
-                                    default:
-                                        throw new InvalidGeometryException(targetFeature, geometryCheck.getMessage());
-                                }
-                            }
-
-                            break;
-
-                        case CHECK_IF_VALID:
-                            geometryCheck = geometry.getValidationStatus();
-                            if (!geometryCheck.isValid()) {
-                                Geometry g = null;
-                                if (this.options.getTryToFixGeometry()) {
-                                    g = geometry.makeValid();
-                                    if (g != null) {
-                                        targetFeature.setDefaultGeometry(g);
-                                    }
-                                }
-                                if (g == null) {
-                                    switch (this.options.getGeometryChecksAction()) {
-                                        case ACTION_SET_GEOMETRY_TO_NULL:
-                                            targetFeature.setDefaultGeometry(null);
-                                            break;
-                                        case ACTION_SKIP_FEATURE:
-                                            continue;
-                                        case ACTION_ABORT:
-                                        default:
-                                            throw new InvalidGeometryException(targetFeature, geometryCheck.getMessage());
-                                    }
-                                }
-                            }
-
-                            break;
-                        case CHECK_NONE:
-                        default:
-                            break;
-                    }
-                    // ================================================
-                    // Reprojection
-                    if (geo_att != null && coord_trans != null) {
-                        reproj_geom = targetFeature.getDefaultGeometry();
-                        reproj_geom = reproj_geom.cloneGeometry();
-                        reproj_geom.reProject(coord_trans);
-                        targetFeature.setDefaultGeometry(reproj_geom);
-                    }
-                    // ================================================
+                FixGeometryStatus check = ExportGeometryUtils.fixGeometry(options, coord_trans, geometry);
+                switch(check.getState()) {
+                    case FixGeometryStatus.STATE_OK:
+                        targetFeature.setDefaultGeometry(check.getGeometry());
+                        break;
+                    case FixGeometryStatus.STATE_SKIP:
+                        continue;
+                    case FixGeometryStatus.STATE_ABORT:
+                        throw new InvalidGeometryException(targetFeature, check.getMessage());
                 }
 
                 target.insert(targetFeature);
Index: 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/BaseExporttoJDBCProvider.java
===================================================================
--- 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/BaseExporttoJDBCProvider.java	(revision 43919)
+++ 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/BaseExporttoJDBCProvider.java	(revision 43920)
@@ -23,11 +23,7 @@
  */
 package org.gvsig.exportto.swing.prov.jdbc;
 
-import java.util.ArrayList;
-import java.util.List;
-import org.cresques.cts.IProjection;
 import org.gvsig.exportto.ExporttoService;
-import org.gvsig.exportto.swing.prov.jdbc.panel.CheckGeometriesPanel;
 import org.gvsig.exportto.swing.prov.jdbc.panel.GeometryIndexPanel;
 import org.gvsig.exportto.swing.prov.jdbc.panel.IdentifiersOptionsPanel;
 import org.gvsig.exportto.swing.prov.jdbc.panel.JDBCConnectionPanel;
@@ -36,15 +32,15 @@
 import org.gvsig.exportto.swing.prov.jdbc.panel.PostCreatingStatementPanel;
 import org.gvsig.exportto.swing.prov.jdbc.panel.SelectPkPanel;
 import org.gvsig.exportto.swing.prov.jdbc.panel.SelectTableNamePanel;
+import org.gvsig.exportto.swing.spi.AbstractExporttoSwingProvider;
 import org.gvsig.exportto.swing.spi.ExporttoSwingProvider;
-import org.gvsig.exportto.swing.spi.ExporttoSwingProviderPanel;
+import org.gvsig.exportto.swing.spi.panels.CheckGeometriesPanel;
 import org.gvsig.fmap.dal.DALLocator;
 import org.gvsig.fmap.dal.DataManager;
 import org.gvsig.fmap.dal.feature.FeatureStore;
 import org.gvsig.fmap.dal.feature.FeatureType;
 import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorer;
 import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
-import org.gvsig.tools.service.spi.AbstractProvider;
 import org.gvsig.tools.service.spi.ProviderServices;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -55,34 +51,21 @@
  * @author gvSIG Team
  * @version $Id$
  */
-public class BaseExporttoJDBCProvider extends AbstractProvider
-        implements ExporttoJDBCOptions, ExporttoSwingProvider {
+public class BaseExporttoJDBCProvider 
+        extends AbstractExporttoSwingProvider
+        implements ExporttoSwingProvider {
 
-    private static Logger logger = LoggerFactory.getLogger(
+    private static final Logger logger = LoggerFactory.getLogger(
             BaseExporttoJDBCProvider.class);
 
-    protected List<ExporttoSwingProviderPanel> panels = new ArrayList<ExporttoSwingProviderPanel>();
-
-    protected FeatureStore sourceStore;
-    protected IProjection projection;
-    private final JDBCConnectionPanel connectionPanel;
-    private final SelectPkPanel selectPkPanel;
-    private final SelectTableNamePanel selectTableNamePanel;
-    private final CheckGeometriesPanel checkGeometriesPanel;
-    private final IdentifiersOptionsPanel identifiersOptionsPanel;
-
-    private final GeometryIndexPanel geometryIndexPanel;
-    private final UpdateTableStatisticsPanel updateTableStatistics;
-    private final PermissionsPanel permissionsPanel;
-    private final PostCreatingStatementPanel postCreatingStatementPanel;
-
     private String storeName = null;
 
-    public BaseExporttoJDBCProvider(ProviderServices providerServices,
-            FeatureStore sourceStore, IProjection projection) {
-        super(providerServices);
-        this.sourceStore = sourceStore;
-        this.projection = projection;
+    @SuppressWarnings("OverridableMethodCallInConstructor")
+    public BaseExporttoJDBCProvider(
+            ProviderServices providerServices,
+            FeatureStore sourceStore
+        ) {
+        super(providerServices, sourceStore);
 
         FeatureType ftype = null;
         try {
@@ -91,103 +74,40 @@
             logger.warn("Can't retrieve the feature type to use in the export to JDBC panel.", exc);
 
         }
-        this.connectionPanel = new JDBCConnectionPanel(this);
-        this.selectTableNamePanel = new SelectTableNamePanel(this);
-        this.selectPkPanel = new SelectPkPanel(this);
-        this.checkGeometriesPanel = new CheckGeometriesPanel(this);
-        this.identifiersOptionsPanel = new IdentifiersOptionsPanel(this);
+        this.panelAdd(new IdentifiersOptionsPanel(this.getOptions()));
+        this.panelAdd(new JDBCConnectionPanel(this.getOptions()));
+        this.panelAdd(new SelectTableNamePanel(this.getOptions()));
+        this.panelAdd(new SelectPkPanel(this.getOptions()));
+        this.panelAdd(new GeometryIndexPanel(this.getOptions()));
+        this.panelAdd(new CheckGeometriesPanel(this.getOptions()));
+        this.panelAdd(new PermissionsPanel(this.getOptions()));
+        this.panelAdd(new UpdateTableStatisticsPanel(this.getOptions()));
+        this.panelAdd(new PostCreatingStatementPanel(this.getOptions()));
 
-        this.geometryIndexPanel = new GeometryIndexPanel(this);
-        this.updateTableStatistics = new UpdateTableStatisticsPanel(this);
-        this.permissionsPanel = new PermissionsPanel(this);
-        this.postCreatingStatementPanel = new PostCreatingStatementPanel(this);
-
-        this.panels.add(this.identifiersOptionsPanel);
-        this.panels.add(this.connectionPanel);
-        this.panels.add(this.selectTableNamePanel);
-        this.panels.add(this.selectPkPanel);
-        this.panels.add(this.geometryIndexPanel);
-        this.panels.add(this.checkGeometriesPanel);
-
-        this.panels.add(this.permissionsPanel);
-        this.panels.add(this.updateTableStatistics);
-        this.panels.add(this.postCreatingStatementPanel);
-
     }
 
-
-
-    public int getPanelCount() {
-        return this.panels.size();
+    
+    @Override
+    public ExporttoJDBCOptions getOptions() {
+        if( this.options == null ) {
+            this.options = new BaseExporttoJDBCOptions();                    
+        }
+        return (ExporttoJDBCOptions) this.options;
     }
 
-    public ExporttoSwingProviderPanel getPanelAt(int index) {
-        return this.panels.get(index);
-    }
-
-    public FeatureStore getSource() {
-        return this.sourceStore;
-    }
-
+    @Override
     public ExporttoService createExporttoService() {
-        JDBCServerExplorerParameters explorerParameters = this.getExplorerParameters();
-        explorerParameters.setSchema(this.getSchema());
-        return new ExporrtoJDBCService(this);
+        ExporttoJDBCOptions theOptions = this.getOptions();
+        JDBCServerExplorerParameters explorerParameters = theOptions.getExplorerParameters();
+        explorerParameters.setSchema(theOptions.getSchema());
+        return new ExporrtoJDBCService(theOptions);
     }
 
-    @Override
-    public boolean getTranslateIdentifiersToLowerCase() {
-        return this.identifiersOptionsPanel.getTranslateToLowerCase();
-    }
 
-    public boolean getTranslateHyphens() {
-        return this.identifiersOptionsPanel.getTranslateHyphens();
-    }
-
-    public boolean getRemoveSpacesInIdentifiers() {
-        return this.identifiersOptionsPanel.getRemoveSpacesInTableName();
-    }
-
-    public JDBCServerExplorerParameters getExplorerParameters() {
-        return this.connectionPanel.getServerExplorerParameters();
-    }
-
-    public String getSchema() {
-        return this.selectTableNamePanel.getSchema();
-    }
-
-    public String getTableName() {
-        return this.selectTableNamePanel.getTableName();
-    }
-
-    public boolean canCreatetable() {
-        return this.selectTableNamePanel.canCreateTable();
-    }
-
-    public String getPrimaryKey() {
-        return this.selectPkPanel.getPrimaryKeyName();
-    }
-
-    public int getGeometryChecks() {
-        return this.checkGeometriesPanel.getGeometryChecks();
-    }
-
-    public int getGeometryChecksAction() {
-        return this.checkGeometriesPanel.getGeometryChecksAction();
-    }
-
-    public boolean getTryToFixGeometry() {
-        return this.checkGeometriesPanel.getTryToFixGeometry();
-    }
-
-    public String getExplorerName() {
-        return this.connectionPanel.getServerExplorerParameters().getExplorerName();
-    }
-
     public String getStoreName() {
         if ( this.storeName == null ) {
             try {
-                JDBCServerExplorerParameters explorerParameters = this.getExplorerParameters();
+                JDBCServerExplorerParameters explorerParameters = this.getOptions().getExplorerParameters();
                 if ( explorerParameters == null ) {
                     return null;
                 }
@@ -205,67 +125,12 @@
         return this.storeName;
     }
 
-    public IProjection getTargetProjection() {
-        return this.projection;
-    }
-
-    public String getSelectRole() {
-        return this.permissionsPanel.getSelectRole();
-    }
-
-    public String getInsertRole() {
-        return this.permissionsPanel.getInsertRole();
-    }
-
-    public String getUpdateRole() {
-        return this.permissionsPanel.getUpdateRole();
-    }
-
-    public String getDeleteRole() {
-        return this.permissionsPanel.getDeleteRole();
-    }
-
-    public String getTruncateRole() {
-        return this.permissionsPanel.getTruncateRole();
-    }
-
-    public String getReferenceRole() {
-        return this.permissionsPanel.getReferenceRole();
-    }
-
-    public String getTriggerRole() {
-        return this.permissionsPanel.getTriggerRole();
-    }
-
-    public String getAllRole() {
-        return this.permissionsPanel.getAllRole();
-    }
-
-    public String getPostCreatingStatement() {
-        return this.postCreatingStatementPanel.getPostCreatingStatement();
-    }
-
-    public boolean getCreateIndexInGeometryRow() {
-        return this.geometryIndexPanel.getCreateIndexInGeometryRow();
-    }
-
-    public boolean getUpdateTableStatistics() {
-        return this.updateTableStatistics.getUpdateTableStatistics();
-    }
-
     /**
-     * Sets the target projection to which should be exported
-     * @param targetProjection
-     */
-    public void setTargetProjection(IProjection targetProjection){
-        this.projection=targetProjection;
-    }
-
-    /**
      * Informs if it needs to ask for a target projection,
      * or if it is not needed or provided through its own wizard panel.
      * @return
      */
+    @Override
     public boolean needsPanelTargetProjection(){
         return true;
     }
Index: 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/BaseExporttoJDBCOptions.java
===================================================================
--- 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/BaseExporttoJDBCOptions.java	(revision 0)
+++ 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/BaseExporttoJDBCOptions.java	(revision 43920)
@@ -0,0 +1,379 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.gvsig.exportto.swing.prov.jdbc;
+
+import org.gvsig.exportto.swing.spi.options.BaseExportGeometryOptions;
+import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class BaseExporttoJDBCOptions 
+        extends BaseExportGeometryOptions
+        implements ExporttoJDBCOptions
+    {
+
+    private JDBCServerExplorerParameters explorerParameters;
+    private String schema;
+    private String tableName;
+    private boolean canCreatetable;
+    private String primaryKey;
+    private String storeName;
+    private String explorerName;
+    private boolean translateIdentifiersToLowerCase;
+    private boolean removeSpacesInIdentifiers;
+    private boolean translateHyphens;
+    private String selectRole;
+    private String insertRole;
+    private String updateRole;
+    private String deleteRole;
+    private String truncateRole;
+    private String referenceRole;
+    private String triggerRole;
+    private String allRole;
+    private String postCreatingStatement;
+    private boolean createIndexInGeometryRow;
+    private boolean updateTableStatistics;
+    private String primaryKeyName;
+
+    /**
+     * @return the explorerParameters
+     */
+    @Override
+    public JDBCServerExplorerParameters getExplorerParameters() {
+        return explorerParameters;
+    }
+
+    /**
+     * @param explorerParameters the explorerParameters to set
+     */
+    @Override
+    public void setExplorerParameters(JDBCServerExplorerParameters explorerParameters) {
+        this.explorerParameters = explorerParameters;
+    }
+
+    /**
+     * @return the schema
+     */
+    @Override
+    public String getSchema() {
+        return schema;
+    }
+
+    /**
+     * @param schema the schema to set
+     */
+    @Override
+    public void setSchema(String schema) {
+        this.schema = schema;
+    }
+
+    /**
+     * @return the tableName
+     */
+    @Override
+    public String getTableName() {
+        return tableName;
+    }
+
+    /**
+     * @param tableName the tableName to set
+     */
+    @Override
+    public void setTableName(String tableName) {
+        this.tableName = tableName;
+    }
+
+    /**
+     * @return the canCreatetable
+     */
+    @Override
+    public boolean canCreatetable() {
+        return canCreatetable;
+    }
+
+    /**
+     * @param canCreatetable the canCreatetable to set
+     */
+    @Override
+    public void setCanCreatetable(boolean canCreatetable) {
+        this.canCreatetable = canCreatetable;
+    }
+
+    /**
+     * @return the primaryKey
+     */
+    @Override
+    public String getPrimaryKey() {
+        return primaryKey;
+    }
+
+    /**
+     * @param primaryKey the primaryKey to set
+     */
+    @Override
+    public void setPrimaryKey(String primaryKey) {
+        this.primaryKey = primaryKey;
+    }
+
+    /**
+     * @return the storeName
+     */
+    @Override
+    public String getStoreName() {
+        return storeName;
+    }
+
+    /**
+     * @param storeName the storeName to set
+     */
+    @Override
+    public void setStoreName(String storeName) {
+        this.storeName = storeName;
+    }
+
+    /**
+     * @return the explorerName
+     */
+    @Override
+    public String getExplorerName() {
+        return explorerName;
+    }
+
+    /**
+     * @param explorerName the explorerName to set
+     */
+    @Override
+    public void setExplorerName(String explorerName) {
+        this.explorerName = explorerName;
+    }
+
+    /**
+     * @return the translateIdentifiersToLowerCase
+     */
+    @Override
+    public boolean getTranslateIdentifiersToLowerCase() {
+        return translateIdentifiersToLowerCase;
+    }
+
+    /**
+     * @param translateIdentifiersToLowerCase the translateIdentifiersToLowerCase to set
+     */
+    @Override
+    public void setTranslateIdentifiersToLowerCase(boolean translateIdentifiersToLowerCase) {
+        this.translateIdentifiersToLowerCase = translateIdentifiersToLowerCase;
+    }
+
+    /**
+     * @return the removeSpacesInIdentifiers
+     */
+    @Override
+    public boolean getRemoveSpacesInIdentifiers() {
+        return removeSpacesInIdentifiers;
+    }
+
+    /**
+     * @param removeSpacesInIdentifiers the removeSpacesInIdentifiers to set
+     */
+    @Override
+    public void setRemoveSpacesInIdentifiers(boolean removeSpacesInIdentifiers) {
+        this.removeSpacesInIdentifiers = removeSpacesInIdentifiers;
+    }
+
+    /**
+     * @return the translateHyphens
+     */
+    @Override
+    public boolean getTranslateHyphens() {
+        return translateHyphens;
+    }
+
+    /**
+     * @param translateHyphens the translateHyphens to set
+     */
+    @Override
+    public void setTranslateHyphens(boolean translateHyphens) {
+        this.translateHyphens = translateHyphens;
+    }
+
+    /**
+     * @return the selectRole
+     */
+    @Override
+    public String getSelectRole() {
+        return selectRole;
+    }
+
+    /**
+     * @param selectRole the selectRole to set
+     */
+    @Override
+    public void setSelectRole(String selectRole) {
+        this.selectRole = selectRole;
+    }
+
+    /**
+     * @return the insertRole
+     */
+    @Override
+    public String getInsertRole() {
+        return insertRole;
+    }
+
+    /**
+     * @param insertRole the insertRole to set
+     */
+    @Override
+    public void setInsertRole(String insertRole) {
+        this.insertRole = insertRole;
+    }
+
+    /**
+     * @return the updateRole
+     */
+    @Override
+    public String getUpdateRole() {
+        return updateRole;
+    }
+
+    /**
+     * @param updateRole the updateRole to set
+     */
+    @Override
+    public void setUpdateRole(String updateRole) {
+        this.updateRole = updateRole;
+    }
+
+    /**
+     * @return the deleteRole
+     */
+    @Override
+    public String getDeleteRole() {
+        return deleteRole;
+    }
+
+    /**
+     * @param deleteRole the deleteRole to set
+     */
+    @Override
+    public void setDeleteRole(String deleteRole) {
+        this.deleteRole = deleteRole;
+    }
+
+    /**
+     * @return the truncateRole
+     */
+    @Override
+    public String getTruncateRole() {
+        return truncateRole;
+    }
+
+    /**
+     * @param truncateRole the truncateRole to set
+     */
+    @Override
+    public void setTruncateRole(String truncateRole) {
+        this.truncateRole = truncateRole;
+    }
+
+    /**
+     * @return the referenceRole
+     */
+    @Override
+    public String getReferenceRole() {
+        return referenceRole;
+    }
+
+    /**
+     * @param referenceRole the referenceRole to set
+     */
+    @Override
+    public void setReferenceRole(String referenceRole) {
+        this.referenceRole = referenceRole;
+    }
+
+    /**
+     * @return the triggerRole
+     */
+    @Override
+    public String getTriggerRole() {
+        return triggerRole;
+    }
+
+    /**
+     * @param triggerRole the triggerRole to set
+     */
+    @Override
+    public void setTriggerRole(String triggerRole) {
+        this.triggerRole = triggerRole;
+    }
+
+    /**
+     * @return the allRole
+     */
+    @Override
+    public String getAllRole() {
+        return allRole;
+    }
+
+    /**
+     * @param allRole the allRole to set
+     */
+    @Override
+    public void setAllRole(String allRole) {
+        this.allRole = allRole;
+    }
+
+    /**
+     * @return the postCreatingStatement
+     */
+    @Override
+    public String getPostCreatingStatement() {
+        return postCreatingStatement;
+    }
+
+    /**
+     * @param postCreatingStatement the postCreatingStatement to set
+     */
+    @Override
+    public void setPostCreatingStatement(String postCreatingStatement) {
+        this.postCreatingStatement = postCreatingStatement;
+    }
+
+    /**
+     * @return the createIndexInGeometryRow
+     */
+    @Override
+    public boolean getCreateIndexInGeometryRow() {
+        return createIndexInGeometryRow;
+    }
+
+    /**
+     * @param createIndexInGeometryRow the createIndexInGeometryRow to set
+     */
+    @Override
+    public void setCreateIndexInGeometryRow(boolean createIndexInGeometryRow) {
+        this.createIndexInGeometryRow = createIndexInGeometryRow;
+    }
+
+    /**
+     * @return the updateTableStatistics
+     */
+    @Override
+    public boolean getUpdateTableStatistics() {
+        return updateTableStatistics;
+    }
+
+    /**
+     * @param updateTableStatistics the updateTableStatistics to set
+     */
+    @Override
+    public void setUpdateTableStatistics(boolean updateTableStatistics) {
+        this.updateTableStatistics = updateTableStatistics;
+    }
+
+}
Index: 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/CheckGeometriesPanelLayout.java
===================================================================
--- 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/CheckGeometriesPanelLayout.java	(revision 43919)
+++ 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/CheckGeometriesPanelLayout.java	(revision 43920)
@@ -1,156 +0,0 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-
-package org.gvsig.exportto.swing.prov.jdbc.panel;
-
-/**
- *
- * @author jjdelcerro
- */
-public class CheckGeometriesPanelLayout extends javax.swing.JPanel {
-
-    /**
-     * Creates new form CheckGeometriesPanelLayout
-     */
-    public CheckGeometriesPanelLayout() {
-        initComponents();
-    }
-
-    /**
-     * This method is called from within the constructor to initialize the form.
-     * WARNING: Do NOT modify this code. The content of this method is always
-     * regenerated by the Form Editor.
-     */
-    @SuppressWarnings("unchecked")
-    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
-    private void initComponents() {
-        java.awt.GridBagConstraints gridBagConstraints;
-
-        buttonGroup1 = new javax.swing.ButtonGroup();
-        lblHeader = new javax.swing.JLabel();
-        lblCheckIsCorrupt = new javax.swing.JLabel();
-        rdbCheckNone = new javax.swing.JRadioButton();
-        rdbCheckIsCorrupt = new javax.swing.JRadioButton();
-        cboActionIsCorrupt = new javax.swing.JComboBox();
-        rdbCheckIsValid = new javax.swing.JRadioButton();
-        lblCheckIsvalid = new javax.swing.JLabel();
-        cboActionIsValid = new javax.swing.JComboBox();
-        filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 32767));
-        filler2 = new javax.swing.Box.Filler(new java.awt.Dimension(16, 0), new java.awt.Dimension(16, 0), new java.awt.Dimension(16, 32767));
-        chkTryFixGeometry = new javax.swing.JCheckBox();
-
-        java.awt.GridBagLayout layout = new java.awt.GridBagLayout();
-        layout.columnWidths = new int[] {0, 5, 0, 5, 0, 5, 0};
-        layout.rowHeights = new int[] {0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0};
-        setLayout(layout);
-
-        lblHeader.setText("Validacion de la informacion geometrica");
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 2;
-        gridBagConstraints.gridy = 2;
-        gridBagConstraints.gridwidth = 3;
-        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
-        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
-        gridBagConstraints.weightx = 0.1;
-        add(lblHeader, gridBagConstraints);
-
-        lblCheckIsCorrupt.setText("Cuando la geometria este corrupta;");
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 4;
-        gridBagConstraints.gridy = 8;
-        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
-        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
-        add(lblCheckIsCorrupt, gridBagConstraints);
-
-        buttonGroup1.add(rdbCheckNone);
-        rdbCheckNone.setText("No realizar ninguna comprobacion sobre las geometrias");
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 2;
-        gridBagConstraints.gridy = 4;
-        gridBagConstraints.gridwidth = 3;
-        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
-        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
-        gridBagConstraints.weightx = 0.1;
-        add(rdbCheckNone, gridBagConstraints);
-
-        buttonGroup1.add(rdbCheckIsCorrupt);
-        rdbCheckIsCorrupt.setText("Comprobar que la geometria no este corrupta");
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 2;
-        gridBagConstraints.gridy = 6;
-        gridBagConstraints.gridwidth = 3;
-        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
-        gridBagConstraints.weightx = 0.1;
-        add(rdbCheckIsCorrupt, gridBagConstraints);
-
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 4;
-        gridBagConstraints.gridy = 10;
-        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
-        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
-        add(cboActionIsCorrupt, gridBagConstraints);
-
-        buttonGroup1.add(rdbCheckIsValid);
-        rdbCheckIsValid.setText("Comprobar la validez de las geometrias antes de insertarlas");
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 2;
-        gridBagConstraints.gridy = 12;
-        gridBagConstraints.gridwidth = 3;
-        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
-        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
-        gridBagConstraints.weightx = 0.1;
-        add(rdbCheckIsValid, gridBagConstraints);
-
-        lblCheckIsvalid.setText("Cuando la geometria no sea valida:");
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 4;
-        gridBagConstraints.gridy = 14;
-        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
-        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
-        add(lblCheckIsvalid, gridBagConstraints);
-
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 4;
-        gridBagConstraints.gridy = 18;
-        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
-        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
-        add(cboActionIsValid, gridBagConstraints);
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 2;
-        gridBagConstraints.gridy = 20;
-        gridBagConstraints.fill = java.awt.GridBagConstraints.VERTICAL;
-        gridBagConstraints.weighty = 0.1;
-        add(filler1, gridBagConstraints);
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 2;
-        gridBagConstraints.gridy = 0;
-        add(filler2, gridBagConstraints);
-
-        chkTryFixGeometry.setText("Intentar reparar la geometria");
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 4;
-        gridBagConstraints.gridy = 16;
-        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
-        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
-        add(chkTryFixGeometry, gridBagConstraints);
-    }// </editor-fold>//GEN-END:initComponents
-
-
-    // Variables declaration - do not modify//GEN-BEGIN:variables
-    protected javax.swing.ButtonGroup buttonGroup1;
-    protected javax.swing.JComboBox cboActionIsCorrupt;
-    protected javax.swing.JComboBox cboActionIsValid;
-    protected javax.swing.JCheckBox chkTryFixGeometry;
-    protected javax.swing.Box.Filler filler1;
-    protected javax.swing.Box.Filler filler2;
-    protected javax.swing.JLabel lblCheckIsCorrupt;
-    protected javax.swing.JLabel lblCheckIsvalid;
-    protected javax.swing.JLabel lblHeader;
-    protected javax.swing.JRadioButton rdbCheckIsCorrupt;
-    protected javax.swing.JRadioButton rdbCheckIsValid;
-    protected javax.swing.JRadioButton rdbCheckNone;
-    // End of variables declaration//GEN-END:variables
-}
Index: 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
===================================================================
--- 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	(revision 43919)
+++ 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	(revision 43920)
@@ -1,151 +0,0 @@
-package org.gvsig.exportto.swing.prov.jdbc.panel;
-
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import javax.swing.JComponent;
-import org.gvsig.exportto.swing.prov.jdbc.ExporrtoJDBCService;
-import org.gvsig.exportto.swing.prov.jdbc.ExporttoJDBCOptions;
-import org.gvsig.exportto.swing.spi.ExporttoPanelValidationException;
-import org.gvsig.exportto.swing.spi.ExporttoSwingProviderPanel;
-import org.gvsig.tools.ToolsLocator;
-import org.gvsig.tools.i18n.I18nManager;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class CheckGeometriesPanel extends CheckGeometriesPanelLayout implements ExporttoSwingProviderPanel {
-
-    private final static Logger logger = LoggerFactory.getLogger(CheckGeometriesPanel.class);
-    
-    private final ExporttoJDBCOptions provider;
-    
-    private final CheckAction[] checkActions = {
-        new CheckAction("_Set_geometry_to_null", ExporrtoJDBCService.ACTION_SET_GEOMETRY_TO_NULL),
-        new CheckAction("_Skip_entire_feature", ExporrtoJDBCService.ACTION_SKIP_FEATURE),
-        new CheckAction("_Abort_process", ExporrtoJDBCService.ACTION_ABORT)
-    };
-    
-    private static class CheckAction {
-
-        private final String label;
-        private final int code;
-
-        public CheckAction(String label, int code) {
-            this.code = code;
-            this.label = ToolsLocator.getI18nManager().getTranslation(label);
-        }
-        @Override
-        public String toString() {
-            return this.label;
-        }
-        public int getCode() {
-            return this.code;
-        }
-    }
-        
-    public CheckGeometriesPanel(ExporttoJDBCOptions provider) {
-        this.provider = provider;
-        initComponents();
-    }
-    
-    private void initComponents() {
-        this.rdbCheckIsCorrupt.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-               onChangeRadioButtons();
-            }
-        });
-        this.rdbCheckIsValid.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-               onChangeRadioButtons();
-            }
-        });
-        this.rdbCheckNone.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent e) {
-               onChangeRadioButtons();
-            }
-        });
-        for (CheckAction checkAction : checkActions) {
-            this.cboActionIsCorrupt.addItem(checkAction);
-            this.cboActionIsValid.addItem(checkAction);            
-        }
-        this.rdbCheckNone.setSelected(true);
-        this.rdbCheckIsValid.setSelected(true);
-        this.cboActionIsValid.setSelectedItem(checkActions[2]);
-        this.translate();
-    }
-    
-    private void translate() {
-        I18nManager i18nManager = ToolsLocator.getI18nManager();
-                    
-        this.lblHeader.setText("<html>"+i18nManager.getTranslation("_check_geometries_before_export_header")+"</html>");
-        this.rdbCheckNone.setText(i18nManager.getTranslation("_No_realizar_ninguna_comprobacion_sobre_las_geometrias"));
-        this.rdbCheckIsCorrupt.setText(i18nManager.getTranslation("_Comprobar_que_la_geometria_no_este_corrupta"));
-        this.rdbCheckIsValid.setText(i18nManager.getTranslation("_Comprobar_la_validez_de_las_geometrias_antes_de_insertarlas"));
-        this.lblCheckIsCorrupt.setText(i18nManager.getTranslation("_Cuando_la_geometria_este_corrupta"));
-        this.lblCheckIsvalid.setText(i18nManager.getTranslation("_Cuando_la_geometria_no_sea_valida"));
-        this.chkTryFixGeometry.setText(i18nManager.getTranslation("_Intentar_reparar_la_geometria"));
-    }
-    
-    public String getPanelTitle() {
-        I18nManager i18nManager = ToolsLocator.getI18nManager();
-        return i18nManager.getTranslation("_check_geometries_before_export");    
-    }
-
-    public boolean isValidPanel() throws ExporttoPanelValidationException {
-        return true;
-    }
-    
-    public void enterPanel() {
-        // Default do nothing
-    }
-    
-    public JComponent asJComponent() {
-        return this;
-    }
-
-    public int getGeometryChecks() {
-        if( this.rdbCheckIsCorrupt.isSelected() ) {
-            return ExporrtoJDBCService.CHECK_IF_CORRUPT;
-        } else if( this.rdbCheckIsValid.isSelected()) {
-            return ExporrtoJDBCService.CHECK_IF_VALID;
-        } else {
-            return ExporrtoJDBCService.CHECK_NONE;
-        }
-    }
-
-    public int getGeometryChecksAction() {
-        try {
-            if( this.rdbCheckIsCorrupt.isSelected() ) {
-                CheckAction checkAction = (CheckAction)(this.cboActionIsCorrupt.getSelectedItem());
-                return checkAction.getCode();
-            } else if( this.rdbCheckIsValid.isSelected()) {
-                CheckAction checkAction = (CheckAction)(this.cboActionIsValid.getSelectedItem());
-                return checkAction.getCode();
-            } else {
-                return ExporrtoJDBCService.ACTION_ABORT;
-            }
-        } catch(Exception ex) {
-            logger.warn("Can't get action for geometry check in export to JDBC.",ex);
-            return ExporrtoJDBCService.ACTION_ABORT;
-        }
-    }
-
-    public boolean getTryToFixGeometry() {
-        return this.chkTryFixGeometry.isSelected();
-    }
-    
-    private void onChangeRadioButtons() {
-        if( this.rdbCheckNone.isSelected() ) {
-            this.cboActionIsCorrupt.setEnabled(false);
-            this.cboActionIsValid.setEnabled(false);
-            this.chkTryFixGeometry.setEnabled(false);
-        } else if( this.rdbCheckIsCorrupt.isSelected() ) {
-            this.cboActionIsCorrupt.setEnabled(true);
-            this.cboActionIsValid.setEnabled(false);
-            this.chkTryFixGeometry.setEnabled(false);
-        } else if( this.rdbCheckIsValid.isSelected()) {
-            this.cboActionIsCorrupt.setEnabled(false);
-            this.cboActionIsValid.setEnabled(true);
-            this.chkTryFixGeometry.setEnabled(true);
-        }
-    }
-}
Index: 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/CheckGeometriesPanelLayout.form
===================================================================
--- 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/CheckGeometriesPanelLayout.form	(revision 43919)
+++ 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/CheckGeometriesPanelLayout.form	(revision 43920)
@@ -1,1188 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<Form version="1.8" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
-  <NonVisualComponents>
-    <Component class="javax.swing.ButtonGroup" name="buttonGroup1">
-    </Component>
-  </NonVisualComponents>
-  <AuxValues>
-    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
-    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
-    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
-    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
-    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="4"/>
-    <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,44,0,0,1,-112"/>
-  </AuxValues>
-  <SubComponents>
-    <Component class="javax.swing.JLabel" name="lblHeader">
-      <Properties>
-        <Property name="text" type="java.lang.String" value="Validacion de la informacion geometrica"/>
-      </Properties>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="2" gridY="2" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.1" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
-    </Component>
-    <Component class="javax.swing.JLabel" name="lblCheckIsCorrupt">
-      <Properties>
-        <Property name="text" type="java.lang.String" value="Cuando la geometria este corrupta;"/>
-      </Properties>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="4" gridY="8" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
-    </Component>
-    <Component class="javax.swing.JRadioButton" name="rdbCheckNone">
-      <Properties>
-        <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
-          <ComponentRef name="buttonGroup1"/>
-        </Property>
-        <Property name="text" type="java.lang.String" value="No realizar ninguna comprobacion sobre las geometrias"/>
-      </Properties>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="2" gridY="4" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.1" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
-    </Component>
-    <Component class="javax.swing.JRadioButton" name="rdbCheckIsCorrupt">
-      <Properties>
-        <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
-          <ComponentRef name="buttonGroup1"/>
-        </Property>
-        <Property name="text" type="java.lang.String" value="Comprobar que la geometria no este corrupta"/>
-      </Properties>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="2" gridY="6" gridWidth="3" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.1" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
-    </Component>
-    <Component class="javax.swing.JComboBox" name="cboActionIsCorrupt">
-      <Properties>
-        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
-          <StringArray count="0"/>
-        </Property>
-      </Properties>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="4" gridY="10" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
-    </Component>
-    <Component class="javax.swing.JRadioButton" name="rdbCheckIsValid">
-      <Properties>
-        <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
-          <ComponentRef name="buttonGroup1"/>
-        </Property>
-        <Property name="text" type="java.lang.String" value="Comprobar la validez de las geometrias antes de insertarlas"/>
-      </Properties>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="2" gridY="12" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.1" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
-    </Component>
-    <Component class="javax.swing.JLabel" name="lblCheckIsvalid">
-      <Properties>
-        <Property name="text" type="java.lang.String" value="Cuando la geometria no sea valida:"/>
-      </Properties>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="4" gridY="14" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
-    </Component>
-    <Component class="javax.swing.JComboBox" name="cboActionIsValid">
-      <Properties>
-        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
-          <StringArray count="0"/>
-        </Property>
-      </Properties>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="4" gridY="18" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
-    </Component>
-    <Component class="javax.swing.Box$Filler" name="filler1">
-      <Properties>
-        <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
-          <Dimension value="[0, 32767]"/>
-        </Property>
-      </Properties>
-      <AuxValues>
-        <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.VerticalGlue"/>
-      </AuxValues>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="2" gridY="20" gridWidth="1" gridHeight="1" fill="3" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.1"/>
-        </Constraint>
-      </Constraints>
-    </Component>
-    <Component class="javax.swing.Box$Filler" name="filler2">
-      <Properties>
-        <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
-          <Dimension value="[16, 32767]"/>
-        </Property>
-        <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
-          <Dimension value="[16, 0]"/>
-        </Property>
-        <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
-          <Dimension value="[16, 0]"/>
-        </Property>
-      </Properties>
-      <AuxValues>
-        <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.HorizontalStrut"/>
-      </AuxValues>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="2" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
-    </Component>
-    <Component class="javax.swing.JCheckBox" name="chkTryFixGeometry">
-      <Properties>
-        <Property name="text" type="java.lang.String" value="Intentar reparar la geometria"/>
-      </Properties>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="4" gridY="16" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
-    </Component>
-  </SubComponents>
-  <LayoutCode>
-    <CodeStatement>
-      <CodeExpression id="1_layout">
-        <CodeVariable name="layout" type="4096" declaredType="java.awt.GridBagLayout"/>
-        <ExpressionOrigin>
-          <ExpressionProvider type="CodeConstructor">
-            <CodeConstructor class="java.awt.GridBagLayout" parameterTypes=""/>
-          </ExpressionProvider>
-        </ExpressionOrigin>
-      </CodeExpression>
-      <StatementProvider type="CodeExpression">
-        <CodeExpression id="1_layout"/>
-      </StatementProvider>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="1_layout"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="columnWidths" class="java.awt.GridBagLayout"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="2">
-          <ExpressionOrigin>
-            <Value type="[I" editor="org.netbeans.modules.form.layoutsupport.delegates.GridBagLayoutSupport$IntArrayPropertyEditor">
-              <PropertyValue value="[0, 5, 0, 5, 0, 5, 0]"/>
-            </Value>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="1_layout"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="rowHeights" class="java.awt.GridBagLayout"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="3">
-          <ExpressionOrigin>
-            <Value type="[I" editor="org.netbeans.modules.form.layoutsupport.delegates.GridBagLayoutSupport$IntArrayPropertyEditor">
-              <PropertyValue value="[0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0]"/>
-            </Value>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="4">
-        <ExpressionOrigin>
-          <ExpressionProvider type="ComponentRef">
-            <ComponentRef name="."/>
-          </ExpressionProvider>
-        </ExpressionOrigin>
-      </CodeExpression>
-      <StatementProvider type="CodeMethod">
-        <CodeMethod name="setLayout" class="java.awt.Container" parameterTypes="java.awt.LayoutManager"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="1_layout"/>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="5_gridBagConstraints">
-        <CodeVariable name="gridBagConstraints" type="20480" declaredType="java.awt.GridBagConstraints"/>
-        <ExpressionOrigin>
-          <ExpressionProvider type="CodeConstructor">
-            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
-          </ExpressionProvider>
-        </ExpressionOrigin>
-      </CodeExpression>
-      <StatementProvider type="CodeExpression">
-        <CodeExpression id="5_gridBagConstraints"/>
-      </StatementProvider>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="5_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="6">
-          <ExpressionOrigin>
-            <Value type="int" value="2"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="5_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="7">
-          <ExpressionOrigin>
-            <Value type="int" value="2"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="5_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="8">
-          <ExpressionOrigin>
-            <Value type="int" value="3"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="5_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="9">
-          <ExpressionOrigin>
-            <Value type="int" value="2"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="5_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="10">
-          <ExpressionOrigin>
-            <Value type="int" value="21"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="5_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="weightx" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="11">
-          <ExpressionOrigin>
-            <Value type="double" value="0.1"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="4"/>
-      <StatementProvider type="CodeMethod">
-        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="12_lblHeader">
-          <CodeVariable name="lblHeader" type="8196" declaredType="javax.swing.JLabel"/>
-          <ExpressionOrigin>
-            <ExpressionProvider type="ComponentRef">
-              <ComponentRef name="lblHeader"/>
-            </ExpressionProvider>
-          </ExpressionOrigin>
-        </CodeExpression>
-        <CodeExpression id="5_gridBagConstraints"/>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="13_gridBagConstraints">
-        <CodeVariable name="gridBagConstraints"/>
-        <ExpressionOrigin>
-          <ExpressionProvider type="CodeConstructor">
-            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
-          </ExpressionProvider>
-        </ExpressionOrigin>
-      </CodeExpression>
-      <StatementProvider type="CodeExpression">
-        <CodeExpression id="13_gridBagConstraints"/>
-      </StatementProvider>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="13_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="14">
-          <ExpressionOrigin>
-            <Value type="int" value="4"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="13_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="15">
-          <ExpressionOrigin>
-            <Value type="int" value="8"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="13_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="16">
-          <ExpressionOrigin>
-            <Value type="int" value="2"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="13_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="17">
-          <ExpressionOrigin>
-            <Value type="int" value="21"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="4"/>
-      <StatementProvider type="CodeMethod">
-        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="18_lblCheckIsCorrupt">
-          <CodeVariable name="lblCheckIsCorrupt" type="8196" declaredType="javax.swing.JLabel"/>
-          <ExpressionOrigin>
-            <ExpressionProvider type="ComponentRef">
-              <ComponentRef name="lblCheckIsCorrupt"/>
-            </ExpressionProvider>
-          </ExpressionOrigin>
-        </CodeExpression>
-        <CodeExpression id="13_gridBagConstraints"/>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="19_gridBagConstraints">
-        <CodeVariable name="gridBagConstraints"/>
-        <ExpressionOrigin>
-          <ExpressionProvider type="CodeConstructor">
-            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
-          </ExpressionProvider>
-        </ExpressionOrigin>
-      </CodeExpression>
-      <StatementProvider type="CodeExpression">
-        <CodeExpression id="19_gridBagConstraints"/>
-      </StatementProvider>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="19_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="20">
-          <ExpressionOrigin>
-            <Value type="int" value="2"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="19_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="21">
-          <ExpressionOrigin>
-            <Value type="int" value="4"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="19_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="22">
-          <ExpressionOrigin>
-            <Value type="int" value="3"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="19_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="23">
-          <ExpressionOrigin>
-            <Value type="int" value="2"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="19_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="24">
-          <ExpressionOrigin>
-            <Value type="int" value="21"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="19_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="weightx" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="25">
-          <ExpressionOrigin>
-            <Value type="double" value="0.1"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="4"/>
-      <StatementProvider type="CodeMethod">
-        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="26_rdbCheckNone">
-          <CodeVariable name="rdbCheckNone" type="8196" declaredType="javax.swing.JRadioButton"/>
-          <ExpressionOrigin>
-            <ExpressionProvider type="ComponentRef">
-              <ComponentRef name="rdbCheckNone"/>
-            </ExpressionProvider>
-          </ExpressionOrigin>
-        </CodeExpression>
-        <CodeExpression id="19_gridBagConstraints"/>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="27_gridBagConstraints">
-        <CodeVariable name="gridBagConstraints"/>
-        <ExpressionOrigin>
-          <ExpressionProvider type="CodeConstructor">
-            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
-          </ExpressionProvider>
-        </ExpressionOrigin>
-      </CodeExpression>
-      <StatementProvider type="CodeExpression">
-        <CodeExpression id="27_gridBagConstraints"/>
-      </StatementProvider>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="27_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="28">
-          <ExpressionOrigin>
-            <Value type="int" value="2"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="27_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="29">
-          <ExpressionOrigin>
-            <Value type="int" value="6"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="27_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="30">
-          <ExpressionOrigin>
-            <Value type="int" value="3"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="27_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="31">
-          <ExpressionOrigin>
-            <Value type="int" value="21"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="27_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="weightx" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="32">
-          <ExpressionOrigin>
-            <Value type="double" value="0.1"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="4"/>
-      <StatementProvider type="CodeMethod">
-        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="33_rdbCheckIsCorrupt">
-          <CodeVariable name="rdbCheckIsCorrupt" type="8196" declaredType="javax.swing.JRadioButton"/>
-          <ExpressionOrigin>
-            <ExpressionProvider type="ComponentRef">
-              <ComponentRef name="rdbCheckIsCorrupt"/>
-            </ExpressionProvider>
-          </ExpressionOrigin>
-        </CodeExpression>
-        <CodeExpression id="27_gridBagConstraints"/>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="34_gridBagConstraints">
-        <CodeVariable name="gridBagConstraints"/>
-        <ExpressionOrigin>
-          <ExpressionProvider type="CodeConstructor">
-            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
-          </ExpressionProvider>
-        </ExpressionOrigin>
-      </CodeExpression>
-      <StatementProvider type="CodeExpression">
-        <CodeExpression id="34_gridBagConstraints"/>
-      </StatementProvider>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="34_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="35">
-          <ExpressionOrigin>
-            <Value type="int" value="4"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="34_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="36">
-          <ExpressionOrigin>
-            <Value type="int" value="10"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="34_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="37">
-          <ExpressionOrigin>
-            <Value type="int" value="2"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="34_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="38">
-          <ExpressionOrigin>
-            <Value type="int" value="21"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="4"/>
-      <StatementProvider type="CodeMethod">
-        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="39_cboActionIsCorrupt">
-          <CodeVariable name="cboActionIsCorrupt" type="8196" declaredType="javax.swing.JComboBox"/>
-          <ExpressionOrigin>
-            <ExpressionProvider type="ComponentRef">
-              <ComponentRef name="cboActionIsCorrupt"/>
-            </ExpressionProvider>
-          </ExpressionOrigin>
-        </CodeExpression>
-        <CodeExpression id="34_gridBagConstraints"/>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="40_gridBagConstraints">
-        <CodeVariable name="gridBagConstraints"/>
-        <ExpressionOrigin>
-          <ExpressionProvider type="CodeConstructor">
-            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
-          </ExpressionProvider>
-        </ExpressionOrigin>
-      </CodeExpression>
-      <StatementProvider type="CodeExpression">
-        <CodeExpression id="40_gridBagConstraints"/>
-      </StatementProvider>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="40_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="41">
-          <ExpressionOrigin>
-            <Value type="int" value="2"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="40_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="42">
-          <ExpressionOrigin>
-            <Value type="int" value="12"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="40_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="43">
-          <ExpressionOrigin>
-            <Value type="int" value="3"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="40_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="44">
-          <ExpressionOrigin>
-            <Value type="int" value="2"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="40_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="45">
-          <ExpressionOrigin>
-            <Value type="int" value="21"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="40_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="weightx" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="46">
-          <ExpressionOrigin>
-            <Value type="double" value="0.1"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="4"/>
-      <StatementProvider type="CodeMethod">
-        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="47_rdbCheckIsValid">
-          <CodeVariable name="rdbCheckIsValid" type="8196" declaredType="javax.swing.JRadioButton"/>
-          <ExpressionOrigin>
-            <ExpressionProvider type="ComponentRef">
-              <ComponentRef name="rdbCheckIsValid"/>
-            </ExpressionProvider>
-          </ExpressionOrigin>
-        </CodeExpression>
-        <CodeExpression id="40_gridBagConstraints"/>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="48_gridBagConstraints">
-        <CodeVariable name="gridBagConstraints"/>
-        <ExpressionOrigin>
-          <ExpressionProvider type="CodeConstructor">
-            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
-          </ExpressionProvider>
-        </ExpressionOrigin>
-      </CodeExpression>
-      <StatementProvider type="CodeExpression">
-        <CodeExpression id="48_gridBagConstraints"/>
-      </StatementProvider>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="48_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="49">
-          <ExpressionOrigin>
-            <Value type="int" value="4"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="48_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="50">
-          <ExpressionOrigin>
-            <Value type="int" value="14"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="48_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="51">
-          <ExpressionOrigin>
-            <Value type="int" value="2"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="48_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="52">
-          <ExpressionOrigin>
-            <Value type="int" value="21"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="4"/>
-      <StatementProvider type="CodeMethod">
-        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="53_lblCheckIsvalid">
-          <CodeVariable name="lblCheckIsvalid" type="8196" declaredType="javax.swing.JLabel"/>
-          <ExpressionOrigin>
-            <ExpressionProvider type="ComponentRef">
-              <ComponentRef name="lblCheckIsvalid"/>
-            </ExpressionProvider>
-          </ExpressionOrigin>
-        </CodeExpression>
-        <CodeExpression id="48_gridBagConstraints"/>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="54_gridBagConstraints">
-        <CodeVariable name="gridBagConstraints"/>
-        <ExpressionOrigin>
-          <ExpressionProvider type="CodeConstructor">
-            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
-          </ExpressionProvider>
-        </ExpressionOrigin>
-      </CodeExpression>
-      <StatementProvider type="CodeExpression">
-        <CodeExpression id="54_gridBagConstraints"/>
-      </StatementProvider>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="54_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="55">
-          <ExpressionOrigin>
-            <Value type="int" value="4"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="54_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="56">
-          <ExpressionOrigin>
-            <Value type="int" value="18"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="54_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="57">
-          <ExpressionOrigin>
-            <Value type="int" value="2"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="54_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="58">
-          <ExpressionOrigin>
-            <Value type="int" value="21"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="4"/>
-      <StatementProvider type="CodeMethod">
-        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="59_cboActionIsValid">
-          <CodeVariable name="cboActionIsValid" type="8196" declaredType="javax.swing.JComboBox"/>
-          <ExpressionOrigin>
-            <ExpressionProvider type="ComponentRef">
-              <ComponentRef name="cboActionIsValid"/>
-            </ExpressionProvider>
-          </ExpressionOrigin>
-        </CodeExpression>
-        <CodeExpression id="54_gridBagConstraints"/>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="60_gridBagConstraints">
-        <CodeVariable name="gridBagConstraints"/>
-        <ExpressionOrigin>
-          <ExpressionProvider type="CodeConstructor">
-            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
-          </ExpressionProvider>
-        </ExpressionOrigin>
-      </CodeExpression>
-      <StatementProvider type="CodeExpression">
-        <CodeExpression id="60_gridBagConstraints"/>
-      </StatementProvider>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="60_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="61">
-          <ExpressionOrigin>
-            <Value type="int" value="2"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="60_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="62">
-          <ExpressionOrigin>
-            <Value type="int" value="20"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="60_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="63">
-          <ExpressionOrigin>
-            <Value type="int" value="3"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="60_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="weighty" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="64">
-          <ExpressionOrigin>
-            <Value type="double" value="0.1"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="4"/>
-      <StatementProvider type="CodeMethod">
-        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="65_filler1">
-          <CodeVariable name="filler1" type="8196" declaredType="javax.swing.Box$Filler"/>
-          <ExpressionOrigin>
-            <ExpressionProvider type="ComponentRef">
-              <ComponentRef name="filler1"/>
-            </ExpressionProvider>
-          </ExpressionOrigin>
-        </CodeExpression>
-        <CodeExpression id="60_gridBagConstraints"/>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="66_gridBagConstraints">
-        <CodeVariable name="gridBagConstraints"/>
-        <ExpressionOrigin>
-          <ExpressionProvider type="CodeConstructor">
-            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
-          </ExpressionProvider>
-        </ExpressionOrigin>
-      </CodeExpression>
-      <StatementProvider type="CodeExpression">
-        <CodeExpression id="66_gridBagConstraints"/>
-      </StatementProvider>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="66_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="67">
-          <ExpressionOrigin>
-            <Value type="int" value="2"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="66_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="68">
-          <ExpressionOrigin>
-            <Value type="int" value="0"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="4"/>
-      <StatementProvider type="CodeMethod">
-        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="69_filler2">
-          <CodeVariable name="filler2" type="8196" declaredType="javax.swing.Box$Filler"/>
-          <ExpressionOrigin>
-            <ExpressionProvider type="ComponentRef">
-              <ComponentRef name="filler2"/>
-            </ExpressionProvider>
-          </ExpressionOrigin>
-        </CodeExpression>
-        <CodeExpression id="66_gridBagConstraints"/>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="70_gridBagConstraints">
-        <CodeVariable name="gridBagConstraints"/>
-        <ExpressionOrigin>
-          <ExpressionProvider type="CodeConstructor">
-            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
-          </ExpressionProvider>
-        </ExpressionOrigin>
-      </CodeExpression>
-      <StatementProvider type="CodeExpression">
-        <CodeExpression id="70_gridBagConstraints"/>
-      </StatementProvider>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="70_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="71">
-          <ExpressionOrigin>
-            <Value type="int" value="4"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="70_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="72">
-          <ExpressionOrigin>
-            <Value type="int" value="16"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="70_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="73">
-          <ExpressionOrigin>
-            <Value type="int" value="2"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="70_gridBagConstraints"/>
-      <StatementProvider type="CodeField">
-        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="74">
-          <ExpressionOrigin>
-            <Value type="int" value="21"/>
-          </ExpressionOrigin>
-        </CodeExpression>
-      </Parameters>
-    </CodeStatement>
-    <CodeStatement>
-      <CodeExpression id="4"/>
-      <StatementProvider type="CodeMethod">
-        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
-      </StatementProvider>
-      <Parameters>
-        <CodeExpression id="75_chkTryFixGeometry">
-          <CodeVariable name="chkTryFixGeometry" type="8196" declaredType="javax.swing.JCheckBox"/>
-          <ExpressionOrigin>
-            <ExpressionProvider type="ComponentRef">
-              <ComponentRef name="chkTryFixGeometry"/>
-            </ExpressionProvider>
-          </ExpressionOrigin>
-        </CodeExpression>
-        <CodeExpression id="70_gridBagConstraints"/>
-      </Parameters>
-    </CodeStatement>
-  </LayoutCode>
-</Form>
Index: 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/UpdateTableStatisticsPanel.java
===================================================================
--- 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/UpdateTableStatisticsPanel.java	(revision 43919)
+++ 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/UpdateTableStatisticsPanel.java	(revision 43920)
@@ -12,10 +12,10 @@
 public class UpdateTableStatisticsPanel extends UpdateTableStatisticsPanelLayout implements ExporttoSwingProviderPanel {
     private static final long serialVersionUID = -8450431632002084194L;
 
-    private ExporttoJDBCOptions provider;
+    private ExporttoJDBCOptions options;
 
-    public UpdateTableStatisticsPanel(ExporttoJDBCOptions provider) {
-        this.provider = provider;
+    public UpdateTableStatisticsPanel(ExporttoJDBCOptions options) {
+        this.options = options;
         initComponents();
     }
 
@@ -32,19 +32,24 @@
         this.chkUpdateStatisticsTableAfterInserts.setText(i18nManager.getTranslation("_Recalcular_estadisticas_de_la_tabla_al_terminar"));
     }
 
+    @Override
     public String getPanelTitle() {
         I18nManager i18nManager = ToolsLocator.getI18nManager();
         return i18nManager.getTranslation("_update_table_statistics");    
     }
 
+    @Override
     public boolean isValidPanel() throws ExporttoPanelValidationException {
+        this.options.setUpdateTableStatistics(this.getUpdateTableStatistics());
         return true;
     }
     
+    @Override
     public void enterPanel() {
         // Default do nothing
     }
     
+    @Override
     public JComponent asJComponent() {
         return this;
     }
Index: 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/SelectPkPanel.java
===================================================================
--- 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/SelectPkPanel.java	(revision 43919)
+++ 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/SelectPkPanel.java	(revision 43920)
@@ -32,7 +32,6 @@
 
 import org.gvsig.exportto.swing.spi.ExporttoPanelValidationException;
 import org.gvsig.exportto.swing.spi.ExporttoSwingProviderPanel;
-import org.gvsig.fmap.dal.feature.FeatureStore;
 import org.gvsig.fmap.dal.feature.FeatureType;
 import org.gvsig.tools.ToolsLocator;
 import org.gvsig.tools.i18n.I18nManager;
@@ -46,10 +45,11 @@
 
     private static final long serialVersionUID = 2652404227373508779L;
 
-    private final ExporttoJDBCOptions provider;
+    private final ExporttoJDBCOptions options;
 
-    public SelectPkPanel(ExporttoJDBCOptions provider) {
-        this.provider = provider;
+    @SuppressWarnings("OverridableMethodCallInConstructor")
+    public SelectPkPanel(ExporttoJDBCOptions options) {
+        this.options = options;
         initComponents();
     }
 
@@ -128,22 +128,19 @@
 
     @Override
     public boolean isValidPanel() throws ExporttoPanelValidationException {
+        this.options.setPrimaryKey(this.getPrimaryKeyName());
         return true;
     }
     
     private boolean hasSourcePrimaryKey() {
-        try {
-            FeatureType featureType = this.provider.getSource().getDefaultFeatureType();
-            return ! ArrayUtils.isEmpty(featureType.getPrimaryKey());
-        } catch (Exception ex) {
-            return false;
-        }
+        FeatureType featureType = this.options.getSourceFeatureType();
+        return ! ArrayUtils.isEmpty(featureType.getPrimaryKey());
     }
 
     @Override
     public void enterPanel() {
         this.fillListOfFields();
-        if( !this.provider.canCreatetable() ) {
+        if( !this.options.canCreatetable() ) {
             this.rdoCreatePrimaryNewKey.setEnabled(false);
             this.rdoUseExistingFieldAsPrimariKey.setEnabled(false);
             this.rdoDoNotCreatePrimaryKey.setEnabled(false);
@@ -175,8 +172,7 @@
 
     private void fillListOfFields() {
         try {
-            FeatureStore source = this.provider.getSource();
-            FeatureType sourceFeatureType = source.getDefaultFeatureType();
+            FeatureType sourceFeatureType = this.options.getSourceFeatureType();
             DefaultListModel model = new DefaultListModel();
             for (int i = 0; i < sourceFeatureType.size(); i++) {
                 model.addElement(sourceFeatureType.getAttributeDescriptor(i).getName());
Index: 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/PermissionsPanel.java
===================================================================
--- 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/PermissionsPanel.java	(revision 43919)
+++ 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/PermissionsPanel.java	(revision 43920)
@@ -15,15 +15,16 @@
 public class PermissionsPanel extends PermissionsPanelLayout implements ExporttoSwingProviderPanel {
     private static final long serialVersionUID = -1930610404012797310L;
 
-    private ExporttoJDBCOptions provider;
+    private final ExporttoJDBCOptions options;
 
-    public PermissionsPanel(ExporttoJDBCOptions provider) {
-        this.provider = provider;
+    public PermissionsPanel(ExporttoJDBCOptions options) {
+        this.options = options;
         initComponents();
     }
 
     private void initComponents() {
         ActionListener listener = new ActionListener() {
+            @Override
             public void actionPerformed(ActionEvent ae) {
                 doUpdateState();
             }
@@ -71,17 +72,28 @@
         this.txtRoleReference.setEnabled(this.chkReference.isSelected());
     }
     
+    @Override
     public String getPanelTitle() {
         I18nManager i18nManager = ToolsLocator.getI18nManager();
         return i18nManager.getTranslation("_Permissions");    
     }
 
+    @Override
     public boolean isValidPanel() throws ExporttoPanelValidationException {
+        this.options.setAllRole(this.getAllRole());
+        this.options.setDeleteRole(this.getDeleteRole());
+        this.options.setInsertRole(this.getInsertRole());
+        this.options.setReferenceRole(this.getReferenceRole());
+        this.options.setSelectRole(this.getSelectRole());
+        this.options.setTriggerRole(this.getTriggerRole());
+        this.options.setTruncateRole(this.getTruncateRole());
+        this.options.setUpdateRole(this.getUpdateRole());
         return true;
     }
     
+    @Override
     public void enterPanel() {
-        boolean enabled = this.provider.canCreatetable();
+        boolean enabled = this.options.canCreatetable();
         this.chkAll.setEnabled(enabled);
         this.chkSelect.setEnabled(enabled);
         this.chkUpdate.setEnabled(enabled);
@@ -92,6 +104,7 @@
         this.chkReference.setEnabled(enabled);
     }
     
+    @Override
     public JComponent asJComponent() {
         return this;
     }
Index: 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/IdentifiersOptionsPanel.java
===================================================================
--- 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/IdentifiersOptionsPanel.java	(revision 43919)
+++ 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/IdentifiersOptionsPanel.java	(revision 43920)
@@ -20,10 +20,10 @@
 public class IdentifiersOptionsPanel extends IdentifiersOptionsPanelView implements ExporttoSwingProviderPanel {
     private static final long serialVersionUID = -6390855050271511346L;
 
-    private final ExporttoJDBCOptions provider;
+    private final ExporttoJDBCOptions options;
 
-    public IdentifiersOptionsPanel(ExporttoJDBCOptions provider) {
-        this.provider = provider;
+    public IdentifiersOptionsPanel(ExporttoJDBCOptions options) {
+        this.options = options;
         initComponents();
     }
 
@@ -51,6 +51,9 @@
 
     @Override
     public boolean isValidPanel() throws ExporttoPanelValidationException {
+        this.options.setRemoveSpacesInIdentifiers(this.chkRemoveSpaces.isSelected());
+        this.options.setTranslateIdentifiersToLowerCase(this.chkTraslateToLowerCase.isSelected());
+        this.options.setTranslateHyphens(this.chkTraslateHyphens.isSelected());
         return true;
     }
 
Index: 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/JDBCConnectionPanel.java
===================================================================
--- 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/JDBCConnectionPanel.java	(revision 43919)
+++ 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/JDBCConnectionPanel.java	(revision 43920)
@@ -50,10 +50,10 @@
 
     private static final Logger LOG = LoggerFactory.getLogger(JDBCConnectionPanel.class);
     private org.gvsig.fmap.dal.swing.jdbc.JDBCConnectionPanel connectionPanel;
-    private final ExporttoJDBCOptions provider;
+    private final ExporttoJDBCOptions options;
 
-    public JDBCConnectionPanel(ExporttoJDBCOptions provider) {
-        this.provider = provider;
+    public JDBCConnectionPanel(ExporttoJDBCOptions options) {
+        this.options = options;
         initComponents();
     }
 
@@ -85,6 +85,7 @@
         }
         try {
             connection.validate();
+            this.options.setExplorerParameters(this.getServerExplorerParameters());
             return true;
         } catch (ValidateDataParametersException ex) {
             throw new ExporttoPanelValidationException(ex.getMessageStack(),ex);
Index: 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/GeometryIndexPanel.java
===================================================================
--- 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/GeometryIndexPanel.java	(revision 43919)
+++ 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/GeometryIndexPanel.java	(revision 43920)
@@ -5,7 +5,6 @@
 import org.gvsig.exportto.swing.prov.jdbc.ExporttoJDBCOptions;
 import org.gvsig.exportto.swing.spi.ExporttoPanelValidationException;
 import org.gvsig.exportto.swing.spi.ExporttoSwingProviderPanel;
-import org.gvsig.fmap.dal.exception.DataException;
 import org.gvsig.tools.ToolsLocator;
 import org.gvsig.tools.i18n.I18nManager;
 import org.slf4j.Logger;
@@ -17,10 +16,10 @@
     
     private static final Logger logger = LoggerFactory.getLogger(GeometryIndexPanel.class);
 
-    private ExporttoJDBCOptions provider;
+    private final ExporttoJDBCOptions options;
 
-    public GeometryIndexPanel(ExporttoJDBCOptions provider) {
-        this.provider = provider;
+    public GeometryIndexPanel(ExporttoJDBCOptions options) {
+        this.options = options;
         initComponents();
     }
 
@@ -35,23 +34,23 @@
         this.chkCreateGeometryIndex.setText(i18nManager.getTranslation("_Crear_indice_espacial_sobre_las_columnas_de_tipo_geometria"));
     }
 
+    @Override
     public String getPanelTitle() {
         I18nManager i18nManager = ToolsLocator.getI18nManager();
         return i18nManager.getTranslation("_Create_spatial_index");    
     }
 
+    @Override
     public boolean isValidPanel() throws ExporttoPanelValidationException {
+        this.options.setCreateIndexInGeometryRow(this.chkCreateGeometryIndex.isSelected());
         return true;
     }
     
+    @Override
     public void enterPanel() {
-        if( this.provider.canCreatetable() ) {
+        if( this.options.canCreatetable() ) {
             int index = -1;
-            try {
-                index = this.provider.getSource().getDefaultFeatureType().getDefaultGeometryAttributeIndex();
-            } catch (DataException ex) {
-                logger.warn("Problems determining if the tabla has a geometry column",ex);
-            }
+            index = this.options.getSourceFeatureType().getDefaultGeometryAttributeIndex();
             if( index <0 ) {
                 this.chkCreateGeometryIndex.setEnabled(false);
                 this.chkCreateGeometryIndex.setSelected(false);
@@ -65,6 +64,7 @@
         }
     }
     
+    @Override
     public JComponent asJComponent() {
         return this;
     }
Index: 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/PostCreatingStatementPanel.java
===================================================================
--- 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/PostCreatingStatementPanel.java	(revision 43919)
+++ 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/PostCreatingStatementPanel.java	(revision 43920)
@@ -16,10 +16,10 @@
 public class PostCreatingStatementPanel extends PostCreatingStatementPanelLayout implements ExporttoSwingProviderPanel {
     private static final long serialVersionUID = 7106687071248901180L;
 
-    private ExporttoJDBCOptions provider;
+    private final ExporttoJDBCOptions options;
 
-    public PostCreatingStatementPanel(ExporttoJDBCOptions provider) {
-        this.provider = provider;
+    public PostCreatingStatementPanel(ExporttoJDBCOptions options) {
+        this.options = options;
         initComponents();
     }
 
@@ -29,6 +29,7 @@
         this.txtPostCreatingStatement.setText("");
         this.txtPostCreatingStatement.setEnabled(false);
         this.chkUsePostCreatingStatement.addActionListener(new ActionListener() {
+            @Override
             public void actionPerformed(ActionEvent ae) {
                 doChangeUsePostCreatingStatement();
             }
@@ -47,23 +48,28 @@
         this.txtPostCreatingStatement.setEnabled(this.chkUsePostCreatingStatement.isSelected());
     }
     
+    @Override
     public String getPanelTitle() {
         I18nManager i18nManager = ToolsLocator.getI18nManager();
         return i18nManager.getTranslation("_Post_creating_statement");    
     }
 
+    @Override
     public boolean isValidPanel() throws ExporttoPanelValidationException {
+        this.options.setPostCreatingStatement(this.getPostCreatingStatement());
         return true;
     }
     
+    @Override
     public void enterPanel() {
-        if( this.provider.canCreatetable() ) {
+        if( this.options.canCreatetable() ) {
             this.chkUsePostCreatingStatement.setEnabled(true);
         } else {
             this.chkUsePostCreatingStatement.setEnabled(false);
         }
     }
     
+    @Override
     public JComponent asJComponent() {
         return this;
     }
Index: 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/SelectTableNamePanel.java
===================================================================
--- 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/SelectTableNamePanel.java	(revision 43919)
+++ 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/SelectTableNamePanel.java	(revision 43920)
@@ -26,7 +26,6 @@
 import java.awt.event.ActionListener;
 import java.util.Iterator;
 import java.util.List;
-import java.util.logging.Level;
 
 import javax.swing.DefaultListModel;
 import javax.swing.JComponent;
@@ -46,9 +45,6 @@
 import org.gvsig.fmap.dal.DALLocator;
 import org.gvsig.fmap.dal.DataManager;
 import org.gvsig.fmap.dal.SQLBuilder;
-import org.gvsig.fmap.dal.exception.InitializeException;
-import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
-import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
 import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorer;
 import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
 import org.gvsig.fmap.dal.store.jdbc.JDBCStoreParameters;
@@ -71,7 +67,7 @@
     private static final Logger logger = LoggerFactory.getLogger(SelectTableNamePanel.class);
 
     private static final long serialVersionUID = 6269512983586358017L;
-    private final ExporttoJDBCOptions provider;
+    private final ExporttoJDBCOptions options;
 
     private FillTablesListTask task = null;
     private SQLBuilder sqlbuilder;
@@ -102,8 +98,9 @@
         }
     }
 
-    public SelectTableNamePanel(ExporttoJDBCOptions provider) {
-        this.provider = provider;
+    @SuppressWarnings("OverridableMethodCallInConstructor")
+    public SelectTableNamePanel(ExporttoJDBCOptions options) {
+        this.options = options;
         initComponents();
         this.addAncestorListener(new AncestorListener() {
 
@@ -139,7 +136,7 @@
         this.rdoInsert.setEnabled(false);
         this.lstTables.setEnabled(false);
         try {
-            this.txtTableName.setText(this.provider.getSource().getName());
+            this.txtTableName.setText(this.options.getSourceFeatureStore().getName());
         } catch (Exception ex) {
             logger.warn("Can't set the default value for the table name", ex);
         }
@@ -227,14 +224,14 @@
         }
         if (this.rdoCreateTable.isSelected()) {
             String tablename_tr = tablename;
-            if( this.provider.getTranslateIdentifiersToLowerCase() ) {
+            if( this.options.getTranslateIdentifiersToLowerCase() ) {
                 tablename_tr = tablename_tr.toLowerCase();
             }
-            if( this.provider.getTranslateHyphens()) {
+            if( this.options.getTranslateHyphens()) {
                 tablename_tr = tablename_tr.replace("-", "_");
                 tablename_tr = tablename_tr.replace(".", "_");                
             }
-            if( this.provider.getRemoveSpacesInIdentifiers() ) {
+            if( this.options.getRemoveSpacesInIdentifiers() ) {
                 tablename_tr = StringUtils.normalizeSpace(tablename_tr).replace(" ", "_");
             }
             if( !tablename_tr.equals(tablename) ) {
@@ -271,12 +268,14 @@
                 }
             }
         }
+        this.options.setSchema(this.getSchema());
+        this.options.setTableName(this.getTableName());
         return true;
     }
 
     @Override
     public void enterPanel() {
-        JDBCServerExplorerParameters explorerParameters = provider.getExplorerParameters();
+        JDBCServerExplorerParameters explorerParameters = options.getExplorerParameters();
         if (explorerParameters != null) {
             try {
                 DataManager dataManager = DALLocator.getDataManager();
@@ -311,7 +310,7 @@
 
     private void fillTablesList() {
 
-        JDBCServerExplorerParameters explorerParameters = this.provider.getExplorerParameters();
+        JDBCServerExplorerParameters explorerParameters = this.options.getExplorerParameters();
         if (explorerParameters == null) {
             return;
         }
@@ -335,8 +334,8 @@
         @Override
         public void run() {
 
-            JDBCServerExplorerParameters explorerParameters = provider.getExplorerParameters();
-            if (provider.getExplorerParameters() == null) {
+            JDBCServerExplorerParameters explorerParameters = options.getExplorerParameters();
+            if (options.getExplorerParameters() == null) {
                 return;
             }
             final SimpleTaskStatus status = this.getSimpleTaskStatus();
Index: 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/panel/ExporttoDBFPanel.java
===================================================================
--- 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/panel/ExporttoDBFPanel.java	(revision 43919)
+++ 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/panel/ExporttoDBFPanel.java	(revision 43920)
@@ -1,59 +0,0 @@
-/**
- * gvSIG. Desktop Geographic Information System.
- *
- * Copyright (C) 2007-2013 gvSIG Association.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 3
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.
- *
- * For any additional information, do not hesitate to contact us
- * at info AT gvsig.com, or visit our website www.gvsig.com.
- */
-package org.gvsig.exportto.swing.prov.dbf.panel;
-
-import javax.swing.JComboBox;
-import javax.swing.JLabel;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.gvsig.exportto.swing.prov.file.panel.SelectFileOptionPanel;
-
-/**
- * @author gvSIG Team
- * @version $Id$
- * 
- */
-public class ExporttoDBFPanel extends SelectFileOptionPanel {
-
-    private static final long serialVersionUID = -2657306673271108746L;
-
-    private static final Logger LOG = LoggerFactory
-        .getLogger(ExporttoDBFPanel.class);
-
-    private JLabel encodingLabel;
-    private JComboBox encodingCombo;
-
-    public ExporttoDBFPanel() {
-        super(new EncodingPanel());
-    }
-
-    /**
-     * @return
-     */
-    public String getEncoding() {
-        return ((EncodingPanel) this.getOptionsPanel()).getEncoding();
-    }
-}
Index: 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/panel/EncodingPanelView.xml
===================================================================
--- 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/panel/EncodingPanelView.xml	(revision 0)
+++ 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/panel/EncodingPanelView.xml	(revision 43920)
@@ -0,0 +1,270 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<object classname="com.jeta.forms.store.memento.FormPackage">
+ <at name="fileversion">
+  <object classname="com.jeta.forms.store.memento.FormsVersion2">
+   <at name="major">2</at>
+   <at name="minor">0</at>
+   <at name="sub">0</at>
+  </object>
+ </at>
+ <at name="form">
+  <object classname="com.jeta.forms.store.memento.FormMemento">
+   <super classname="com.jeta.forms.store.memento.ComponentMemento">
+    <at name="cellconstraints">
+     <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+      <at name="column">1</at>
+      <at name="row">1</at>
+      <at name="colspan">1</at>
+      <at name="rowspan">1</at>
+      <at name="halign">default</at>
+      <at name="valign">default</at>
+      <at name="insets" object="insets">0,0,0,0</at>
+     </object>
+    </at>
+    <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
+   </super>
+   <at name="id">/home/jjdelcerro/datos/devel/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.prov/org.gvsig.exportto.swing.prov.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/panel/EncodingPanelView.java.jfrm</at>
+   <at name="rowspecs">CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),CENTER:DEFAULT:NONE</at>
+   <at name="colspecs">FILL:DEFAULT:NONE,FILL:8DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:DEFAULT:NONE</at>
+   <at name="components">
+    <object classname="java.util.LinkedList">
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">2</at>
+           <at name="row">2</at>
+           <at name="colspan">2</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+            <at name="name">lblEncoding</at>
+            <at name="width">631</at>
+            <at name="text">_Encoding</at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="height">14</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">3</at>
+           <at name="row">3</at>
+           <at name="colspan">1</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">javax.swing.JList</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JList</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+            <at name="scrollableTracksViewportHeight">true</at>
+            <at name="scrollableTracksViewportWidth">true</at>
+            <at name="name">lstEncoding</at>
+            <at name="width">615</at>
+            <at name="items">
+             <object classname="com.jeta.forms.store.properties.ItemsProperty">
+              <at name="name">items</at>
+             </object>
+            </at>
+            <at name="scollBars">
+             <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+              <at name="name">scollBars</at>
+              <at name="verticalpolicy">20</at>
+              <at name="horizontalpolicy">30</at>
+              <at name="border">
+               <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                <super classname="com.jeta.forms.store.properties.BorderProperty">
+                 <at name="name">border</at>
+                </super>
+                <at name="borders">
+                 <object classname="java.util.LinkedList">
+                  <item >
+                   <at name="value">
+                    <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                     <super classname="com.jeta.forms.store.properties.BorderProperty">
+                      <at name="name">border</at>
+                     </super>
+                    </object>
+                   </at>
+                  </item>
+                 </object>
+                </at>
+               </object>
+              </at>
+             </object>
+            </at>
+            <at name="height">468</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+    </object>
+   </at>
+   <at name="properties">
+    <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+     <at name="classname">com.jeta.forms.gui.form.GridView</at>
+     <at name="properties">
+      <object classname="com.jeta.forms.store.support.PropertyMap">
+       <at name="border">
+        <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+         <super classname="com.jeta.forms.store.properties.BorderProperty">
+          <at name="name">border</at>
+         </super>
+         <at name="borders">
+          <object classname="java.util.LinkedList"/>
+         </at>
+        </object>
+       </at>
+       <at name="name"></at>
+       <at name="fill">
+        <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+         <at name="name">fill</at>
+        </object>
+       </at>
+       <at name="scollBars">
+        <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+         <at name="name">scollBars</at>
+         <at name="verticalpolicy">21</at>
+         <at name="horizontalpolicy">31</at>
+         <at name="border">
+          <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+           <super classname="com.jeta.forms.store.properties.BorderProperty">
+            <at name="name">border</at>
+           </super>
+           <at name="borders">
+            <object classname="java.util.LinkedList">
+             <item >
+              <at name="value">
+               <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                <super classname="com.jeta.forms.store.properties.BorderProperty">
+                 <at name="name">border</at>
+                </super>
+               </object>
+              </at>
+             </item>
+            </object>
+           </at>
+          </object>
+         </at>
+        </object>
+       </at>
+      </object>
+     </at>
+    </object>
+   </at>
+   <at name="cellpainters">
+    <object classname="com.jeta.forms.store.support.Matrix">
+     <at name="rows">
+      <object classname="[Ljava.lang.Object;" size="4">
+       <at name="item" index="0">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="1">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="2">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+       <at name="item" index="3">
+        <object classname="[Ljava.lang.Object;" size="4"/>
+       </at>
+      </object>
+     </at>
+    </object>
+   </at>
+   <at name="rowgroups">
+    <object classname="com.jeta.forms.store.memento.FormGroupSet">
+     <at name="groups">
+      <object classname="java.util.HashMap"/>
+     </at>
+    </object>
+   </at>
+   <at name="colgroups">
+    <object classname="com.jeta.forms.store.memento.FormGroupSet">
+     <at name="groups">
+      <object classname="java.util.HashMap"/>
+     </at>
+    </object>
+   </at>
+  </object>
+ </at>
+</object>
Index: 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/panel/EncodingPanelView.java
===================================================================
--- 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/panel/EncodingPanelView.java	(revision 0)
+++ 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/panel/EncodingPanelView.java	(revision 43920)
@@ -0,0 +1,143 @@
+package org.gvsig.exportto.swing.prov.dbf.panel;
+
+import com.jeta.open.i18n.I18NUtils;
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.FormLayout;
+import java.awt.BorderLayout;
+import java.awt.ComponentOrientation;
+import java.awt.Container;
+import java.awt.Dimension;
+import javax.swing.Box;
+import javax.swing.ImageIcon;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+
+
+public class EncodingPanelView extends JPanel
+{
+   JLabel lblEncoding = new JLabel();
+   JList lstEncoding = new JList();
+
+   /**
+    * Default constructor
+    */
+   public EncodingPanelView()
+   {
+      initializePanel();
+   }
+
+   /**
+    * Adds fill components to empty cells in the first row and first column of the grid.
+    * This ensures that the grid spacing will be the same as shown in the designer.
+    * @param cols an array of column indices in the first row where fill components should be added.
+    * @param rows an array of row indices in the first column where fill components should be added.
+    */
+   void addFillComponents( Container panel, int[] cols, int[] rows )
+   {
+      Dimension filler = new Dimension(10,10);
+
+      boolean filled_cell_11 = false;
+      CellConstraints cc = new CellConstraints();
+      if ( cols.length > 0 && rows.length > 0 )
+      {
+         if ( cols[0] == 1 && rows[0] == 1 )
+         {
+            /** add a rigid area  */
+            panel.add( Box.createRigidArea( filler ), cc.xy(1,1) );
+            filled_cell_11 = true;
+         }
+      }
+
+      for( int index = 0; index < cols.length; index++ )
+      {
+         if ( cols[index] == 1 && filled_cell_11 )
+         {
+            continue;
+         }
+         panel.add( Box.createRigidArea( filler ), cc.xy(cols[index],1) );
+      }
+
+      for( int index = 0; index < rows.length; index++ )
+      {
+         if ( rows[index] == 1 && filled_cell_11 )
+         {
+            continue;
+         }
+         panel.add( Box.createRigidArea( filler ), cc.xy(1,rows[index]) );
+      }
+
+   }
+
+   /**
+    * Helper method to load an image file from the CLASSPATH
+    * @param imageName the package and name of the file to load relative to the CLASSPATH
+    * @return an ImageIcon instance with the specified image file
+    * @throws IllegalArgumentException if the image resource cannot be loaded.
+    */
+   public ImageIcon loadImage( String imageName )
+   {
+      try
+      {
+         ClassLoader classloader = getClass().getClassLoader();
+         java.net.URL url = classloader.getResource( imageName );
+         if ( url != null )
+         {
+            ImageIcon icon = new ImageIcon( url );
+            return icon;
+         }
+      }
+      catch( Exception e )
+      {
+         e.printStackTrace();
+      }
+      throw new IllegalArgumentException( "Unable to load image: " + imageName );
+   }
+
+   /**
+    * Method for recalculating the component orientation for 
+    * right-to-left Locales.
+    * @param orientation the component orientation to be applied
+    */
+   public void applyComponentOrientation( ComponentOrientation orientation )
+   {
+      // Not yet implemented...
+      // I18NUtils.applyComponentOrientation(this, orientation);
+      super.applyComponentOrientation(orientation);
+   }
+
+   public JPanel createPanel()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:DEFAULT:NONE,FILL:8DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:DEFAULT:NONE","CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),CENTER:DEFAULT:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      lblEncoding.setName("lblEncoding");
+      lblEncoding.setText("_Encoding");
+      jpanel1.add(lblEncoding,cc.xywh(2,2,2,1));
+
+      lstEncoding.setName("lstEncoding");
+      JScrollPane jscrollpane1 = new JScrollPane();
+      jscrollpane1.setViewportView(lstEncoding);
+      jscrollpane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
+      jscrollpane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+      jpanel1.add(jscrollpane1,cc.xy(3,3));
+
+      addFillComponents(jpanel1,new int[]{ 1,2,3,4 },new int[]{ 1,2,3,4 });
+      return jpanel1;
+   }
+
+   /**
+    * Initializer
+    */
+   protected void initializePanel()
+   {
+      setLayout(new BorderLayout());
+      add(createPanel(), BorderLayout.CENTER);
+   }
+
+
+}
Index: 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/panel/EncodingPanel.java
===================================================================
--- 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/panel/EncodingPanel.java	(revision 43919)
+++ 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/panel/EncodingPanel.java	(revision 43920)
@@ -23,82 +23,98 @@
  */
 package org.gvsig.exportto.swing.prov.dbf.panel;
 
-import java.awt.BorderLayout;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
+import javax.swing.DefaultListModel;
+import javax.swing.JComponent;
 
-import javax.swing.JComboBox;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
+import org.gvsig.exportto.swing.prov.dbf.ExportDBFOptions;
+import org.gvsig.exportto.swing.spi.ExporttoPanelValidationException;
+import org.gvsig.exportto.swing.spi.ExporttoSwingProviderPanel;
+import org.gvsig.fmap.dal.DataStoreParameters;
 
-import org.gvsig.i18n.Messages;
 import org.gvsig.metadata.MetadataLocator;
 import org.gvsig.metadata.MetadataManager;
+import org.gvsig.tools.ToolsLocator;
 import org.gvsig.tools.dynobject.DynField;
 import org.gvsig.tools.dynobject.DynObjectValueItem;
 import org.gvsig.tools.dynobject.DynStruct;
+import org.gvsig.tools.i18n.I18nManager;
+import org.gvsig.tools.swing.api.ListElement;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+import org.gvsig.tools.swing.api.ToolsSwingManager;
 
 /**
  * @author gvSIG Team
  * @version $Id$
  * 
  */
-public class EncodingPanel extends JPanel {
+public class EncodingPanel 
+        extends EncodingPanelView 
+        implements ExporttoSwingProviderPanel
+    {
 
-    private JLabel encodingLabel;
-    private JComboBox encodingCombo;
+    private final ExportDBFOptions options;
 
-    public EncodingPanel() {
+
+    public EncodingPanel(ExportDBFOptions options) {
         super();
+        this.options = options;
         initComponents();
-        initEncodingCombo();
     }
 
     private void initComponents() {
-        this.setLayout(new BorderLayout());
-
-        java.awt.GridBagConstraints gridBagConstraints;
-
-        JPanel northPanel = new JPanel();
-        encodingLabel = new JLabel();
-        encodingCombo = new JComboBox();
-
-        northPanel.setLayout(new GridBagLayout());
-
-        encodingLabel.setText(Messages.getText("encoding ") + ": ");
-        gridBagConstraints = new GridBagConstraints();
-        gridBagConstraints.gridx = 0;
-        gridBagConstraints.gridy = 0;
-        northPanel.add(encodingLabel, gridBagConstraints);
-
-        gridBagConstraints = new GridBagConstraints();
-        gridBagConstraints.gridx = 1;
-        gridBagConstraints.gridy = 0;
-        gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
-        gridBagConstraints.weightx = 1.0;
-        northPanel.add(encodingCombo, gridBagConstraints);
-
-        add(northPanel, BorderLayout.NORTH);
-    }
-
-    private void initEncodingCombo() {
         MetadataManager metadataManager = MetadataLocator.getMetadataManager();
         DynStruct dynStruct = metadataManager.getDefinition("DBF");
         DynField dynField = dynStruct.getDynField("Encoding");
-        DynObjectValueItem[] dynObjectValueItem = dynField.getAvailableValues();
-        for (int i = 0; i < dynObjectValueItem.length; i++) {
-            encodingCombo.addItem(dynObjectValueItem[i].getValue());
+        
+        DefaultListModel model = new DefaultListModel();
+        DynObjectValueItem[] encodings = dynField.getAvailableValues();
+        for (DynObjectValueItem encoding : encodings) {
+            model.addElement(new ListElement(encoding.getLabel(),encoding.getValue()));
         }
+        this.lstEncoding.setModel(model);
+        this.lstEncoding.setSelectedIndex(0);
+        
+        String sourceProviderName = this.options.getSourceFeatureStore().getProviderName();
+        if( sourceProviderName.equalsIgnoreCase("Shape") || sourceProviderName.equalsIgnoreCase("DBF") ) {
+            DataStoreParameters params = this.options.getSourceFeatureStore().getParameters();
+            String encoding = (String) params.getDynValue("Encoding");
+            ListElement.setSelected(this.lstEncoding, encoding);
+        }
+        this.translate();
     }
+    
+    private void translate() {
+        ToolsSwingManager i18nc = ToolsSwingLocator.getToolsSwingManager();
+        i18nc.translate(this.lblEncoding);
+    }
 
-    /**
-     * @return
-     */
     public String getEncoding() {
-        String encoding = (String) encodingCombo.getSelectedItem();
-        if ("".equals(encoding)) {
+        ListElement encoding = (ListElement) this.lstEncoding.getSelectedValue();
+        if( encoding==null ) {
             return null;
         }
-        return encoding;
+        return (String) encoding.getValue();
     }
+
+    @Override
+    public String getPanelTitle() {
+        I18nManager i18nManager = ToolsLocator.getI18nManager();
+        return i18nManager.getTranslation("_Select_encoding");    
+    }
+
+    @Override
+    public boolean isValidPanel() throws ExporttoPanelValidationException {
+        this.options.setEncoding(this.getEncoding());
+        return true;
+    }
+
+    @Override
+    public void enterPanel() {
+        // Do nothing
+    }
+
+    @Override
+    public JComponent asJComponent() {
+        return this;
+    }
 }
Index: 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/BaseExportDBFOptions.java
===================================================================
--- 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/BaseExportDBFOptions.java	(revision 0)
+++ 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/BaseExportDBFOptions.java	(revision 43920)
@@ -0,0 +1,38 @@
+package org.gvsig.exportto.swing.prov.dbf;
+
+import java.io.File;
+import org.gvsig.exportto.swing.spi.options.BaseExportOptions;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class BaseExportDBFOptions 
+        extends BaseExportOptions
+        implements ExportDBFOptions 
+    {
+
+    private String encoding;
+    private File file;
+
+    @Override
+    public String getEncoding() {
+        return this.encoding;
+    }
+
+    @Override
+    public void setEncoding(String encoding) {
+        this.encoding = encoding;
+    }
+
+    @Override
+    public File getFile() {
+        return this.file;
+    }
+
+    @Override
+    public void setFile(File file) {
+        this.file = file;
+    }
+    
+}
Index: 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/ExportDBFOptions.java
===================================================================
--- 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/ExportDBFOptions.java	(revision 0)
+++ 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/ExportDBFOptions.java	(revision 43920)
@@ -0,0 +1,15 @@
+package org.gvsig.exportto.swing.prov.dbf;
+
+import org.gvsig.exportto.swing.spi.options.ExportOptions;
+import org.gvsig.tools.util.HasAFile;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public interface ExportDBFOptions extends ExportOptions, HasAFile {
+    
+    public String getEncoding();
+    
+    public void setEncoding(String encoding);
+}
Index: 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/ExporttoDBFProvider.java
===================================================================
--- 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/ExporttoDBFProvider.java	(revision 43919)
+++ 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.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/ExporttoDBFProvider.java	(revision 43920)
@@ -23,38 +23,14 @@
  */
 package org.gvsig.exportto.swing.prov.dbf;
 
-import java.util.logging.Level;
-import java.util.logging.Logger;
 import org.gvsig.exportto.ExporttoService;
 import org.gvsig.exportto.ExporttoServiceException;
-import org.gvsig.exportto.swing.prov.dbf.panel.ExporttoDBFPanel;
+import org.gvsig.exportto.swing.prov.dbf.panel.EncodingPanel;
 import org.gvsig.exportto.swing.prov.file.AbstractExporttoFileProvider;
 import org.gvsig.exportto.swing.spi.ExporttoSwingProvider;
 import org.gvsig.fmap.dal.feature.FeatureStore;
 import org.gvsig.tools.service.spi.ProviderServices;
 
-/* gvSIG. Geographic Information System of the Valencian Government
- *
- * Copyright (C) 2007-2008 Infrastructures and Transports Department
- * of the Valencian Government (CIT)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.
- *
- */
-
 /**
  * Exporto provider which gets Exporto from a file.
  * 
@@ -62,29 +38,43 @@
  * @version $Id$
  * 
  */
-public class ExporttoDBFProvider extends AbstractExporttoFileProvider implements
-    ExporttoSwingProvider {
+public class ExporttoDBFProvider 
+        extends AbstractExporttoFileProvider 
+        implements ExporttoSwingProvider
+    {
 
-    private String encoding;
+    @SuppressWarnings("OverridableMethodCallInConstructor")
+    public ExporttoDBFProvider(
+            ProviderServices providerServices,
+            FeatureStore featureStore
+        ) {
+        super(providerServices, featureStore);
+    }
 
-    public ExporttoDBFProvider(ProviderServices providerServices,
-        FeatureStore featureStore) {
-        super(providerServices, featureStore, null, new ExporttoDBFPanel());
+    @Override
+    public ExportDBFOptions getOptions() {
+        if( this.options == null ) {
+            this.options = new BaseExportDBFOptions();
+        }
+        return (ExportDBFOptions) this.options;
     }
 
     @Override
+    protected void addPanels() {
+        this.panelAdd(new EncodingPanel(this.getOptions()));
+    }
+    
+    @Override
     public ExporttoService createExporttoService() {
         try {
-            return new ExporttoDBFService(selectFileOptionPanel.getSelectedFile(),
-                featureStore,
-                ((ExporttoDBFPanel) selectFileOptionPanel).getEncoding());
+            return new ExporttoDBFService(
+                this.getOptions().getFile(),
+                this.getOptions().getSourceFeatureStore(),
+                this.getOptions().getEncoding()
+            );
         } catch (ExporttoServiceException ex) {
             throw new RuntimeException(ex);
         }
     }
     
-    @Override
-    public boolean needsPanelTargetProjection(){
-        return false;
-    }
 }
Index: 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.file/src/main/java/org/gvsig/exportto/swing/prov/file/AbstractExporttoFileProvider.java
===================================================================
--- 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.file/src/main/java/org/gvsig/exportto/swing/prov/file/AbstractExporttoFileProvider.java	(revision 43919)
+++ 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.file/src/main/java/org/gvsig/exportto/swing/prov/file/AbstractExporttoFileProvider.java	(revision 43920)
@@ -23,14 +23,12 @@
  */
 package org.gvsig.exportto.swing.prov.file;
 
-import org.cresques.cts.IProjection;
-
-import org.gvsig.exportto.swing.prov.file.panel.SelectFileOptionPanel;
+import org.gvsig.exportto.swing.spi.AbstractExporttoSwingProvider;
 import org.gvsig.exportto.swing.spi.ExporttoSwingProvider;
-import org.gvsig.exportto.swing.spi.ExporttoSwingProviderPanel;
+import org.gvsig.exportto.swing.spi.panels.SelectOutputFilePanel;
 import org.gvsig.fmap.dal.feature.FeatureStore;
-import org.gvsig.tools.service.spi.AbstractProvider;
 import org.gvsig.tools.service.spi.ProviderServices;
+import org.gvsig.tools.util.HasAFile;
 
 /**
  * Exporto provider which gets Exporto from a file.
@@ -38,64 +36,20 @@
  * @author gvSIG Team
  * @version $Id$
  */
-public abstract class AbstractExporttoFileProvider extends AbstractProvider
-    implements ExporttoSwingProvider {
+public abstract class AbstractExporttoFileProvider 
+        extends AbstractExporttoSwingProvider
+        implements ExporttoSwingProvider 
+    {
 
-    protected SelectFileOptionPanel selectFileOptionPanel = null;
-
-    protected FeatureStore featureStore;
-    protected IProjection projection;
-
-    /**
-     * Constructor.
-     *
-     * @param providerServices
-     *            the services for the provider
-     * @param file
-     *            to get the Exporto from
-     */
-    public AbstractExporttoFileProvider(ProviderServices providerServices,
-        FeatureStore featureStore, IProjection projection) {
-        this(providerServices, featureStore, projection,
-            new SelectFileOptionPanel());
+    @SuppressWarnings("OverridableMethodCallInConstructor")
+    public AbstractExporttoFileProvider(
+            ProviderServices providerServices,
+            FeatureStore featureStore
+        ) {
+        super(providerServices, featureStore);
+        this.addPanels();
+        this.panelAdd(new SelectOutputFilePanel((HasAFile) this.getOptions()));
     }
 
-    public AbstractExporttoFileProvider(ProviderServices providerServices,
-        FeatureStore featureStore, IProjection projection,
-        SelectFileOptionPanel selectFileOptionPanel) {
-        super(providerServices);
-        this.featureStore = featureStore;
-        this.projection = projection;
-
-        this.selectFileOptionPanel = selectFileOptionPanel;
-    }
-
-    public int getPanelCount() {
-        return 1;
-    }
-
-    public ExporttoSwingProviderPanel getPanelAt(int index) {
-        switch (index) {
-        case 0:
-            return selectFileOptionPanel;
-        }
-        return null;
-    }
-
-    /**
-     * Sets the target projection to which should be exported
-     * @param targetProjection
-     */
-    public void setTargetProjection(IProjection targetProjection){
-        this.projection=targetProjection;
-    }
-
-    /**
-     * Informs if it needs to ask for a target projection,
-     * or if it is not needed or provided through its own wizard panel.
-     * @return
-     */
-    public boolean needsPanelTargetProjection(){
-        return true;
-    }
+    protected abstract void addPanels();        
 }
