private void focusAfterRemoving( boolean removedSelectedDockable ){ if( removedSelectedDockable ){ DockController controller = getController(); if( controller != null && dockables.dockables().size() > 1 ){ Dockable next = controller.getFocusHistory().getNewestOn( this ); if( next != null && next.getDockParent() == this ){ stackComponent.setSelectedIndex( indexOf( next ) ); return; } } } visibleListener.selectionChanged( stackComponent ); }
@Override public void close(CDockable dockable) { super.close(dockable); if (dockable.getFocusComponent() instanceof SeriesViewer) { ((SeriesViewer) dockable.getFocusComponent()).close(); } Dockable prevDockable = UIManager.DOCKING_CONTROL.getController().getFocusHistory() .getNewestOn(dockable.getWorkingArea().getStation()); if (prevDockable == null) { handleFocusAfterClosing(); } else { if (prevDockable instanceof DefaultCommonDockable) { CDockable ld = ((DefaultCommonDockable) prevDockable).getDockable(); if (ld instanceof AbstractCDockable) { ((AbstractCDockable) ld).toFront(); } } } } });