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/export/swing/impl/panels/SelectAttributesPanel.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/export/swing/impl/panels/SelectAttributesPanel.java	(revision 44418)
+++ 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/export/swing/impl/panels/SelectAttributesPanel.java	(revision 44419)
@@ -11,7 +11,6 @@
 import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
 import javax.swing.DefaultCellEditor;
 import javax.swing.DefaultComboBoxModel;
@@ -51,8 +50,6 @@
 import org.gvsig.tools.swing.api.ToolsSwingLocator;
 import org.gvsig.tools.swing.api.ToolsSwingManager;
 import org.gvsig.tools.swing.icontheme.IconTheme;
-import org.gvsig.tools.util.LabeledValue;
-import org.gvsig.tools.util.LabeledValueImpl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/impl/DefaultDataManager.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/impl/DefaultDataManager.java	(revision 44418)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/impl/DefaultDataManager.java	(revision 44419)
@@ -23,7 +23,6 @@
 
 import org.gvsig.fmap.dal.DataFactory;
 import org.gvsig.fmap.dal.DataManager;
-import org.gvsig.fmap.dal.DataParameters;
 import org.gvsig.fmap.dal.DataServerExplorer;
 import org.gvsig.fmap.dal.DataServerExplorerFactory;
 import org.gvsig.fmap.dal.DataServerExplorerParameters;
@@ -34,6 +33,7 @@
 import org.gvsig.fmap.dal.DataStoreProviderFactory;
 import org.gvsig.fmap.dal.DataTypes;
 import org.gvsig.fmap.dal.DatabaseWorkspaceManager;
+import org.gvsig.fmap.dal.DatabaseWorkspaceManager.AddDatabaseWorkspaceListener;
 
 import org.gvsig.fmap.dal.NewDataStoreParameters;
 import org.gvsig.fmap.dal.OpenErrorHandler;
@@ -97,7 +97,11 @@
 import org.gvsig.tools.identitymanagement.UnauthorizedException;
 import org.gvsig.tools.persistence.PersistenceManager;
 import org.gvsig.tools.resourcesstorage.ResourcesStorage;
+import org.gvsig.tools.script.Script;
+import org.gvsig.tools.script.ScriptManager;
 import org.gvsig.tools.service.spi.Services;
+import org.gvsig.tools.util.Callable;
+import org.gvsig.tools.util.Invocable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -159,6 +163,8 @@
     private List<DataProfile> dataProfiles;
     
     private final Map<String, DatabaseWorkspaceManager> databaseWorkspaces = new HashMap<>();
+ 
+    private final Map<String,AddDatabaseWorkspaceListener> addDatabaseWorkspaceListeners = new HashMap<>();
     
     public DefaultDataManager() {
         this.registers = new Registers();
@@ -1047,7 +1053,32 @@
         this.databaseWorkspaces.put(databaseWorkspace.getId(),databaseWorkspace);
         StoresRepository repo = databaseWorkspace.getStoresRepository();
         this.getStoresRepository().addRepository(repo);
+
+        for (AddDatabaseWorkspaceListener listener : this.addDatabaseWorkspaceListeners.values()) {
+            if( listener!=null ) {
+                try {
+                    listener.onAddDatabaseWorkspace(databaseWorkspace);
+                } catch(Throwable th) {
+                    LOGGER.warn("Problems calling databaseworkspace listener '"+listener.getName()+"'.",th);
+                }
+            }
+        }
+        try {
+            ResourcesStorage resources = databaseWorkspace.getResourcesStorage();
+            ScriptManager scriptManager = ToolsLocator.getScriptManager();
+            Script script = scriptManager.loadScript(resources, "OnConnectToWorkspace.script");
+            if( script != null ) {
+                script.invokeFunction("main", new Object[] {databaseWorkspace});
+            }
+        } catch(Throwable th) {
+            LOGGER.warn("Problems executing 'OnConnectToWorkspace.script' from workspace '"+databaseWorkspace.getId()+"'.",th);
+        }
     }
+    
+    @Override
+    public void addDatabaseWorkspaceListener(AddDatabaseWorkspaceListener listener) {
+        this.addDatabaseWorkspaceListeners.put(listener.getName(), listener);
+    }
 
     @Override
     public DatabaseWorkspaceManager getDatabaseWorkspace(String name) {
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/impl/DefaultDataServerExplorerPool.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/impl/DefaultDataServerExplorerPool.java	(revision 44418)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/impl/DefaultDataServerExplorerPool.java	(revision 44419)
@@ -37,12 +37,19 @@
         return this.pool.isEmpty();
     }
     
+    public DataServerExplorerPoolEntry createEntry(String name, String description, DataServerExplorerParameters explorer) {
+        DefaultDataServerExplorerPoolEntry entry = new DefaultDataServerExplorerPoolEntry(name, description, explorer);
+        return entry;
+    }
+
+    @Override
     public void add(String name, DataServerExplorerParameters explorer) {
         this.add(name, null, explorer);
     }
 
+    @Override
     public void add(String name, String description, DataServerExplorerParameters explorer) {
-        DefaultDataServerExplorerPoolEntry newexplorer = new DefaultDataServerExplorerPoolEntry(name, description, explorer);
+        DataServerExplorerPoolEntry newexplorer = createEntry(name, description, explorer);
         DataServerExplorerPoolEntry existent = this.get(name);
         if( existent!=null ) {
             newexplorer.copyTo(existent);
@@ -51,14 +58,17 @@
         }
     }
 
+    @Override
     public void remove(DataServerExplorerPoolEntry entry) {
         this.remove(entry.getName());
     }
 
+    @Override
     public void remove(int explorerIndex) {
         this.pool.remove(explorerIndex);
     }
 
+    @Override
     public void remove(String name) {
         if( StringUtils.isBlank(name) ) {
             return;
@@ -71,14 +81,17 @@
         }
     }
     
+    @Override
     public int size() {
         return this.pool.size();
     }
 
+    @Override
     public DataServerExplorerPoolEntry get(int index) {
         return (DataServerExplorerPoolEntry) this.pool.get(index);
     }
 
+    @Override
     public DataServerExplorerPoolEntry get(String name) {
         if( StringUtils.isBlank(name) ) {
             return null;
@@ -92,14 +105,17 @@
         return null;
     }
 
+    @Override
     public Iterator iterator() {
         return this.pool.iterator();
     }
 
+    @Override
     public void saveToState(PersistentState state) throws PersistenceException {
         state.set("pool", pool);
     }
 
+    @Override
     public void loadFromState(PersistentState state) throws PersistenceException {
         List l = state.getList("pool");
         this.pool = new ArrayList();
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/impl/DefaultDataServerExplorerPoolEntry.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/impl/DefaultDataServerExplorerPoolEntry.java	(revision 44418)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/impl/DefaultDataServerExplorerPoolEntry.java	(revision 44419)
@@ -37,10 +37,12 @@
 
     }
 
+    @Override
     public String getName() {
         return this.name;
     }
 
+    @Override
     public void copyTo(DataServerExplorerPoolEntry target) {
         DefaultDataServerExplorerPoolEntry other = (DefaultDataServerExplorerPoolEntry)target;
         other.name = this.name;
@@ -48,20 +50,24 @@
         other.explorer = this.explorer;                 
     }
     
+    @Override
     public DataServerExplorerParameters getExplorerParameters() {
         return this.explorer;
     }
 
+    @Override
     public String getDescription() {
         return this.description;
     }
 
+    @Override
     public void saveToState(PersistentState state) throws PersistenceException {
         state.set("name", this.name);
         state.set("description", this.description);
         state.set("explorer", this.explorer);
     }
 
+    @Override
     public void loadFromState(PersistentState state) throws PersistenceException {
         this.description = state.getString("description");
         this.name = state.getString("name");
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/impl/DefaultDatabaseWorkspaceManager.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/impl/DefaultDatabaseWorkspaceManager.java	(revision 44418)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/impl/DefaultDatabaseWorkspaceManager.java	(revision 44419)
@@ -11,7 +11,6 @@
 import org.apache.commons.lang3.mutable.MutableObject;
 import org.gvsig.expressionevaluator.ExpressionBuilder;
 import org.gvsig.expressionevaluator.ExpressionUtils;
-import org.gvsig.expressionevaluator.SymbolTable;
 import org.gvsig.expressionevaluator.spi.AbstractSymbolTable;
 import org.gvsig.fmap.dal.DALLocator;
 import org.gvsig.fmap.dal.DataManager;
@@ -652,5 +651,21 @@
         }
     }
 
+    @Override
+    public ResourcesStorage getResourcesStorage() {
+        try {
+            DataManager dataManager = DALLocator.getDataManager();
+            DataServerExplorer server = dataManager.openServerExplorer(
+                    this.serverParameters.getProviderName(),
+                    this.serverParameters
+            );
+            ResourcesStorage resourcesStorage = server.getResourcesStorage();
+            return resourcesStorage;
+        } catch (Exception ex) {
+            LOGGER.warn("Can't get resorces storage.",ex);
+            return null;
+        }
+    }
+
     
 }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/JDBCServerExplorerBase.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/JDBCServerExplorerBase.java	(revision 44418)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/JDBCServerExplorerBase.java	(revision 44419)
@@ -27,6 +27,7 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.logging.Level;
 import org.apache.commons.lang3.BooleanUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -441,7 +442,21 @@
         return theResourcesStorage;            
     }
     
-    
+    public ResourcesStorage getResourcesStorage() {
+        JDBCStoreParameters params;
+        try {
+            params = this.getOpenParameters();
+            JDBCResourcesStorage theResourcesStorage = new JDBCResourcesStorage(
+                    null,
+                    params,
+                    "$SERVVER$"
+            );
+            return theResourcesStorage;
+        } catch (DataException ex) {
+            return null;
+        }
+    }
+ 
     @Override
     public ResourcesStorage getResourcesStorage(DataStoreParameters parameters) {
         if( parameters == null ) {
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/jdbc/DefaultJDBCConnectionDialog.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/jdbc/DefaultJDBCConnectionDialog.java	(revision 44418)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/jdbc/DefaultJDBCConnectionDialog.java	(revision 44419)
@@ -26,6 +26,24 @@
 import java.awt.BorderLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Objects;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JOptionPane;
+import javax.swing.filechooser.FileFilter;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.ArrayUtils;
+import org.gvsig.filedialogchooser.FileDialogChooser;
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.DataManager;
+import org.gvsig.fmap.dal.DataServerExplorerPool;
+import org.gvsig.fmap.dal.DataServerExplorerPoolEntry;
 import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
 import org.gvsig.fmap.dal.swing.DALSwingLocator;
 import org.gvsig.fmap.dal.swing.dataStoreParameters.DataStoreParametersPanel;
@@ -40,10 +58,19 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.gvsig.fmap.dal.swing.jdbc.JDBCConnectionDialog;
+import org.gvsig.tools.folders.FoldersManager;
+import org.gvsig.tools.persistence.PersistenceManager;
+import org.gvsig.tools.persistence.PersistentState;
+import org.gvsig.tools.swing.api.DropDown;
+import org.gvsig.tools.swing.api.ToolsSwingManager;
+import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager;
+import org.gvsig.tools.util.LabeledValue;
+import org.gvsig.tools.util.LabeledValueImpl;
 
 
 
 
+@SuppressWarnings("UseSpecificCatch")
 public class DefaultJDBCConnectionDialog extends DefaultJDBCConnectionDialogView implements JDBCConnectionDialog {
 
     private static final long serialVersionUID = -5493563028200403559L;
@@ -53,42 +80,57 @@
 
     private boolean isCanceled = false;
     private JDBCConnectionPanel jdbcServerExplorer;
+    private DropDown ddnMore;
 
     public DefaultJDBCConnectionDialog() {
         initComponents();
     }
     
     private void initComponents() {
-        I18nManager i18nManager = ToolsLocator.getI18nManager();
-        this.btnAdvanced.setText(i18nManager.getTranslation("advanced"));
-        this.btnAdvanced.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent ae) {
-                doAdvanced();
-            }
-        });
-        this.btnAcept.setText(i18nManager.getTranslation("ok"));
+        I18nManager i18n = ToolsLocator.getI18nManager();
+        ToolsSwingManager toolsSwingManager = ToolsSwingLocator.getToolsSwingManager();
+        this.btnAcept.setText(i18n.getTranslation("ok"));
         this.btnAcept.addActionListener(new ActionListener() {
             @Override
             public void actionPerformed(ActionEvent ae) {
                 doAcept();
             }
         });
-        this.btnCancel.setText(i18nManager.getTranslation("cancel"));
+        this.btnCancel.setText(i18n.getTranslation("cancel"));
         this.btnCancel.addActionListener(new ActionListener() {
             @Override
             public void actionPerformed(ActionEvent ae) {
                 doCancel();
             }
         });
-        
-        this.btnDelete.setText(i18nManager.getTranslation("del"));
-        this.btnDelete.addActionListener(new ActionListener() {
+        DefaultComboBoxModel<LabeledValue<String>> model = new DefaultComboBoxModel<>();
+        model.addElement(new LabeledValueImpl<>(i18n.getTranslation("advanced"), "advanced"));
+        model.addElement(new LabeledValueImpl<>(i18n.getTranslation("delete"), "delete"));
+        model.addElement(new LabeledValueImpl<>(i18n.getTranslation("load"), "load"));
+        model.addElement(new LabeledValueImpl<>(i18n.getTranslation("save"), "save"));
+        this.ddnMore = toolsSwingManager.createDropDown(this.btnMore);
+        this.ddnMore.setModel(model);
+        this.ddnMore.addItemListener(new ItemListener() {
             @Override
-            public void actionPerformed(ActionEvent ae) {
-            	doDelete();
+            public void itemStateChanged(ItemEvent e) {
+                LabeledValue<String> selectedItem = (LabeledValue<String>) ddnMore.getSelectedItem();
+                switch(selectedItem.getValue()) {
+                    case "advanced":
+                        doAdvanced();
+                        break;
+                    case "delete":
+                        doDelete();
+                        break;
+                    case "load":
+                        doLoad();
+                        break;
+                    case "save":
+                        doSave();
+                        break;
+                }
             }
         });
+
         this.jdbcServerExplorer = DALSwingLocator.getSwingManager().createJDBCConnectionPanel();
         this.containerJDBCConnectionPanel.setLayout(new BorderLayout());
         this.containerJDBCConnectionPanel.add(
@@ -96,7 +138,131 @@
                 BorderLayout.CENTER
         );
     }
+
+    protected void doLoad() {
+        I18nManager i18n = ToolsLocator.getI18nManager();
+        ThreadSafeDialogsManager dialogs = ToolsSwingLocator.getThreadSafeDialogsManager();
+        FoldersManager folderManager = ToolsLocator.getFoldersManager();
+        DataManager dataManager = DALLocator.getDataManager();
+
+        File initialPath = folderManager.getLastPath("CONNECTIONS", null);
+        File[] f = dialogs.showChooserDialog(
+                i18n.getTranslation("_Load_connection"), 
+                FileDialogChooser.OPEN_DIALOG, 
+                FileDialogChooser.FILES_ONLY,
+                false, 
+                initialPath, 
+                new FileFilter() {
+                    @Override
+                    public boolean accept(File f) {
+                        return Objects.toString(f,"").toLowerCase().endsWith(".gvdbcon");
+                    }
+
+                    @Override
+                    public String getDescription() {
+                        return "Database connection (gvdbcon)";
+                    }
+                }, 
+                true
+        );
+        if( ArrayUtils.isEmpty(f) || f[0]==null ) {
+            return;
+        }
+        folderManager.setLastPath("CONNECTIONS", f[0].getParentFile());
+        InputStream in = null;
+        try {
+            in = new FileInputStream(f[0]);
+            PersistenceManager persistence = ToolsLocator.getPersistenceManager();
+            DataServerExplorerPoolEntry entry = (DataServerExplorerPoolEntry) persistence.getObject(in);
+            LabeledValueImpl<JDBCServerExplorerParameters> parameters = new LabeledValueImpl<>(
+                    entry.getName(), 
+                    (JDBCServerExplorerParameters)entry.getExplorerParameters()
+            );
+            this.jdbcServerExplorer.setLabeledServerExplorerParameters(parameters);
+        } catch(Throwable th) {
+            LOG.warn("Problems loading connection",th);
+            dialogs.messageDialog(
+                    i18n.getTranslation("_Problems_loading_the_connection"), 
+                    i18n.getTranslation("_Load_connection"), 
+                    JOptionPane.WARNING_MESSAGE
+            );
+//            return;
+        } finally {
+            IOUtils.closeQuietly(in);
+        }
+    }
     
+    protected void doSave() {
+        I18nManager i18n = ToolsLocator.getI18nManager();
+        ThreadSafeDialogsManager dialogs = ToolsSwingLocator.getThreadSafeDialogsManager();
+        FoldersManager folderManager = ToolsLocator.getFoldersManager();
+        DataManager dataManager = DALLocator.getDataManager();
+
+        LabeledValue<JDBCServerExplorerParameters> parameters = this.getLabeledServerExplorerParameters();
+        if( parameters == null || parameters.getValue()==null ) {
+            dialogs.messageDialog(
+                    i18n.getTranslation("_There_is_no_connection_to_save"), 
+                    i18n.getTranslation("_Save_connection"), 
+                    JOptionPane.INFORMATION_MESSAGE
+            );
+            return;
+        }
+        File initialPath = folderManager.getLastPath("CONNECTIONS", null);
+        File[] f = dialogs.showChooserDialog(
+                i18n.getTranslation("_Save_connection"), 
+                FileDialogChooser.SAVE_DIALOG, 
+                FileDialogChooser.FILES_ONLY,
+                false, 
+                initialPath, 
+                new FileFilter() {
+                    @Override
+                    public boolean accept(File f) {
+                        return Objects.toString(f,"").toLowerCase().endsWith(".gvdbcon");
+                    }
+
+                    @Override
+                    public String getDescription() {
+                        return "Database connection (gvdbcon)";
+                    }
+                }, 
+                true
+        );
+        if( ArrayUtils.isEmpty(f) || f[0]==null ) {
+            return;
+        }
+        folderManager.setLastPath("CONNECTIONS", f[0].getParentFile());
+
+        File paramsFile = f[0];
+        if( !f[0].toString().toLowerCase().endsWith(".gvdbcon") ) {
+            paramsFile = new File(f[0].toString()+".gvdbcon");
+        }
+
+        DataServerExplorerPool pool = dataManager.getDataServerExplorerPool();
+        DataServerExplorerPoolEntry entry = pool.createEntry(
+                parameters.getLabel(), 
+                null, 
+                parameters.getValue()
+        );
+        
+        OutputStream out = null;
+        try {
+            out = new FileOutputStream(paramsFile);
+            PersistenceManager persistence = ToolsLocator.getPersistenceManager();
+            PersistentState state = persistence.getState(entry);
+            persistence.saveState(state, out);
+        } catch(Throwable th) {
+            LOG.warn("Problems saving connection",th);
+            dialogs.messageDialog(
+                    i18n.getTranslation("_Problems_saving_the_connection"), 
+                    i18n.getTranslation("_Save_connection"), 
+                    JOptionPane.WARNING_MESSAGE
+            );
+//            return;
+        } finally {
+            IOUtils.closeQuietly(out);
+        }
+    }
+    
     protected void doAdvanced() {
         JDBCServerExplorerParameters myParams = this.getServerExplorerParameters();
         try {
@@ -146,6 +312,11 @@
     }
     
     @Override
+    public LabeledValue<JDBCServerExplorerParameters> getLabeledServerExplorerParameters() {
+        return this.jdbcServerExplorer.getLabeledServerExplorerParameters();
+    }
+    
+    @Override
     public String getConnectionName() {
         return this.jdbcServerExplorer.getConnectionName();
     }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/jdbc/DefaultJDBCConnectionPanel.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/jdbc/DefaultJDBCConnectionPanel.java	(revision 44418)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/jdbc/DefaultJDBCConnectionPanel.java	(revision 44419)
@@ -6,7 +6,7 @@
 import java.awt.event.ItemEvent;
 import java.awt.event.ItemListener;
 import java.io.File;
-import java.util.Iterator;
+import java.util.Objects;
 import javax.swing.ComboBoxModel;
 import javax.swing.JComponent;
 import javax.swing.JLabel;
@@ -14,6 +14,7 @@
 import javax.swing.SwingUtilities;
 import javax.swing.plaf.basic.BasicHTML;
 import javax.swing.text.View;
+import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.gvsig.fmap.dal.DALLocator;
@@ -31,6 +32,8 @@
 import org.gvsig.tools.i18n.I18nManager;
 import org.gvsig.tools.swing.api.ToolsSwingLocator;
 import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager;
+import org.gvsig.tools.util.LabeledValue;
+import org.gvsig.tools.util.LabeledValueImpl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -49,34 +52,34 @@
         return this;
     }
     
-    private static class ServerExplorerParametersComboItem {
+//    private static class ServerExplorerParametersComboItem {
+//
+//        private JDBCServerExplorerParameters params;
+//        private String label;
+//
+//        public ServerExplorerParametersComboItem(String label, JDBCServerExplorerParameters params) {
+//            this.params = params;
+//            this.label = label;
+//        }
+//
+//        public ServerExplorerParametersComboItem(JDBCServerExplorerParameters params) {
+//            this(params.getExplorerName(), params);
+//        }
+//
+//        @Override
+//        public String toString() {
+//            return this.label;
+//        }
+//
+//        public JDBCServerExplorerParameters getParams() {
+//            return this.params;
+//        }
+//
+//        public String getLabel() {
+//            return this.label;
+//        }
+//    }
 
-        private JDBCServerExplorerParameters params;
-        private String label;
-
-        public ServerExplorerParametersComboItem(String label, JDBCServerExplorerParameters params) {
-            this.params = params;
-            this.label = label;
-        }
-
-        public ServerExplorerParametersComboItem(JDBCServerExplorerParameters params) {
-            this(params.getExplorerName(), params);
-        }
-
-        @Override
-        public String toString() {
-            return this.label;
-        }
-
-        public JDBCServerExplorerParameters getParams() {
-            return this.params;
-        }
-
-        public String getLabel() {
-            return this.label;
-        }
-    }
-
     @SuppressWarnings("OverridableMethodCallInConstructor")
     public DefaultJDBCConnectionPanel() {
         initComponents();
@@ -163,6 +166,19 @@
         this.lblPassword.setText(i18nManager.getTranslation("_Password"));
         this.lblFoother.setText("<html>"+i18nManager.getTranslation("_JDBCConecctionPanel_foother")+"</html>");
     }
+
+    @Override
+    public void setLabeledServerExplorerParameters(LabeledValue<JDBCServerExplorerParameters> parameters) {
+        if( parameters == null ) {
+            return;
+        }
+        if( parameters.getValue()!=null ) {
+            this.setServerExplorerParameters(parameters.getValue());
+        }
+        if( !StringUtils.isBlank(parameters.getLabel()) ) {
+            this.cboConnections.setSelectedItem(parameters.getLabel());
+        }
+    }
     
     @Override
     public void setServerExplorerParameters(JDBCServerExplorerParameters parameters) {
@@ -217,6 +233,15 @@
 
     @Override
     public JDBCServerExplorerParameters getServerExplorerParameters() {
+        LabeledValue<JDBCServerExplorerParameters> labeledConnection = this.getLabeledServerExplorerParameters();
+        if( labeledConnection==null ) {
+            return null;
+        }
+        return labeledConnection.getValue();
+    }
+    
+    @Override
+    public LabeledValue<JDBCServerExplorerParameters> getLabeledServerExplorerParameters() {
         JDBCServerExplorerParameters params;
         JDBCServerExplorerParameters connector = this.getConnector();
         if( connector==null ) {
@@ -248,13 +273,52 @@
             params.setPassword(s);
         }
 
-        if ( this.getConnectionName() != null ) {
-            DataManager dataManager = DALLocator.getDataManager();
-            DataServerExplorerPool pool = dataManager.getDataServerExplorerPool();
-            pool.add(this.getConnectionName(), params);
+        String name = this.getConnectionName();
+        if ( StringUtils.isBlank(name) ) {
+            if( params instanceof FilesystemStoreParameters ) {
+                File f = ((FilesystemStoreParameters) params).getFile();
+                if( f!=null ) {
+                    name = FilenameUtils.getBaseName(f.getPath());
+                }
+            }
+            if( StringUtils.isBlank(name) ) {
+                StringBuilder builder = new StringBuilder();
+                builder.append(Objects.toString(params.getHost(),""));
+                if( builder.length()>0 && !builder.toString().endsWith("-")) {
+                    builder.append("-");
+                }
+                builder.append(Objects.toString(params.getPort(),""));
+                if( builder.length()>0 && !builder.toString().endsWith("-")) {
+                    builder.append("-");
+                }
+                builder.append(Objects.toString(params.getDBName(),""));
+                name = builder.toString();
+            }
         }
-        return params;
+        if( StringUtils.isBlank(name) ) {
+            name = getUniqueEntryName("Connection");
+        } else {
+            name = getUniqueEntryName(name);
+        }
+
+        DataManager dataManager = DALLocator.getDataManager();
+        DataServerExplorerPool pool = dataManager.getDataServerExplorerPool();
+        pool.add(name, params);
+        return new LabeledValueImpl<>(name,params);
     }
+    
+    private String getUniqueEntryName(String name) {
+        DataManager dataManager = DALLocator.getDataManager();
+        DataServerExplorerPool pool = dataManager.getDataServerExplorerPool();
+        String baseName = name;
+        for (int i = 0; i < 1000; i++) {
+            if( !pool.contains(name) ) {
+                return name;
+            }
+            name = baseName+"-"+i;
+        }
+        return name + System.currentTimeMillis();
+    }
 
     protected void setConnectionName(String connectionName) {
         JTextField txtConnections = (JTextField) this.cboConnections.getEditor().getEditorComponent();
@@ -269,9 +333,11 @@
     }
 
     protected JDBCServerExplorerParameters getConnector() {
-        ServerExplorerParametersComboItem item = (ServerExplorerParametersComboItem) this.cboConnectors.getSelectedItem();
-        JDBCServerExplorerParameters value = item.getParams();
-        return value;
+        LabeledValue<JDBCServerExplorerParameters> item = (LabeledValue<JDBCServerExplorerParameters>) this.cboConnectors.getSelectedItem();
+        if( item == null ) {
+            return null;
+        }
+        return item.getValue();
     }
 
     protected String getConnectorName() {
@@ -310,11 +376,11 @@
     }
 
     private void onChangeConnector() {
-        ServerExplorerParametersComboItem item = (ServerExplorerParametersComboItem) this.cboConnectors.getSelectedItem();
+        LabeledValue<JDBCServerExplorerParameters> item = (LabeledValue<JDBCServerExplorerParameters>) this.cboConnectors.getSelectedItem();
         if( item==null ) {
             return;
         }
-        JDBCServerExplorerParameters connector = item.getParams();
+        JDBCServerExplorerParameters connector = item.getValue();
         
         if ( connector == null ) {
             return;
@@ -323,14 +389,15 @@
     }
 
     private void onChangeConnection() {
-        Object item = this.cboConnections.getSelectedItem();
-        if ( item instanceof ServerExplorerParametersComboItem ) {
-            JDBCServerExplorerParameters connection = ((ServerExplorerParametersComboItem) item).getParams();
-            if ( connection == null ) {
-                return;
-            }
-            this.setServerExplorerParameters(connection);
+        LabeledValue<JDBCServerExplorerParameters> item = (LabeledValue<JDBCServerExplorerParameters>) this.cboConnections.getSelectedItem();
+        if( item == null ) {
+            return;
         }
+        JDBCServerExplorerParameters connection = item.getValue();
+        if ( connection == null ) {
+            return;
+        }
+        this.setServerExplorerParameters(connection);
     }
     
 
@@ -340,8 +407,8 @@
             code = explorerParameters.toString();
             ComboBoxModel model = this.cboConnectors.getModel();
             for ( int i = 0; i < model.getSize(); i++ ) {
-                ServerExplorerParametersComboItem x = (ServerExplorerParametersComboItem) model.getElementAt(i);
-                if ( x.getParams()!=null && x.getParams().getExplorerName().equalsIgnoreCase(explorerParameters.getExplorerName()) ) {
+                LabeledValue<JDBCServerExplorerParameters> x = (LabeledValue<JDBCServerExplorerParameters>) model.getElementAt(i);
+                if ( x!=null && x.getValue()!=null && x.getValue().getExplorerName().equalsIgnoreCase(explorerParameters.getExplorerName()) ) {
                     return i;
                 }
             }
@@ -361,9 +428,9 @@
     private void fillConnectors() {
         DataManager dataManager = DALLocator.getDataManager();
 
-        ServerExplorerParametersComboItem last = null;
+        LabeledValue<JDBCServerExplorerParameters> last = null;
         this.cboConnectors.removeAllItems();
-        this.cboConnectors.addItem(new ServerExplorerParametersComboItem("",null));
+        this.cboConnectors.addItem(new LabeledValueImpl("",(JDBCServerExplorerParameters)null));
         
         for (DataFactory factory :  dataManager.getServerExplorerRegister() ) {
             if( factory.isHidden() ) {
@@ -376,13 +443,13 @@
                         last == null ) {
                         // Si es el proveedor generico de JDBC, lo guarda para 
                         // añadirlo al final del combo.
-                        last = new ServerExplorerParametersComboItem(
+                        last = new LabeledValueImpl(
                                 factory.getDescription(),
                                 (JDBCServerExplorerParameters) params
                         );
                     } else {
                         this.cboConnectors.addItem(
-                            new ServerExplorerParametersComboItem(
+                            new LabeledValueImpl(
                                     factory.getDescription(),
                                     (JDBCServerExplorerParameters) params
                             )
@@ -400,16 +467,13 @@
         DataManager dataManager = DALLocator.getDataManager();
         DataServerExplorerPool pool = dataManager.getDataServerExplorerPool();
 
-        DataServerExplorerParameters params;
         this.cboConnections.removeAllItems();
-        Iterator it = pool.iterator();
-        while ( it.hasNext() ) {
-            DataServerExplorerPoolEntry entry = (DataServerExplorerPoolEntry) it.next();
+        for (DataServerExplorerPoolEntry entry : pool) {
             if ( entry.getExplorerParameters() instanceof JDBCServerExplorerParameters ) {
                 if( this.connectorFilter==null || this.connectorFilter.accept((JDBCServerExplorerParameters) entry.getExplorerParameters()) ) {
                     JDBCServerExplorerParameters dbParams = (JDBCServerExplorerParameters) entry.getExplorerParameters();
                     this.cboConnections.addItem(
-                            new ServerExplorerParametersComboItem(entry.getName(), dbParams)
+                            new LabeledValueImpl<>(entry.getName(), dbParams)
                     );
                 }
             }
@@ -436,6 +500,7 @@
         this.txtDataBase.setText("");
         this.txtUsername.setText("");
         this.txtPassword.setText("");
+        this.txtFile.setText("");
     }
     
     private void onBrowseDatabase() {
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/jdbc/DefaultJDBCConnectionDialogView.xml
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/jdbc/DefaultJDBCConnectionDialogView.xml	(revision 44418)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/jdbc/DefaultJDBCConnectionDialogView.xml	(revision 44419)
@@ -24,7 +24,7 @@
     </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.plugin/org.gvsig.geodb.app/org.gvsig.geodb.app.mainplugin/src/main/java/org/gvsig/geodb/vectorialdb/wizard/VectorialDBConnectionParamsDialogView.xml</at>
+   <at name="id">/home/jjdelcerro/datos/devel/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/jdbc/DefaultJDBCConnectionDialogView.xml</at>
    <at name="rowspecs">CENTER:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE</at>
    <at name="colspecs">FILL:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE</at>
    <at name="components">
@@ -35,7 +35,7 @@
         <super classname="com.jeta.forms.store.memento.ComponentMemento">
          <at name="cellconstraints">
           <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
-           <at name="column">5</at>
+           <at name="column">7</at>
            <at name="row">4</at>
            <at name="colspan">1</at>
            <at name="rowspan">1</at>
@@ -53,11 +53,6 @@
           <at name="classname">javax.swing.JButton</at>
           <at name="properties">
            <object classname="com.jeta.forms.store.support.PropertyMap">
-            <at name="text">Delete</at>
-            <at name="height">22</at>
-            <at name="width">68</at>
-            <at name="name">btnDelete</at>
-            <at name="actionCommand">Delete</at>
             <at name="border">
              <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
               <super classname="com.jeta.forms.store.properties.BorderProperty">
@@ -78,62 +73,11 @@
               </at>
              </object>
             </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">7</at>
-           <at name="row">4</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="actionCommand">Acept</at>
+            <at name="name">btnAcept</at>
+            <at name="width">63</at>
             <at name="text">Acept</at>
             <at name="height">22</at>
-            <at name="width">63</at>
-            <at name="name">btnAcept</at>
-            <at name="actionCommand">Acept</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>
@@ -165,11 +109,6 @@
           <at name="classname">javax.swing.JButton</at>
           <at name="properties">
            <object classname="com.jeta.forms.store.support.PropertyMap">
-            <at name="text">Cancel</at>
-            <at name="height">22</at>
-            <at name="width">70</at>
-            <at name="name">btnCancel</at>
-            <at name="actionCommand">Cancel</at>
             <at name="border">
              <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
               <super classname="com.jeta.forms.store.properties.BorderProperty">
@@ -190,6 +129,11 @@
               </at>
              </object>
             </at>
+            <at name="actionCommand">Cancel</at>
+            <at name="name">btnCancel</at>
+            <at name="width">70</at>
+            <at name="text">Cancel</at>
+            <at name="height">22</at>
            </object>
           </at>
          </object>
@@ -221,9 +165,9 @@
           <at name="classname">javax.swing.JPanel</at>
           <at name="properties">
            <object classname="com.jeta.forms.store.support.PropertyMap">
-            <at name="height">160</at>
-            <at name="width">395</at>
             <at name="name">containerJDBCConnectionPanel</at>
+            <at name="width">911</at>
+            <at name="height">442</at>
            </object>
           </at>
          </object>
@@ -237,7 +181,7 @@
         <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="column">5</at>
            <at name="row">4</at>
            <at name="colspan">1</at>
            <at name="rowspan">1</at>
@@ -255,11 +199,6 @@
           <at name="classname">javax.swing.JButton</at>
           <at name="properties">
            <object classname="com.jeta.forms.store.support.PropertyMap">
-            <at name="text">Advanced...</at>
-            <at name="height">22</at>
-            <at name="width">98</at>
-            <at name="name">btnAdvanced</at>
-            <at name="actionCommand">Advanced...</at>
             <at name="border">
              <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
               <super classname="com.jeta.forms.store.properties.BorderProperty">
@@ -280,6 +219,11 @@
               </at>
              </object>
             </at>
+            <at name="actionCommand">More...</at>
+            <at name="name">btnMore</at>
+            <at name="width">72</at>
+            <at name="text">More...</at>
+            <at name="height">22</at>
            </object>
           </at>
          </object>
@@ -294,7 +238,17 @@
      <at name="classname">com.jeta.forms.gui.form.GridView</at>
      <at name="properties">
       <object classname="com.jeta.forms.store.support.PropertyMap">
-       <at name="name"></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"/>
+         </at>
+        </object>
+       </at>
+       <at name="name"/>
        <at name="fill">
         <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
          <at name="name">fill</at>
@@ -327,16 +281,6 @@
          </at>
         </object>
        </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"/>
-         </at>
-        </object>
-       </at>
       </object>
      </at>
     </object>
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/jdbc/DefaultJDBCConnectionDialogView.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/jdbc/DefaultJDBCConnectionDialogView.java	(revision 44418)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/jdbc/DefaultJDBCConnectionDialogView.java	(revision 44419)
@@ -16,11 +16,10 @@
 
 public class DefaultJDBCConnectionDialogView extends JPanel
 {
-   JButton btnDelete = new JButton();
    JButton btnAcept = new JButton();
    JButton btnCancel = new JButton();
    JPanel containerJDBCConnectionPanel = new JPanel();
-   JButton btnAdvanced = new JButton();
+   JButton btnMore = new JButton();
 
    /**
     * Default constructor
@@ -116,11 +115,6 @@
       CellConstraints cc = new CellConstraints();
       jpanel1.setLayout(formlayout1);
 
-      btnDelete.setActionCommand("Delete");
-      btnDelete.setName("btnDelete");
-      btnDelete.setText("Delete");
-      jpanel1.add(btnDelete,cc.xy(5,4));
-
       btnAcept.setActionCommand("Acept");
       btnAcept.setName("btnAcept");
       btnAcept.setText("Acept");
@@ -134,10 +128,10 @@
       containerJDBCConnectionPanel.setName("containerJDBCConnectionPanel");
       jpanel1.add(containerJDBCConnectionPanel,cc.xywh(2,2,8,1));
 
-      btnAdvanced.setActionCommand("Advanced...");
-      btnAdvanced.setName("btnAdvanced");
-      btnAdvanced.setText("Advanced...");
-      jpanel1.add(btnAdvanced,cc.xy(3,4));
+      btnMore.setActionCommand("More...");
+      btnMore.setName("btnMore");
+      btnMore.setText("More...");
+      jpanel1.add(btnMore,cc.xy(5,4));
 
       addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6,7,8,9,10 },new int[]{ 1,2,3,4,5 });
       return jpanel1;
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.api/src/main/java/org/gvsig/fmap/dal/swing/jdbc/JDBCConnectionDialog.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.api/src/main/java/org/gvsig/fmap/dal/swing/jdbc/JDBCConnectionDialog.java	(revision 44418)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.api/src/main/java/org/gvsig/fmap/dal/swing/jdbc/JDBCConnectionDialog.java	(revision 44419)
@@ -1,6 +1,7 @@
 package org.gvsig.fmap.dal.swing.jdbc;
 
 import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
+import org.gvsig.tools.util.LabeledValue;
 
 /**
  *
@@ -11,6 +12,8 @@
     public String getConnectionName();
 
     public JDBCServerExplorerParameters getServerExplorerParameters();
+    
+    public LabeledValue<JDBCServerExplorerParameters> getLabeledServerExplorerParameters();
 
     public boolean isCanceled();
 
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.api/src/main/java/org/gvsig/fmap/dal/swing/jdbc/JDBCConnectionPanel.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.api/src/main/java/org/gvsig/fmap/dal/swing/jdbc/JDBCConnectionPanel.java	(revision 44418)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.api/src/main/java/org/gvsig/fmap/dal/swing/jdbc/JDBCConnectionPanel.java	(revision 44419)
@@ -2,6 +2,7 @@
 
 import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
 import org.gvsig.tools.swing.api.Component;
+import org.gvsig.tools.util.LabeledValue;
 
 
 
@@ -12,7 +13,9 @@
     }
     
     public void setServerExplorerParameters(JDBCServerExplorerParameters parameters);
+    public void setLabeledServerExplorerParameters(LabeledValue<JDBCServerExplorerParameters> parameters);
     public JDBCServerExplorerParameters getServerExplorerParameters();
+    public LabeledValue<JDBCServerExplorerParameters> getLabeledServerExplorerParameters();
     public void delete();
     public void clear();
     public String getConnectionName();
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/DataServerExplorerPool.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/DataServerExplorerPool.java	(revision 44418)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/DataServerExplorerPool.java	(revision 44419)
@@ -8,6 +8,7 @@
 
 public interface DataServerExplorerPool extends Persistent, Iterable<DataServerExplorerPoolEntry> {
     
+    public DataServerExplorerPoolEntry createEntry(String name, String description, DataServerExplorerParameters explorer);
     
     public void add(String name, DataServerExplorerParameters explorer);
 
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/DatabaseWorkspaceManager.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/DatabaseWorkspaceManager.java	(revision 44418)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/DatabaseWorkspaceManager.java	(revision 44419)
@@ -15,6 +15,15 @@
         extends LabeledValue<DatabaseWorkspaceManager>, SymbolTable 
     {
     
+    public interface AddDatabaseWorkspaceListener {
+        
+        public String getName();
+        
+        public void onAddDatabaseWorkspace(DatabaseWorkspaceManager databaseWorkspace);
+    }
+    
+    
+    
     public static final String CONFIG_CAN_ANONYMOUS_USER_WRITE_IN_THE_TABLES = "CanAnonymousUserWriteInTheTables";
 
     public static final String TABLE_REPOSITORY_NAME = "gvsigd_repository";
@@ -181,5 +190,7 @@
     public File getBaseFolder();
     
     public void setBaseFolder(File baseFolder);
+    
+    public ResourcesStorage getResourcesStorage();
         
 }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/DataServerExplorer.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/DataServerExplorer.java	(revision 44418)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/DataServerExplorer.java	(revision 44419)
@@ -167,6 +167,8 @@
      */
     public File getResourcePath(DataStore dataStore, String resourceName) throws DataException;
 
+    public ResourcesStorage getResourcesStorage();
+        
     public ResourcesStorage getResourcesStorage(DataStore dataStore);
     
     public ResourcesStorage getResourcesStorage(DataStoreParameters parameters);
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/DataManager.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/DataManager.java	(revision 44418)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/DataManager.java	(revision 44419)
@@ -519,6 +519,8 @@
     
     public void addDatabaseWorkspace(DatabaseWorkspaceManager DatabaseWorkspace);
 
+    public void addDatabaseWorkspaceListener(DatabaseWorkspaceManager.AddDatabaseWorkspaceListener listener);
+    
     public DatabaseWorkspaceManager getDatabaseWorkspace(String name);
     
     public DatabaseWorkspaceManager getDatabaseWorkspace(DataStoreParameters params);
@@ -527,4 +529,11 @@
     
     public void writeDALResource(ResourcesStorage resources, FeatureType featureType);
 
+    /**
+     * Return a 35-40 characters unique identifier.
+     * 
+     * @return the unique identifier
+     */
+    public String createUniqueID();
+
 }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/src/main/java/org/gvsig/fmap/dal/spi/DataManagerProviderServices.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/src/main/java/org/gvsig/fmap/dal/spi/DataManagerProviderServices.java	(revision 44418)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/src/main/java/org/gvsig/fmap/dal/spi/DataManagerProviderServices.java	(revision 44419)
@@ -153,10 +153,4 @@
 
     public DynObjectValueItem[] getAvailableValues(FeatureStore myStore, FeatureAttributeDescriptor descriptor);
 
-    /**
-     * Return a 35-40 characters unique identifier.
-     * 
-     * @return the unique identifier
-     */
-    public String createUniqueID();
 }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/src/main/java/org/gvsig/fmap/dal/spi/AbstractDataServerExplorer.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/src/main/java/org/gvsig/fmap/dal/spi/AbstractDataServerExplorer.java	(revision 44418)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/src/main/java/org/gvsig/fmap/dal/spi/AbstractDataServerExplorer.java	(revision 44419)
@@ -54,6 +54,12 @@
     }
 
     @Override
+    public ResourcesStorage getResourcesStorage() {
+        EmptyResourcesStorage resourcesStorage = new EmptyResourcesStorage();
+        return resourcesStorage;
+    }
+    
+    @Override
     public ResourcesStorage getResourcesStorage(DataStore dataStore) {
         EmptyResourcesStorage resourcesStorage = new EmptyResourcesStorage();
         return resourcesStorage;
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.geodb.app/org.gvsig.geodb.app.mainplugin/src/main/java/org/gvsig/geodb/databaseworkspace/ConnectToDatabaseWorkspacePanel.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.geodb.app/org.gvsig.geodb.app.mainplugin/src/main/java/org/gvsig/geodb/databaseworkspace/ConnectToDatabaseWorkspacePanel.java	(revision 44418)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.geodb.app/org.gvsig.geodb.app.mainplugin/src/main/java/org/gvsig/geodb/databaseworkspace/ConnectToDatabaseWorkspacePanel.java	(revision 44419)
@@ -9,7 +9,6 @@
 import org.gvsig.fmap.dal.DatabaseWorkspaceManager;
 import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.CONFIG_NAME_STORESREPOSITORYID;
 import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.CONFIG_NAME_STORESREPOSITORYLABEL;
-import org.gvsig.fmap.dal.StoresRepository;
 import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
 import org.gvsig.fmap.dal.swing.DALSwingLocator;
 import org.gvsig.tools.swing.api.Component;
