public void remove(Dockable dockable) {
   DockStation station = dockable.asDockStation();
   if (station != null) {
     station.removeDockStationListener(this);
     for (int i = 0, n = station.getDockableCount(); i < n; i++) {
       remove(station.getDockable(i));
     }
   }
 }
 private void fill(Dockable dockable, List<Dockable> list) {
   if (shouldShow(dockable)) {
     list.add(dockable);
   }
   DockStation station = dockable.asDockStation();
   if (station != null) {
     for (int i = 0, n = station.getDockableCount(); i < n; i++) {
       fill(station.getDockable(i), list);
     }
   }
 }