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 |
|