Revision 42165

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.framework/org.gvsig.andami/src/main/java/org/gvsig/andami/ui/mdiFrame/MDIFrame.java
50 50
import java.util.StringTokenizer;
51 51
import java.util.Vector;
52 52

  
53
import javax.sql.rowset.spi.SyncResolver;
53 54
import javax.swing.AbstractButton;
54 55
import javax.swing.ButtonGroup;
55 56
import javax.swing.ImageIcon;
......
97 98
import org.gvsig.tools.i18n.I18nManager;
98 99
import org.gvsig.tools.swing.api.ToolsSwingLocator;
99 100
import org.gvsig.tools.swing.icontheme.IconTheme;
101

  
100 102
import org.slf4j.Logger;
101 103
import org.slf4j.LoggerFactory;
102 104

  
......
119 121

  
120 122
    private MDIManager mdiManager = MDIManagerFactory.createManager();
121 123

  
124
    private boolean refreshingControls = false;
125

  
122 126
    /**
123 127
     * Elementos de la aplicaci�n
124 128
     */
......
1303 1307
        showMemory();
1304 1308
    }
1305 1309

  
1306
    public void refreshControls() {
1310
    public synchronized void refreshControls() {
1307 1311
        if ( !SwingUtilities.isEventDispatchThread() ) {
1308 1312
            SwingUtilities.invokeLater(new Runnable() {
1309 1313
                public void run() {
......
1313 1317
            return;
1314 1318
        }
1315 1319

  
1320
        if(refreshingControls){
1321
            return;
1322
        }
1323
        try {
1324
        refreshingControls = true;
1316 1325
        ActionInfoManager actionManager = PluginsLocator.getActionInfoManager();
1317 1326
        ActionInfoStatusCache cache = actionManager.createActionStatusCache();
1318 1327
        IconTheme icontheme = ToolsSwingLocator.getIconThemeManager().getCurrent();
......
1342 1351
            }
1343 1352
        }
1344 1353
        enableControls();
1354
        } finally {
1355
            refreshingControls = false;
1356
        }
1345 1357
    }
1346 1358

  
1347 1359
    public void message(String msg, int messageTyoe) {
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/DefaultProject.java
1015 1015
        IWindow window = null;
1016 1016
        for (int i = 0; i < windows.length; i++) {
1017 1017
            window = windows[i];
1018
            if (window instanceof SingletonWindow) {
1018
            if (window instanceof SingletonWindow && window instanceof IDocumentWindow) {
1019 1019
		// Cogemos no la primera ventana, si no la primera
1020 1020
                // ventana de tipo documento (SingletonWindow).
1021 1021
                // Y por si las mosca no es un documento, atrapamos

Also available in: Unified diff