Revision 44419 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

View differences:

DefaultDataManager.java
23 23

  
24 24
import org.gvsig.fmap.dal.DataFactory;
25 25
import org.gvsig.fmap.dal.DataManager;
26
import org.gvsig.fmap.dal.DataParameters;
27 26
import org.gvsig.fmap.dal.DataServerExplorer;
28 27
import org.gvsig.fmap.dal.DataServerExplorerFactory;
29 28
import org.gvsig.fmap.dal.DataServerExplorerParameters;
......
34 33
import org.gvsig.fmap.dal.DataStoreProviderFactory;
35 34
import org.gvsig.fmap.dal.DataTypes;
36 35
import org.gvsig.fmap.dal.DatabaseWorkspaceManager;
36
import org.gvsig.fmap.dal.DatabaseWorkspaceManager.AddDatabaseWorkspaceListener;
37 37

  
38 38
import org.gvsig.fmap.dal.NewDataStoreParameters;
39 39
import org.gvsig.fmap.dal.OpenErrorHandler;
......
97 97
import org.gvsig.tools.identitymanagement.UnauthorizedException;
98 98
import org.gvsig.tools.persistence.PersistenceManager;
99 99
import org.gvsig.tools.resourcesstorage.ResourcesStorage;
100
import org.gvsig.tools.script.Script;
101
import org.gvsig.tools.script.ScriptManager;
100 102
import org.gvsig.tools.service.spi.Services;
103
import org.gvsig.tools.util.Callable;
104
import org.gvsig.tools.util.Invocable;
101 105
import org.slf4j.Logger;
102 106
import org.slf4j.LoggerFactory;
103 107

  
......
159 163
    private List<DataProfile> dataProfiles;
160 164
    
161 165
    private final Map<String, DatabaseWorkspaceManager> databaseWorkspaces = new HashMap<>();
166
 
167
    private final Map<String,AddDatabaseWorkspaceListener> addDatabaseWorkspaceListeners = new HashMap<>();
162 168
    
163 169
    public DefaultDataManager() {
164 170
        this.registers = new Registers();
......
1047 1053
        this.databaseWorkspaces.put(databaseWorkspace.getId(),databaseWorkspace);
1048 1054
        StoresRepository repo = databaseWorkspace.getStoresRepository();
1049 1055
        this.getStoresRepository().addRepository(repo);
1056

  
1057
        for (AddDatabaseWorkspaceListener listener : this.addDatabaseWorkspaceListeners.values()) {
1058
            if( listener!=null ) {
1059
                try {
1060
                    listener.onAddDatabaseWorkspace(databaseWorkspace);
1061
                } catch(Throwable th) {
1062
                    LOGGER.warn("Problems calling databaseworkspace listener '"+listener.getName()+"'.",th);
1063
                }
1064
            }
1065
        }
1066
        try {
1067
            ResourcesStorage resources = databaseWorkspace.getResourcesStorage();
1068
            ScriptManager scriptManager = ToolsLocator.getScriptManager();
1069
            Script script = scriptManager.loadScript(resources, "OnConnectToWorkspace.script");
1070
            if( script != null ) {
1071
                script.invokeFunction("main", new Object[] {databaseWorkspace});
1072
            }
1073
        } catch(Throwable th) {
1074
            LOGGER.warn("Problems executing 'OnConnectToWorkspace.script' from workspace '"+databaseWorkspace.getId()+"'.",th);
1075
        }
1050 1076
    }
1077
    
1078
    @Override
1079
    public void addDatabaseWorkspaceListener(AddDatabaseWorkspaceListener listener) {
1080
        this.addDatabaseWorkspaceListeners.put(listener.getName(), listener);
1081
    }
1051 1082

  
1052 1083
    @Override
1053 1084
    public DatabaseWorkspaceManager getDatabaseWorkspace(String name) {

Also available in: Unified diff