View | Details | Raw Unified | Return to bug 181878 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/pde/internal/ui/editor/site/CategorySection.java (-11 / +37 lines)
Lines 12-17 Link Here
12
12
13
import java.util.ArrayList;
13
import java.util.ArrayList;
14
import java.util.HashSet;
14
import java.util.HashSet;
15
import java.util.Iterator;
16
import java.util.Set;
15
17
16
import org.eclipse.core.runtime.CoreException;
18
import org.eclipse.core.runtime.CoreException;
17
import org.eclipse.jface.action.Action;
19
import org.eclipse.jface.action.Action;
Lines 171-177 Link Here
171
		fModel.addModelChangedListener(this);
173
		fModel.addModelChangedListener(this);
172
174
173
		Composite container = createClientContainer(section, 2, toolkit);
175
		Composite container = createClientContainer(section, 2, toolkit);
174
		createViewerPartControl(container, SWT.SINGLE, 2, toolkit);
176
		createViewerPartControl(container, SWT.MULTI, 2, toolkit);
175
		fCategoryTreePart = getTreePart();
177
		fCategoryTreePart = getTreePart();
176
		fCategoryViewer = fCategoryTreePart.getTreeViewer();
178
		fCategoryViewer = fCategoryTreePart.getTreeViewer();
177
		fCategoryViewer.setContentProvider(new CategoryContentProvider());
179
		fCategoryViewer.setContentProvider(new CategoryContentProvider());
Lines 418-430 Link Here
418
	private boolean handleRemove() {
420
	private boolean handleRemove() {
419
		IStructuredSelection ssel = (IStructuredSelection) fCategoryViewer
421
		IStructuredSelection ssel = (IStructuredSelection) fCategoryViewer
420
				.getSelection();
422
				.getSelection();
421
		Object object = ssel.getFirstElement();
423
		Iterator iterator = ssel.iterator();
422
		if (object == null)
424
		boolean success = true;
423
			return true;
425
		Set removedCategories = new HashSet();
424
		if (object instanceof ISiteCategoryDefinition) {
426
		while(iterator.hasNext()) {
425
			return handleRemoveCategoryDefinition((ISiteCategoryDefinition) object);
427
			Object object = iterator.next();
428
			if (object == null) continue;
429
			if (object instanceof ISiteCategoryDefinition) {
430
				if(! handleRemoveCategoryDefinition((ISiteCategoryDefinition) object)) {
431
					success = false; 
432
				} 
433
			} else {
434
				//check if some of features was not removed during category removal
435
				SiteFeatureAdapter fa = (SiteFeatureAdapter) object;
436
				if(removedCategories.contains(fa.category)) continue;
437
				
438
				if(!handleRemoveSiteFeatureAdapter(fa)) {
439
					success = false;
440
				}
441
			}
426
		}
442
		}
427
		return handleRemoveSiteFeatureAdapter((SiteFeatureAdapter) object);
443
		return success;
428
	}
444
	}
429
445
430
	private boolean handleRemoveCategoryDefinition(
446
	private boolean handleRemoveCategoryDefinition(
Lines 553-558 Link Here
553
		if (actionId.equals(ActionFactory.DELETE.getId())) {
569
		if (actionId.equals(ActionFactory.DELETE.getId())) {
554
			return handleRemove();
570
			return handleRemove();
555
		}
571
		}
572
		if (actionId.equals(ActionFactory.SELECT_ALL.getId())) {
573
			fCategoryViewer.getTree().selectAll();
574
			refresh();
575
		}
556
		return false;
576
		return false;
557
	}
577
	}
558
578
Lines 642-651 Link Here
642
	private void handleBuild() {
662
	private void handleBuild() {
643
		IStructuredSelection sel = (IStructuredSelection) fCategoryViewer
663
		IStructuredSelection sel = (IStructuredSelection) fCategoryViewer
644
				.getSelection();
664
				.getSelection();
645
		if (!sel.isEmpty()
665
		if (!sel.isEmpty()) {
646
				&& sel.getFirstElement() instanceof SiteFeatureAdapter) {
666
			ArrayList features = new ArrayList(sel.size());
647
			ISiteFeature feature = ((SiteFeatureAdapter) sel.getFirstElement()).feature;
667
			Iterator iterator = sel.iterator();
648
			((SiteEditor)getPage().getPDEEditor()).handleBuild(new ISiteFeature[] { feature });
668
			while(iterator.hasNext()) {
669
				Object next = iterator.next();
670
				if(next instanceof SiteFeatureAdapter) {
671
					features.add(((SiteFeatureAdapter) next).feature);
672
				}
673
			}
674
			((SiteEditor)getPage().getPDEEditor()).handleBuild((ISiteFeature[]) features.toArray(new ISiteFeature[0]));
649
		}
675
		}
650
	}
676
	}
651
677

Return to bug 181878