### Eclipse Workspace Patch 1.0 #P org.eclipse.pde.ui Index: src/org/eclipse/pde/internal/ui/editor/site/SiteEditor.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/site/SiteEditor.java,v retrieving revision 1.38 diff -u -r1.38 SiteEditor.java --- src/org/eclipse/pde/internal/ui/editor/site/SiteEditor.java 15 Aug 2007 20:12:52 -0000 1.38 +++ src/org/eclipse/pde/internal/ui/editor/site/SiteEditor.java 17 Aug 2007 20:27:30 -0000 @@ -25,6 +25,8 @@ import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.operation.IRunnableWithProgress; import org.eclipse.pde.core.IModel; +import org.eclipse.pde.core.IModelChangedEvent; +import org.eclipse.pde.core.IModelChangedListener; import org.eclipse.pde.internal.core.PDECore; import org.eclipse.pde.internal.core.ifeature.IFeatureModel; import org.eclipse.pde.internal.core.isite.ISiteFeature; @@ -179,9 +181,23 @@ }; fBuildAllAction.setToolTipText(PDEUIMessages.CategorySection_buildAll); fBuildAllAction.setImageDescriptor(PDEPluginImages.DESC_BUILD_TOOL); + updateActionEnablement(); + + ((ISiteModel)getAggregateModel()).addModelChangedListener(new IModelChangedListener() { + public void modelChanged(IModelChangedEvent event) { + updateActionEnablement(); + } + }); } return fBuildAllAction; } + + private void updateActionEnablement() { + if (((ISiteModel)getAggregateModel()).getSite().getFeatures().length > 0) + fBuildAllAction.setEnabled(true); + else + fBuildAllAction.setEnabled(false); + } protected void handleBuild(ISiteFeature[] sFeatures) { if (sFeatures.length == 0)