Commit f888af19 authored by Simon Barner's avatar Simon Barner
Browse files

Eliminate support for multi-instance annotations, which was mostly unused and...

Eliminate support for multi-instance annotations, which was mostly unused and only complicated the code.
refs 2964
parent a19015f4
AnnotationEditingSupportBase.java 7a16abe842cb44918d75395947bb6561e468ca03 GREEN
CheckBoxEditingSupport.java c7bc95da565bad53a125ff08982ea73ba06da3e5 GREEN
ComboBoxEditingSupport.java 1c778b6017f791339483606a31b72d0f8a39098c GREEN
EditingSupportFactory.java c72b4847ba219755178b785ea80f91295f259760 YELLOW
AnnotationEditingSupportBase.java 7e542e9d1084e929b798cf19de5c6b0e995e5922 YELLOW
CheckBoxEditingSupport.java 5ef3594428071da0c8df68202a101fda0fbc516c YELLOW
ComboBoxEditingSupport.java 8f2dfe75250de3a764c62ab73e21e217ece44d53 YELLOW
EditingSupportFactory.java b174a19f502d46f7e2ebefdc50437c6bdc007a97 YELLOW
ElementCommentEditingSupport.java b7cbec5084aab81efc1da6b48647b172206f6256 GREEN
ElementEditingSupportBase.java e04393748a0a0223b838fc59ef3c0e4f0960951b GREEN
ElementNameEditingSupport.java 6393bb52ad1f7ff4823a3f0dd30128124b0e3347 GREEN
LabelValueMapping.java 4493051db8444e8e2651802fe65603adf7bbd906 GREEN
MultiSelectionCellEditor.java 115039c4ed80dcb984d90d98496eb70f81a78686 GREEN
MultiSelectionEditingSupport.java 54d8de719d543408aa914450d23bbd9192cd8b1c GREEN
TextEditingSupport.java 55b5927f6db702b030b44ba6bb1202493edb4064 GREEN
MultiSelectionEditingSupport.java 0f650b71943755333dd3a72d630ec7972084856e YELLOW
TextEditingSupport.java f4d21fc3dc480e9f9ad5f9b960805c7488123f5a YELLOW
......@@ -40,15 +40,11 @@ public abstract class AnnotationEditingSupportBase extends EditingSupport {
/** Specification class of this column. */
protected Class<? extends IAnnotatedSpecification> specClass;
/** Instance key to identify the corresponding instance of the annotation. */
protected String instanceKey;
/** Constructs a new {@link AnnotationEditingSupportBase}. */
public AnnotationEditingSupportBase(ColumnViewer viewer,
Class<? extends IAnnotatedSpecification> specClass, String instanceKey) {
Class<? extends IAnnotatedSpecification> specClass) {
super(viewer);
this.specClass = specClass;
this.instanceKey = instanceKey;
}
/** {@inheritDoc} */
......@@ -56,7 +52,7 @@ public abstract class AnnotationEditingSupportBase extends EditingSupport {
protected boolean canEdit(Object element) {
if(element instanceof AnnotationEntry) {
AnnotationEntry annotationEntry = (AnnotationEntry)element;
return annotationEntry.canEdit(specClass, instanceKey);
return annotationEntry.canEdit(specClass);
}
return true;
......@@ -64,7 +60,7 @@ public abstract class AnnotationEditingSupportBase extends EditingSupport {
/** Actually gets the value from the {@link IAnnotatedSpecification}. */
protected Object doGetValue(AnnotationEntry annotationEntry) {
return annotationEntry.getSpecificationValue(specClass, instanceKey);
return annotationEntry.getSpecificationValue(specClass);
}
/** {@inheritDoc} */
......@@ -78,12 +74,12 @@ public abstract class AnnotationEditingSupportBase extends EditingSupport {
/** Actually sets a {@link String} value into a {@link IAnnotatedSpecification}. */
protected void doSetValue(AnnotationEntry annotationEntry, String value) throws Exception {
annotationEntry.setSpecificationValue(value, specClass, instanceKey);
annotationEntry.setSpecificationValue(value, specClass);
}
/** Actually sets a value into a {@link IAnnotatedSpecification}. */
protected void doSetValue(AnnotationEntry annotationEntry, Object value) throws Exception {
annotationEntry.setSpecificationValue(value, specClass, instanceKey);
annotationEntry.setSpecificationValue(value, specClass);
}
/** {@inheritDoc} */
......
......@@ -35,8 +35,8 @@ public class CheckBoxEditingSupport extends AnnotationEditingSupportBase {
/** Constructs a new {@link CheckBoxEditingSupport}. */
public CheckBoxEditingSupport(ColumnViewer viewer,
Class<? extends IAnnotatedSpecification> specClass, String instanceKey) {
super(viewer, specClass, instanceKey);
Class<? extends IAnnotatedSpecification> specClass) {
super(viewer, specClass);
checkBoxEditor = new CheckboxCellEditor(((TableViewer)viewer).getTable());
}
......
......@@ -65,8 +65,8 @@ public class ComboBoxEditingSupport extends AnnotationEditingSupportBase {
* available choices which is prepared on demand in {@link #getCellEditor(Object)}.
*/
private ComboBoxEditingSupport(ColumnViewer viewer,
Class<? extends IAnnotatedSpecification> clazz, String instanceKey, boolean isEditable) {
super(viewer, clazz, instanceKey);
Class<? extends IAnnotatedSpecification> clazz, boolean isEditable) {
super(viewer, clazz);
this.isEditable = isEditable;
......@@ -83,15 +83,15 @@ public class ComboBoxEditingSupport extends AnnotationEditingSupportBase {
*/
public ComboBoxEditingSupport(ColumnViewer viewer,
Class<? extends IAnnotatedSpecification> clazz, IAnnotatedSpecification specification,
String instanceKey, EStructuralFeatureDescriptor eStructuralFeatureDescriptor) {
EStructuralFeatureDescriptor eStructuralFeatureDescriptor) {
// EENumns and EReferences are only of a set of possible choices, hence they are not
// 'editable'
// @CodeFormatterOff (cannot use local variables before explicit call of constructor)
this(viewer, clazz, instanceKey,
this(viewer, clazz,
!(eStructuralFeatureDescriptor.getEType(specification) instanceof EEnum ||
eStructuralFeatureDescriptor.getEType(specification) instanceof EClass));
// @CodeFormatterOff
// @CodeFormatterOn
this.eStructuralFeatureDescriptor = eStructuralFeatureDescriptor;
}
......@@ -100,10 +100,10 @@ public class ComboBoxEditingSupport extends AnnotationEditingSupportBase {
* {@link EStructuralFeature}-based input-choice.
*/
public ComboBoxEditingSupport(ColumnViewer viewer,
Class<? extends IAnnotatedSpecification> clazz, String instanceKey,
Collection<String> stringInputChoice, boolean isEditable) {
Class<? extends IAnnotatedSpecification> clazz, Collection<String> stringInputChoice,
boolean isEditable) {
this(viewer, clazz, instanceKey, isEditable);
this(viewer, clazz, isEditable);
this.stringInputChoice = stringInputChoice;
}
......
......@@ -17,7 +17,6 @@ package org.fortiss.tooling.base.ui.annotation.editingsupport;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
......@@ -57,15 +56,14 @@ public class EditingSupportFactory {
<T extends IDerivedAnnotation<?>, V extends DerivedAnnotationValueProviderBase<T>>
EditingSupport createEditingSupport4DerivedAnnotationValueProviderBase(V valueProvider,
ColumnViewer viewer, Class<? extends IAnnotatedSpecification> clazz,
T specification, String instanceKey) throws Exception {
T specification) throws Exception {
if(valueProvider.isDerivedKey(instanceKey) && !valueProvider.isEditableByUser()) {
if(!valueProvider.isEditableByUser()) {
return null;
}
return createEditingSupport4EStructuralFeatureValueProviderBase(
(EStructuralFeatureValueProviderBase<T>)valueProvider, viewer, clazz,
specification, instanceKey);
(EStructuralFeatureValueProviderBase<T>)valueProvider, viewer, clazz, specification);
}
/**
......@@ -80,9 +78,6 @@ public class EditingSupportFactory {
* Annotation type
* @param specification
* Annotation instance
* @param instanceKey
* Key identifying annotation instance
*
* @return {@link EditingSupport} that is directly based on
* {@link EStructuralFeatureValueProviderBase}.
*/
......@@ -90,26 +85,24 @@ public class EditingSupportFactory {
<T extends IAnnotatedSpecification, V extends EStructuralFeatureValueProviderBase<T>>
EditingSupport createEditingSupport4EStructuralFeatureValueProviderBase(
V valueProvider, ColumnViewer viewer,
Class<? extends IAnnotatedSpecification> clazz, T specification,
String instanceKey) throws Exception {
Class<? extends IAnnotatedSpecification> clazz, T specification)
throws Exception {
EStructuralFeature structuralFeature =
valueProvider.getEStructuralFeature(specification, instanceKey);
valueProvider.getEStructuralFeatureDescriptor()
.getEStructuralFeature(specification);
EClassifier eType;
try {
eType = structuralFeature.getEType();
} catch(Exception e) {
eType = null;
if(structuralFeature == null) {
throw new Exception("EStructuralValueProvider: feature has not been set.");
}
if(structuralFeature.getUpperBound() == 0) {
throw new Exception(
"EStructuralValueProvider: feature multiplicity == 0 is not supported.");
}
EClassifier eType = structuralFeature.getEType();
EStructuralFeatureDescriptor eStructuralFeatureDescriptor =
valueProvider.getEStructuralFeatureDescriptor(instanceKey);
valueProvider.getEStructuralFeatureDescriptor();
if(structuralFeature.getUpperBound() == 1) {
EReferenceScope eReferenceScope = eStructuralFeatureDescriptor.getEReferenceScope();
......@@ -117,14 +110,14 @@ public class EditingSupportFactory {
if(isSimpleType || ((eType instanceof EClass) && (eReferenceScope == null))) {
return createEditingSupport4ValueProviderBase((ValueProviderBase<T>)valueProvider,
viewer, clazz, specification, instanceKey);
viewer, clazz, specification);
}
return new ComboBoxEditingSupport(viewer, clazz, specification, instanceKey,
return new ComboBoxEditingSupport(viewer, clazz, specification,
eStructuralFeatureDescriptor);
}
if(eType instanceof EClass || eType instanceof EEnum) {
return new MultiSelectionEditingSupport(viewer, clazz, specification, instanceKey,
return new MultiSelectionEditingSupport(viewer, clazz, specification,
eStructuralFeatureDescriptor);
}
......@@ -134,7 +127,7 @@ public class EditingSupportFactory {
/**
* Helper method for
* {@link #createEditingSupport4ValueProviderBase(ValueProviderBase, ColumnViewer, Class, IAnnotatedSpecification, String)}
* {@link #createEditingSupport4ValueProviderBase(ValueProviderBase, ColumnViewer, Class, IAnnotatedSpecification)}
* that initialized the current input map of the value provider.
*
* @param valueProvider
......@@ -143,26 +136,21 @@ public class EditingSupportFactory {
* {@link ColumnViewer} used to display annotation
* @param clazz
* Annotation type
* @param instanceKey
* Key identifying annotation instance
*/
@SuppressWarnings("unchecked")
private static <T extends IAnnotatedSpecification, V extends ValueProviderBase<T>> void
initializeInputChoice(V valueProvider, ColumnViewer viewer,
Class<? extends IAnnotatedSpecification> clazz, String instanceKey)
throws Exception {
Class<? extends IAnnotatedSpecification> clazz) throws Exception {
// Input choice is not set, or it is restricted to concrete set of values
// (use SingleEnumAttributeValueProviderBase for EEnum types!)s
List<String> fixedInputChoice = valueProvider.getFixedInputChoiceMap().get(instanceKey);
Map<String, Collection<String>> currentInputChoiceMap =
valueProvider.getCurrentInputChoiceMap();
List<String> fixedInputChoice = valueProvider.getFixedInputChoice();
if(fixedInputChoice == null || !fixedInputChoice.isEmpty()) {
currentInputChoiceMap.put(instanceKey, fixedInputChoice);
valueProvider.setCurrentInputChoice(fixedInputChoice);
} else {
Object viewerInput = viewer.getInput();
if(!(viewerInput instanceof Set<?>) || ((Set<?>)viewerInput).isEmpty() ||
!(((Set<?>)viewerInput).iterator().next() instanceof AnnotationEntry)) {
currentInputChoiceMap.put(instanceKey, null);
valueProvider.setCurrentInputChoice(null);
} else {
AnnotationEntry annotationEntry =
......@@ -180,8 +168,7 @@ public class EditingSupportFactory {
choices.add(annotationValue.toString());
}
}
currentInputChoiceMap.put(instanceKey, choices);
valueProvider.setCurrentInputChoice(choices);
}
}
}
......@@ -198,43 +185,36 @@ public class EditingSupportFactory {
* Annotation type
* @param specification
* Annotation instance
* @param instanceKey
* Key identifying annotation instance
*
* @return {@link EditingSupport} for value providers that are directly based on
* {@link ValueProviderBase}.
*/
private static <T extends IAnnotatedSpecification, V extends ValueProviderBase<T>>
EditingSupport createEditingSupport4ValueProviderBase(V valueProvider,
ColumnViewer viewer, Class<? extends IAnnotatedSpecification> clazz,
T specification, String instanceKey) throws Exception {
T specification) throws Exception {
try {
initializeInputChoice(valueProvider, viewer, clazz, instanceKey);
initializeInputChoice(valueProvider, viewer, clazz);
} catch(Exception e) {
// Use standard text editor as fall-back
valueProvider.setCurrentInputChoiceMap(null);
valueProvider.setCurrentInputChoice(null);
}
// Input is not restricted -> free editing in text cell
Collection<String> currentInputChoice =
valueProvider.getCurrentInputChoiceMap().get(instanceKey);
Collection<String> currentInputChoice = valueProvider.getCurrentInputChoice();
if(currentInputChoice == null) {
if(valueProvider.getAnnotationValue(specification, instanceKey) instanceof Boolean) {
return new CheckBoxEditingSupport(viewer, clazz, instanceKey);
if(valueProvider.getAnnotationValue(specification) instanceof Boolean) {
return new CheckBoxEditingSupport(viewer, clazz);
}
return new TextEditingSupport(viewer, clazz, instanceKey);
return new TextEditingSupport(viewer, clazz);
}
// Multiple instances are not supported (yet) for input to be edited in ComboBoxes
assert (instanceKey == null);
// Input is restricted to concrete set of values
// (use SingleEnumAttributeValueProviderBase for EEnum types!)
List<String> fixedInputChoice = valueProvider.getFixedInputChoiceMap().get(instanceKey);
return new ComboBoxEditingSupport(viewer, clazz, instanceKey, currentInputChoice,
List<String> fixedInputChoice = valueProvider.getFixedInputChoice();
return new ComboBoxEditingSupport(viewer, clazz, currentInputChoice,
fixedInputChoice.isEmpty());
}
......@@ -249,56 +229,27 @@ public class EditingSupportFactory {
* Annotation type
* @param specification
* Annotation instance
* @param instanceKey
* Key identifying annotation instance
*
* @return {@link EditingSupport} for the given {@link IAnnotatedSpecification}.
*/
@SuppressWarnings({"rawtypes", "unchecked"})
public static <T extends IAnnotatedSpecification> EditingSupport createEditingSupport(
IAnnotationValueProvider<T> valueProvider, ColumnViewer viewer,
Class<? extends IAnnotatedSpecification> clazz, T specification, String instanceKey)
throws Exception {
Class<? extends IAnnotatedSpecification> clazz, T specification) throws Exception {
if(valueProvider instanceof DerivedAnnotationValueProviderBase<?>) {
return createEditingSupport4DerivedAnnotationValueProviderBase(
(DerivedAnnotationValueProviderBase)valueProvider, viewer, clazz,
(IDerivedAnnotation)specification, instanceKey);
(IDerivedAnnotation)specification);
} else if(valueProvider instanceof EStructuralFeatureValueProviderBase<?>) {
return createEditingSupport4EStructuralFeatureValueProviderBase(
(EStructuralFeatureValueProviderBase<T>)valueProvider, viewer, clazz,
specification, instanceKey);
specification);
}
if(valueProvider instanceof ValueProviderBase<?>) {
return createEditingSupport4ValueProviderBase((ValueProviderBase<T>)valueProvider,
viewer, clazz, specification, instanceKey);
viewer, clazz, specification);
}
return null;
}
/**
* Creates the editing support without referring to the optional {@code instanceKey} (see
* {@link #createEditingSupport(IAnnotationValueProvider, ColumnViewer, Class, IAnnotatedSpecification, String)}
* .
*
*
* @param valueProvider
* Annotation's {@link IAnnotationValueProvider}
* @param viewer
* {@link ColumnViewer} used to display annotation
* @param clazz
* Annotation type
* @param specification
* Annotation instance
*
* @return {@link EditingSupport} without referring to the optional {@code instanceKey}.
*/
public static <T extends IAnnotatedSpecification> EditingSupport createEditingSupport(
IAnnotationValueProvider<T> valueProvider, ColumnViewer viewer,
Class<? extends IAnnotatedSpecification> clazz, T specification) throws Exception {
return createEditingSupport(valueProvider, viewer, clazz, specification,
IAnnotationValueProvider.DEFAULT_KEY);
}
}
......@@ -32,7 +32,7 @@ public class ElementEditingSupportBase extends TextEditingSupport {
public ElementEditingSupportBase(ColumnViewer viewer) {
// Specification class is not needed, since the name is stored
// directly in the model (hence pass {@code null}).
super(viewer, null, null);
super(viewer, null);
}
/** {@inheritDoc} */
......
......@@ -50,8 +50,8 @@ public class MultiSelectionEditingSupport extends AnnotationEditingSupportBase {
/** Constructs a new {@link MultiSelectionEditingSupport}. */
public MultiSelectionEditingSupport(ColumnViewer viewer,
Class<? extends IAnnotatedSpecification> clazz, IAnnotatedSpecification specification,
String instanceKey, EStructuralFeatureDescriptor eStructuralFeatureDescriptor) {
super(viewer, clazz, instanceKey);
EStructuralFeatureDescriptor eStructuralFeatureDescriptor) {
super(viewer, clazz);
this.specification = specification;
this.eStructuralFeatureDescriptor = eStructuralFeatureDescriptor;
......@@ -70,7 +70,7 @@ public class MultiSelectionEditingSupport extends AnnotationEditingSupportBase {
// Only can return a cell editor if the value of the underlying IAnnotatedSpecification is a
// collection
Object value = entry.getSpecificationValue(specClass, instanceKey);
Object value = entry.getSpecificationValue(specClass);
if(!(value instanceof Collection<?>)) {
return null;
}
......@@ -114,7 +114,7 @@ public class MultiSelectionEditingSupport extends AnnotationEditingSupportBase {
if(element instanceof AnnotationEntry) {
AnnotationEntry entry = (AnnotationEntry)element;
Object value = entry.getSpecificationValue(specClass, instanceKey);
Object value = entry.getSpecificationValue(specClass);
if(value instanceof Collection<?>) {
StringBuffer valueCollectionString = new StringBuffer();
......@@ -150,7 +150,7 @@ public class MultiSelectionEditingSupport extends AnnotationEditingSupportBase {
@Override
public void run() {
try {
entry.setSpecificationValue(value, specClass, instanceKey);
entry.setSpecificationValue(value, specClass);
} catch(Exception e) {
return;
}
......
......@@ -38,8 +38,8 @@ public class TextEditingSupport extends AnnotationEditingSupportBase {
/** Constructs a new {@link TextEditingSupport}. */
public TextEditingSupport(ColumnViewer viewer,
Class<? extends IAnnotatedSpecification> specClass, String instanceKey) {
super(viewer, specClass, instanceKey);
Class<? extends IAnnotatedSpecification> specClass) {
super(viewer, specClass);
cellEditor = new TextCellEditor((Composite)getViewer().getControl(), SWT.NONE);
}
......
AnnotationLabelProvider.java 7204dd4a921edc2859b94a10ff5476a3d4dda130 GREEN
CheckBoxLabelProvider.java 60ab25427dbf219fe675f434c943eacb1f9f8e58 YELLOW
AnnotationLabelProvider.java a592cde4a9ae83a832969a0e3379223aaaa793d2 YELLOW
CheckBoxLabelProvider.java fc68dc493591ebd7427f029b715de61f7696a2cb YELLOW
ElementCommentLabelProvider.java b1b2fb39a2ec33bf5e1763186cd44634654f9a3a GREEN
ElementLabelProviderBase.java 83b5e374fdd3357dffd8bd357b8db432825963d4 GREEN
ElementNameLabelProvider.java 6b12d3c6841c261a1cf6e8501a3edfd6f83bfe9e GREEN
LabelProviderBase.java a5f27ad40b1ac427418bd8a57a14a0779281df87 GREEN
LabelProviderFactory.java 0d74201d868963feaf492b3b4cd6c88a3e270a4b GREEN
LabelProviderFactory.java fc14fb327dc642d5988f693844a632068cc9c7bb YELLOW
......@@ -45,9 +45,6 @@ public class AnnotationLabelProvider extends LabelProviderBase {
/** Type of annotation that is displayed by this {@link AnnotationLabelProvider}. */
protected Class<? extends IAnnotatedSpecification> clazz;
/** Key identifying the annotation instance to be displayed. */
protected String instanceKey;
/**
* {@link EditingSupport} of the column to for which this {@link AnnotationLabelProvider}
* provides the label.
......@@ -61,17 +58,14 @@ public class AnnotationLabelProvider extends LabelProviderBase {
* Type of annotation that is displayed by this {@link AnnotationLabelProvider}.
* @param viewPart
* view required to retrieve the selected elements
* @param instanceKey
* Key identifying the annotation instance to be displayed.
* @param editingSupport
* {@link EditingSupport} of column for which the new {@link AnnotationLabelProvider}
* should provided the label.
*/
public AnnotationLabelProvider(Class<? extends IAnnotatedSpecification> clazz,
IAnnotationViewPart viewPart, String instanceKey, EditingSupport editingSupport) {
IAnnotationViewPart viewPart, EditingSupport editingSupport) {
super(viewPart);
this.clazz = clazz;
this.instanceKey = instanceKey;
this.editingSupport = editingSupport;
}
......@@ -83,7 +77,7 @@ public class AnnotationLabelProvider extends LabelProviderBase {
Object value = null;
try {
value = annotationEntry.getSpecificationValue(clazz, instanceKey);
value = annotationEntry.getSpecificationValue(clazz);
} catch(Exception e) {
return "";
}
......@@ -108,9 +102,9 @@ public class AnnotationLabelProvider extends LabelProviderBase {
return super.getBackground(element);
}
if(!annotationEntry.canEdit(clazz, instanceKey)) {
if(!annotationEntry.canEdit(clazz)) {
if(IDerivedAnnotation.class.isAssignableFrom(clazz) &&
annotationEntry.getSpecificationValue(clazz, instanceKey) != null) {
annotationEntry.getSpecificationValue(clazz) != null) {
return DERIVED_ANNOTATION_BACKGROUND_COLOR;
}
return READ_ONLY_ANNOTATION_BACKGROUND_COLOR;
......@@ -126,12 +120,4 @@ public class AnnotationLabelProvider extends LabelProviderBase {
public Class<? extends IAnnotatedSpecification> getAnnotationType() {
return clazz;
}
/**
* Returns the instance key (if any exists) of the {@link IAnnotatedSpecification} that is
* handled by {@code this} {@link AnnotationLabelProvider}.
*/
public String getInstanceKey() {
return instanceKey;
}
}
......@@ -39,8 +39,8 @@ public class CheckBoxLabelProvider extends AnnotationLabelProvider {
/** Constructor. */
public CheckBoxLabelProvider(Class<? extends IAnnotatedSpecification> clazz,
IAnnotationViewPart viewPart, String instanceKey, EditingSupport editingSupport) {
super(clazz, viewPart, instanceKey, editingSupport);
IAnnotationViewPart viewPart, EditingSupport editingSupport) {
super(clazz, viewPart, editingSupport);
}
/** {@inheritDoc} */
......@@ -70,7 +70,7 @@ public class CheckBoxLabelProvider extends AnnotationLabelProvider {
Object value = null;
try {
value = annotationEntry.getSpecificationValue(clazz, instanceKey);
value = annotationEntry.getSpecificationValue(clazz);
} catch(Exception e) {
return false;
}
......
......@@ -46,43 +46,6 @@ public class LabelProviderFactory {
* Annotation type
* @param specification
* Annotation instance
* @param instanceKey
* Key identifying annotation instance
*
* @return {@link ColumnLabelProvider} for the given {@link IAnnotatedSpecification}.
*/
public static <T extends IAnnotatedSpecification> ColumnLabelProvider createLabelProvider(
IAnnotationValueProvider<T> valueProvider, IAnnotationViewPart viewPart,
ColumnViewer columnViewer, EditingSupport editingSupport,
Class<? extends IAnnotatedSpecification> clazz, T specification, String instanceKey)
throws Exception {
if(valueProvider.getAnnotationValue(specification, instanceKey) instanceof Boolean) {
return new CheckBoxLabelProvider(clazz, viewPart, instanceKey,