public void dispose() {
   super.dispose();
   FeatureModelManager mng = PDECore.getDefault().getFeatureModelManager();
   mng.removeFeatureModelListener(this);
   fModel.removeModelChangedListener(this);
   if (fSiteLabelProvider != null) fSiteLabelProvider.dispose();
 }
 protected void handleDoubleClick(IStructuredSelection ssel) {
   super.handleDoubleClick(ssel);
   Object selected = ssel.getFirstElement();
   if (selected instanceof SiteFeatureAdapter) {
     IFeature feature = findFeature(((SiteFeatureAdapter) selected).feature);
     FeatureEditor.openFeatureEditor(feature);
   }
 }
 public void refresh() {
   fCategoryViewer.refresh();
   updateButtons();
   super.refresh();
 }