diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/dialog/ElementTreeMultiSelectEditableDialog.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/dialog/ElementTreeMultiSelectEditableDialog.java index dd21d28777ab9ddb428811866089d67aff5ab975..6370fccf8e859b80a1dd000ed8c192119025e8b1 100644 --- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/dialog/ElementTreeMultiSelectEditableDialog.java +++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/dialog/ElementTreeMultiSelectEditableDialog.java @@ -59,7 +59,7 @@ import org.eclipse.swt.widgets.Shell; * @author mou * @author $Author: ratiu $ * @version $Rev: 5186 $ - * @ConQAT.Rating YELLOW Hash: 392450008DED6743B21318ECC5A6994D + * @ConQAT.Rating YELLOW Hash: 0B27319B1ADBE1AA96C2F17ED686F467 */ public class ElementTreeMultiSelectEditableDialog extends TitleAreaDialog { @@ -360,7 +360,10 @@ public class ElementTreeMultiSelectEditableDialog extends TitleAreaDialog { return; for(TreePath path : selection.getPaths()) { - Object convertedSelection = selectConverter(path.getLastSegment()); + if(!canSelect(path.getLastSegment())) { + continue; + } + Object convertedSelection = selectConverterAction(path.getLastSegment()); if(convertedSelection == null || selectedElements.contains(convertedSelection)) continue; if(acceptElement(path.getLastSegment())) { @@ -385,6 +388,9 @@ public class ElementTreeMultiSelectEditableDialog extends TitleAreaDialog { return; for(TreePath path : selection.getPaths()) { + if(!canDeselect(path.getLastSegment())) { + continue; + } deselectAction(path.getLastSegment()); if(selectedElements.remove(path.getLastSegment())) { gui.getSelectTreeViewer().remove(path.getLastSegment()); @@ -507,7 +513,7 @@ public class ElementTreeMultiSelectEditableDialog extends TitleAreaDialog { * @param selectedElement * @return element after convert */ - public Object selectConverter(Object selectedElement) { + public Object selectConverterAction(Object selectedElement) { return selectedElement; } @@ -523,4 +529,26 @@ public class ElementTreeMultiSelectEditableDialog extends TitleAreaDialog { } + /** + * This method can be overwritten by subclasses to check, if the selected element can be + * selected + * + * @param toSelectedElement + * @return if the toSelectedElement can be selected + */ + public boolean canSelect(Object toSelectedElement) { + return true; + } + + /** + * This method can be overwritten by subclasses to check, if the selected element can be + * deselected + * + * @param toDeselectedElement + * @return if the to DeselectedElement can be deselected + */ + public boolean canDeselect(Object toDeselectedElement) { + return true; + } + }