public void setSetting( final Setting setting, final boolean entry ) {
for( CDockFrontendListener listener : frontendListeners() ){
listener.loading( this, (CSetting)setting );
}
try{
CLocationModeManager manager = control.getLocationManager();
if( entry ){
manager.resetWorkingAreaChildren();
}
// location manager reads first to be able to change modes of dockables
manager.readSettings( ((CSetting)setting).getModes() );
// set new layout as transaction, preventing the manager to react on events
manager.runLayoutTransaction( new Runnable() {
public void run(){
CDockFrontend.super.setSetting( setting, entry );
}
});
if( revertToBasicModes ){
manager.ensureBasicModes();
}
manager.refresh();
}
finally{
for( CDockFrontendListener listener : frontendListeners() ){
listener.loaded( this, (CSetting)setting );
}