Revision 44074

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.exportto.app/org.gvsig.exportto.app.mainplugin/src/main/java/org/gvsig/export/app/extension/ExportLayerExtension.java
26 26
import java.awt.Dimension;
27 27
import javax.swing.JComponent;
28 28
import javax.swing.JOptionPane;
29
import javax.swing.SwingUtilities;
29 30
import org.cresques.cts.ICoordTrans;
30 31
import org.cresques.cts.IProjection;
31 32

  
......
188 189
        );
189 190
    }
190 191

  
191
    private void doAddlayer(ExportProcess process, MapContext mapContext) {
192
    private void doAddlayer(final ExportProcess process, final MapContext mapContext) {
193
        if (!SwingUtilities.isEventDispatchThread()) {
194
            SwingUtilities.invokeLater(new Runnable() {
195
                @Override
196
                public void run() {
197
                    doAddlayer(process, mapContext);
198
                }
199
            });
200
            return;
201
        }
202
        
192 203
        ApplicationManager application = ApplicationLocator.getManager();
193 204
        I18nManager i18n = ToolsLocator.getI18nManager();
194 205

  
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.exportto.app/org.gvsig.exportto.app.mainplugin/src/main/java/org/gvsig/export/app/extension/ExportPreferencesExtension.java
23 23
 */
24 24
package org.gvsig.export.app.extension;
25 25

  
26
import java.util.Set;
27 26

  
28 27
import org.gvsig.andami.plugins.Extension;
29 28
import org.gvsig.andami.preferences.IPreference;
......
32 31
import org.gvsig.export.app.extension.preferences.ExportPreferencesPage;
33 32
import org.gvsig.export.spi.ExportServiceFactory;
34 33
import org.gvsig.export.spi.ExportServiceManager;
35
import org.gvsig.tools.dynobject.DynObject;
36 34

  
37 35
/**
38 36
 * Andami extension to register the ExportTo preferences panel.
......
44 42
        extends Extension 
45 43
        implements IPreferenceExtension
46 44
    {
47
    public static final String PREFERENCE_ENABLED_SERVICES = "enabledProviders";
48 45

  
49 46
    @Override
50 47
    public void initialize() {
51 48
        ExportServiceManager manager = ExportLocator.getServiceManager();
52 49

  
53
        DynObject preferences = this.getPlugin().getPluginProperties();
54
        Set<String> enableds = (Set<String>) preferences.getDynValue(PREFERENCE_ENABLED_SERVICES);
50
        ExportPreferences preferences = new ExportPreferences();
55 51
        for (ExportServiceFactory factory : manager.getAllServiceFactories()) {
56
            factory.setEnabled(enableds.contains(factory.getName()));
52
            if (preferences.exits(factory.getName())) {
53
                factory.setEnabled(preferences.isEnabled(factory.getName()));
54
            } else {
55
                factory.setEnabled(true);
56
                preferences.setEnabled(factory.getName(), true);
57
            }
57 58
        }
58 59
    }
59 60

  
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.exportto.app/org.gvsig.exportto.app.mainplugin/src/main/java/org/gvsig/export/app/extension/preferences/ExportPreferencesPage.java
24 24
package org.gvsig.export.app.extension.preferences;
25 25

  
26 26
import java.awt.BorderLayout;
27
import java.util.HashSet;
28 27
import java.util.List;
29
import java.util.Set;
30 28

  
31 29
import javax.swing.ImageIcon;
32 30
import javax.swing.JPanel;
......
34 32
import javax.swing.event.ChangeListener;
35 33

  
36 34
import org.gvsig.andami.IconThemeHelper;
37
import org.gvsig.andami.PluginsLocator;
38
import org.gvsig.andami.PluginsManager;
39 35
import org.gvsig.andami.preferences.AbstractPreferencePage;
40 36
import org.gvsig.andami.preferences.StoreException;
41
import org.gvsig.export.app.extension.ExportPreferencesExtension;
37
import org.gvsig.export.ExportLocator;
38
import org.gvsig.export.app.extension.ExportPreferences;
39
import org.gvsig.export.spi.ExportServiceFactory;
40
import org.gvsig.export.spi.ExportServiceManager;
42 41
import org.gvsig.export.swing.ExportSwingLocator;
43 42
import org.gvsig.export.swing.ExportSwingManager;
44 43
import org.gvsig.export.swing.JExportConfigPanel;
45 44
import org.gvsig.i18n.Messages;
46
import org.gvsig.tools.dynobject.DynObject;
47 45

  
48 46
/**
49 47
 * Exportto related preferences page.
......
120 118

  
121 119
        // Persist them
122 120
        List<String> selecteds = this.config.getSelectedNames();
123
        Set<String> enableds = new HashSet<>();
124
        enableds.addAll(selecteds);
121
        ExportPreferences preferences = new ExportPreferences();
122
        ExportServiceManager manager = ExportLocator.getServiceManager();
123

  
124
        for (ExportServiceFactory factory : manager.getAllServiceFactories()) {
125
            preferences.setEnabled(factory.getName(),selecteds.contains(factory.getName()));
126
        }
125 127
        
126
        PluginsManager pluginManager = PluginsLocator.getManager();
127
        DynObject preferences = pluginManager.getPlugin(this).getPluginProperties();
128
        preferences.setDynValue(ExportPreferencesExtension.PREFERENCE_ENABLED_SERVICES,
129
            enableds
130
        );
131 128
    }
132 129

  
133 130
    @Override
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.exportto.app/org.gvsig.exportto.app.mainplugin/src/main/java/org/gvsig/export/app/extension/ExportPreferences.java
1
/*
2
 * To change this license header, choose License Headers in Project Properties.
3
 * To change this template file, choose Tools | Templates
4
 * and open the template in the editor.
5
 */
6
package org.gvsig.export.app.extension;
7

  
8
import java.util.HashMap;
9
import java.util.Map;
10
import java.util.Set;
11
import org.gvsig.andami.PluginsLocator;
12
import org.gvsig.andami.PluginsManager;
13
import org.gvsig.tools.dynobject.DynObject;
14

  
15
/**
16
 *
17
 * @author osc
18
 */
19
public class ExportPreferences {
20
    private DynObject preferences;
21
    public static final String PREFERENCE_ENABLED_SERVICES = "enabledProviders";
22
    public static final String PREFERENCE_DISABLED_SERVICES = "disabledProviders";
23
    
24
    public boolean exits(String factoryName) {
25
        Map<String, Boolean> enabledsState = this.getEnabledState();
26
        return enabledsState.containsKey(factoryName);
27
    }
28
    public boolean isEnabled(String factoryName) {
29
        Map<String, Boolean> enabledsState = this.getEnabledState();
30
        return enabledsState.get(factoryName);
31
    }
32
    
33
    public void setEnabled(String factoryName, boolean enabled) {
34
        Map<String, Boolean> enabledsState = this.getEnabledState();
35
        enabledsState.put(factoryName, enabled);
36
        this.putEnabledState(enabledsState);
37
    }
38
    
39
    private DynObject getPreferences() {
40
        if (this.preferences == null) {
41
            PluginsManager pluginManager = PluginsLocator.getManager();
42
            
43
            this.preferences = pluginManager.getPlugin(ExportPreferencesExtension.class).getPluginProperties();
44

  
45
        }
46
        return this.preferences;
47
    }
48
    
49
    private Map<String, Boolean> getEnabledState() {
50
        Map<String, Boolean> enabledsState = new HashMap<>();
51
        Set<String> enableds = (Set<String>) this.getPreferences().getDynValue(PREFERENCE_ENABLED_SERVICES);
52
        for (String enabled : enableds) {
53
            enabledsState.put(enabled, true);
54
        }
55
        Set<String> disableds = (Set<String>) this.getPreferences().getDynValue(PREFERENCE_DISABLED_SERVICES);
56
        for (String disabled : disableds) {
57
            enabledsState.put(disabled, false);
58
        }
59
        return enabledsState;
60
    }
61
    
62
    private void putEnabledState(Map<String, Boolean> enabledsState) {
63
        Set<String> enableds = (Set<String>) this.getPreferences().getDynValue(PREFERENCE_ENABLED_SERVICES);
64
        Set<String> disableds = (Set<String>) this.getPreferences().getDynValue(PREFERENCE_DISABLED_SERVICES);
65
        for (Map.Entry<String, Boolean> entry : enabledsState.entrySet()) {
66
            if (entry.getValue()) {
67
                enableds.add(entry.getKey());
68
                disableds.remove(entry.getKey());
69
            } else {
70
                enableds.remove(entry.getKey());
71
                disableds.add(entry.getKey());
72
            }
73
        }
74
    }
75
    
76
}

Also available in: Unified diff