Index: DefaultJDBCConnectionPanel.java
===================================================================
--- DefaultJDBCConnectionPanel.java	(revision 43376)
+++ DefaultJDBCConnectionPanel.java	(revision 43377)
@@ -20,6 +20,7 @@
 import javax.swing.plaf.basic.BasicHTML;
 import javax.swing.text.View;
 import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.BooleanUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.gvsig.fmap.dal.DALLocator;
 import org.gvsig.fmap.dal.DataFactory;
@@ -46,6 +47,7 @@
     private static final long serialVersionUID = -6119489353793596382L;
     private JDBCServerExplorerParameters forcedParameters;
     private ItemListener onChangeConnectorItemListener;
+    private ConnectorFilter connectorFilter=null;
 
     @Override
     public JComponent asJComponent() {
@@ -156,6 +158,7 @@
     private void translate() {
         I18nManager i18nManager = ToolsLocator.getI18nManager();
         
+        this.lblFile.setText(i18nManager.getTranslation("_File"));
         this.lblConnectionName.setText(i18nManager.getTranslation("_Connection_name"));
         this.lblConnector.setText(i18nManager.getTranslation("_Driver_type"));
         this.lblServer.setText(i18nManager.getTranslation("_Host"));
@@ -200,7 +203,21 @@
         this.txtUsername.setEnabled( !( field.isReadOnly() || field.isHidden() ));
         field = definition.getDynField(JDBCServerExplorerParameters.PASSWORD_PARAMTER_NAME);
         this.txtPassword.setEnabled( !( field.isReadOnly() || field.isHidden() ));
-        this.btnDataBaseBrowser.setVisible(parameters instanceof FilesystemStoreParameters);
+        if( parameters instanceof FilesystemStoreParameters ) {
+            File f = ((FilesystemStoreParameters) parameters).getFile();
+            if( f==null ) {
+                this.txtFile.setText("");
+            } else {
+                this.txtFile.setText(f.getAbsolutePath());
+            }
+            this.btnDataBaseBrowser.setVisible(true);
+            this.txtFile.setVisible(true);
+            this.lblFile.setVisible(true);
+        } else {
+            this.btnDataBaseBrowser.setVisible(false);
+            this.txtFile.setVisible(false);
+            this.lblFile.setVisible(false);
+        }
     }
 
     @Override
@@ -338,31 +355,41 @@
         }
         return -1;
     }
+    
+    @Override
+    public void setConnectorFilter(ConnectorFilter connectorFilter) {
+        this.connectorFilter = connectorFilter;
+        fillConnections();
+        fillConnectors();        
+    }
 
     private void fillConnectors() {
         DataManager dataManager = DALLocator.getDataManager();
 
         ServerExplorerParametersComboItem last = null;
+        this.cboConnectors.removeAllItems();
         this.cboConnectors.addItem(new ServerExplorerParametersComboItem("",null));
         
         for (DataFactory factory :  dataManager.getServerExplorerRegister() ) {
             DataServerExplorerParameters params = (DataServerExplorerParameters) factory.createParameters();
             if ( params instanceof JDBCServerExplorerParameters ) {
-                if( params.getClass() == JDBCServerExplorerParameters.class && 
-                    last == null ) {
-                    // Si es el proveedor generico de JDBC, lo guarda para 
-                    // añadirlo al final del combo.
-                    last = new ServerExplorerParametersComboItem(
-                            factory.getDescription(),
-                            (JDBCServerExplorerParameters) params
-                    );
-                } else {
-                    this.cboConnectors.addItem(
-                        new ServerExplorerParametersComboItem(
+                if( this.connectorFilter==null || this.connectorFilter.accept((JDBCServerExplorerParameters) params) ) {
+                    if( params.getClass() == JDBCServerExplorerParameters.class && 
+                        last == null ) {
+                        // Si es el proveedor generico de JDBC, lo guarda para 
+                        // añadirlo al final del combo.
+                        last = new ServerExplorerParametersComboItem(
                                 factory.getDescription(),
                                 (JDBCServerExplorerParameters) params
-                        )
-                    );
+                        );
+                    } else {
+                        this.cboConnectors.addItem(
+                            new ServerExplorerParametersComboItem(
+                                    factory.getDescription(),
+                                    (JDBCServerExplorerParameters) params
+                            )
+                        );
+                    }
                 }
             }
         }
@@ -376,15 +403,17 @@
         DataServerExplorerPool pool = dataManager.getDataServerExplorerPool();
 
         DataServerExplorerParameters params;
-
+        this.cboConnections.removeAllItems();
         Iterator it = pool.iterator();
         while ( it.hasNext() ) {
             DataServerExplorerPoolEntry entry = (DataServerExplorerPoolEntry) it.next();
             if ( entry.getExplorerParameters() instanceof JDBCServerExplorerParameters ) {
-                JDBCServerExplorerParameters dbParams = (JDBCServerExplorerParameters) entry.getExplorerParameters();
-                this.cboConnections.addItem(
-                        new ServerExplorerParametersComboItem(entry.getName(), dbParams)
-                );
+                if( this.connectorFilter==null || this.connectorFilter.accept((JDBCServerExplorerParameters) entry.getExplorerParameters()) ) {
+                    JDBCServerExplorerParameters dbParams = (JDBCServerExplorerParameters) entry.getExplorerParameters();
+                    this.cboConnections.addItem(
+                            new ServerExplorerParametersComboItem(entry.getName(), dbParams)
+                    );
+                }
             }
         }
         this.cboConnections.setSelectedIndex(-1);
@@ -397,6 +426,7 @@
         DataServerExplorerPool pool = dataManager.getDataServerExplorerPool();
         
         pool.remove(name);
+        fillConnections();
     }
     
     @Override
@@ -424,6 +454,6 @@
             return;
         }
         ((FilesystemStoreParameters)this.forcedParameters).setFile(files[0]);
-        this.txtDataBase.setText(this.forcedParameters.getDBName());
+        this.txtFile.setText(((FilesystemStoreParameters)(this.forcedParameters)).getFile().getAbsolutePath());
     }
 }
