Retrofit the table's image support for trees
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/internal/viewers/TableViewerUpdatableCollectionExtended.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/internal/viewers/TableViewerUpdatableCollectionExtended.java
index 2a05a14..2d6a2d1 100644
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/internal/viewers/TableViewerUpdatableCollectionExtended.java
+++ b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/internal/viewers/TableViewerUpdatableCollectionExtended.java
@@ -44,13 +44,13 @@
public class TableViewerUpdatableCollectionExtended extends
TableViewerUpdatableCollection {
- class TreeLableProvider extends LabelProvider implements
+ class TableLabelProvider extends LabelProvider implements
ITableLabelProvider {
private Object getValue(Object element, Column column) {
String propertyName = column.getPropertyName();
- if (propertyName == null) {
+ if (propertyName == null)
return element;
- }
+
Object value = tableViewerDescription.getCellModifier().getValue(
element, propertyName);
return value;
@@ -105,7 +105,7 @@
private final TableViewerDescription tableViewerDescription;
- private ITableLabelProvider tableLabelProvider = new TreeLableProvider();
+ private ITableLabelProvider tableLabelProvider = new TableLabelProvider();
private IDataBindingContext dataBindingContext;
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/internal/viewers/TreeViewerUpdatableTreeExtended.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/internal/viewers/TreeViewerUpdatableTreeExtended.java
index c506885..fa98b5c 100644
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/internal/viewers/TreeViewerUpdatableTreeExtended.java
+++ b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/internal/viewers/TreeViewerUpdatableTreeExtended.java
@@ -52,7 +52,13 @@
}
private Object getConvertedValue(Object element, Column column) {
- Object value = getValue(element, column);
+ String propertyName = column.getPropertyName();
+ Object value;
+ if (propertyName == null)
+ value = element;
+ else
+ value = getValue(element, column);
+
Object convertedValue = column.getConverter().convertModelToTarget(
value);
return convertedValue;
@@ -188,7 +194,7 @@
element = ((Item) element).getData();
}
Column column = findColumn(element.getClass(), property);
- if (column!=null) {
+ if (column!=null && column.getPropertyName()!=null) {
return new PropertyHelper(column.getPropertyName(), element.getClass()).canSet(element);
}
return false;
@@ -314,7 +320,7 @@
for (int i = 0; i < treeViewerDescription.getColumnCount(value.getClass()); i++) {
Column column = treeViewerDescription.getColumn(value.getClass(), i);
ColumnInfo columnInfo = (ColumnInfo) columnInfos.remove(column);
- if (columnInfo!=null) {
+ if (columnInfo!=null && column.getPropertyName()!=null) {
if(column.getPropertyType() == null && (columnInfo.cellEditorDefaulted || columnInfo.converterDefaulted || columnInfo.validatorDefaulted)){
// Work out the type of the column from the property name from the element type itself
PropertyHelper helper = new PropertyHelper(column.getPropertyName(), value.getClass());