private boolean handleRemoveCategoryDefinition(ISiteCategoryDefinition catDef) { try { Object[] children = ((CategoryContentProvider) fCategoryViewer.getContentProvider()).getChildren(catDef); for (int i = 0; i < children.length; i++) { SiteFeatureAdapter adapter = (SiteFeatureAdapter) children[i]; ISiteCategory[] cats = adapter.feature.getCategories(); for (int j = 0; j < cats.length; j++) { if (adapter.category.equals(cats[j].getName())) adapter.feature.removeCategories(new ISiteCategory[] {cats[j]}); } if (adapter.feature.getCategories().length == 0) { fModel.getSite().removeFeatures(new ISiteFeature[] {adapter.feature}); } } fModel.getSite().removeCategoryDefinitions(new ISiteCategoryDefinition[] {catDef}); return true; } catch (CoreException e) { } return false; }