public void ensureNotHidden( final Dockable dockable ){
getManager().runTransaction( new AffectingRunnable() {
public void run( AffectedSet set ){
Dockable mutableDockable = dockable;
DockStation parent = mutableDockable.getDockParent();
Dockable element = getMaximizingElement( mutableDockable );
while( parent != null ){
MaximizedModeArea area = getMaximizeArea( parent );
if( area != null ){
Dockable[] maximized = area.getMaximized();
if( maximized != null ){
for( Dockable check : maximized ){
if( maximized != null && check != mutableDockable && check != element ){
unmaximize( check, set );
}
}
}
}
mutableDockable = parent.asDockable();
parent = mutableDockable == null ? null : mutableDockable.getDockParent();
}
}
});
}