@Override
 public void dispose() {
   defaultComponent.dispose();
   for (ViewersMultiSandboxViewComponent c : additionalComponents) {
     c.dispose();
   }
   getSite().getPage().removeSelectionListener(forwardRevealListener);
   super.dispose();
 }
 public void run() {
   if (defaultComponent.equals(currentComponent)) {
     // do nothing, we cannot close the default component
   } else {
     // set the default as the current
     ViewersMultiSandboxViewComponent target = getCurrentComponent();
     setCurrentComponent(defaultComponent);
     // remove selection changed listeners
     for (ISelectionChangedListener l :
         defaultComponent.selectionHelper.selectionChangedListeners) {
       target.removeSelectionChangedListener(l);
     }
     target.dispose();
     additionalComponents.remove(target);
     container.layout();
   }
 }