Revision 42165 trunk/org.gvsig.desktop/org.gvsig.desktop.framework/org.gvsig.andami/src/main/java/org/gvsig/andami/ui/mdiFrame/MDIFrame.java

View differences:

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) {

Also available in: Unified diff