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 568-578
Link Here
|
568 |
} |
588 |
} |
569 |
IStructuredSelection sel = (IStructuredSelection) fCategoryViewer |
589 |
IStructuredSelection sel = (IStructuredSelection) fCategoryViewer |
570 |
.getSelection(); |
590 |
.getSelection(); |
571 |
fCategoryTreePart.setButtonEnabled(BUTTON_BUILD_FEATURE, |
591 |
|
572 |
!sel.isEmpty() |
592 |
if(!sel.isEmpty()) { |
573 |
&& sel.getFirstElement() instanceof SiteFeatureAdapter |
593 |
boolean success = true; |
574 |
&& findFeature(((SiteFeatureAdapter) sel |
594 |
Iterator i = sel.iterator(); |
575 |
.getFirstElement()).feature) != null); |
595 |
while (i.hasNext()) { |
|
|
596 |
Object next = i.next(); |
597 |
if (!(next instanceof SiteFeatureAdapter && |
598 |
findFeature(((SiteFeatureAdapter) next).feature) != null)) { |
599 |
success = false; |
600 |
break; |
601 |
} |
602 |
} |
603 |
fCategoryTreePart.setButtonEnabled(BUTTON_BUILD_FEATURE, success); |
604 |
} else fCategoryTreePart.setButtonEnabled(BUTTON_BUILD_FEATURE, false); |
576 |
int featureCount = fModel.getSite().getFeatures().length; |
605 |
int featureCount = fModel.getSite().getFeatures().length; |
577 |
fCategoryTreePart.setButtonEnabled(BUTTON_BUILD_ALL, featureCount > 0); |
606 |
fCategoryTreePart.setButtonEnabled(BUTTON_BUILD_ALL, featureCount > 0); |
578 |
fCategoryTreePart.setButtonEnabled(BUTTON_IMPORT_ENVIRONMENT, featureCount > 0); |
607 |
fCategoryTreePart.setButtonEnabled(BUTTON_IMPORT_ENVIRONMENT, featureCount > 0); |
Lines 642-651
Link Here
|
642 |
private void handleBuild() { |
671 |
private void handleBuild() { |
643 |
IStructuredSelection sel = (IStructuredSelection) fCategoryViewer |
672 |
IStructuredSelection sel = (IStructuredSelection) fCategoryViewer |
644 |
.getSelection(); |
673 |
.getSelection(); |
645 |
if (!sel.isEmpty() |
674 |
if (!sel.isEmpty()) { |
646 |
&& sel.getFirstElement() instanceof SiteFeatureAdapter) { |
675 |
ArrayList features = new ArrayList(sel.size()); |
647 |
ISiteFeature feature = ((SiteFeatureAdapter) sel.getFirstElement()).feature; |
676 |
Iterator iterator = sel.iterator(); |
648 |
((SiteEditor)getPage().getPDEEditor()).handleBuild(new ISiteFeature[] { feature }); |
677 |
while(iterator.hasNext()) { |
|
|
678 |
Object next = iterator.next(); |
679 |
if(next instanceof SiteFeatureAdapter) { |
680 |
if((((SiteFeatureAdapter) next).feature) != null) { |
681 |
features.add(((SiteFeatureAdapter) next).feature); |
682 |
} |
683 |
} |
684 |
} |
685 |
((SiteEditor)getPage().getPDEEditor()).handleBuild((ISiteFeature[]) features.toArray(new ISiteFeature[0])); |
649 |
} |
686 |
} |
650 |
} |
687 |
} |
651 |
|
688 |
|