1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.uruma.viewer;
17
18 import java.util.HashMap;
19 import java.util.Map;
20
21 import org.eclipse.jface.viewers.ILabelProviderListener;
22 import org.eclipse.jface.viewers.ITableLabelProvider;
23 import org.eclipse.swt.graphics.Image;
24 import org.seasar.framework.beans.BeanDesc;
25 import org.seasar.framework.beans.PropertyDesc;
26 import org.seasar.framework.beans.factory.BeanDescFactory;
27 import org.seasar.uruma.annotation.BindingLabel;
28
29
30
31
32
33
34
35
36
37
38 public class GenericTableLabelProvider implements ITableLabelProvider,
39 TargetClassHoldingProvider {
40 protected Map<String, Integer> columnNoMap = new HashMap<String, Integer>();
41
42 protected Map<Integer, PropertyDesc> columnMap = new HashMap<Integer, PropertyDesc>();
43
44
45
46
47
48 public Image getColumnImage(final Object element, final int columnIndex) {
49 return null;
50 }
51
52
53
54
55
56 public String getColumnText(final Object element, final int columnIndex) {
57 PropertyDesc pd = columnMap.get(columnIndex);
58 if (pd != null && pd.isReadable()) {
59 Object value = pd.getValue(element);
60
61 return (value != null) ? value.toString() : "";
62 } else {
63 return "";
64 }
65 }
66
67 public void addListener(final ILabelProviderListener listener) {
68
69 }
70
71 public void dispose() {
72
73 }
74
75 public boolean isLabelProperty(final Object element, final String property) {
76 return false;
77
78 }
79
80 public void removeListener(final ILabelProviderListener listener) {
81
82 }
83
84
85
86
87 public void setTargetClass(final Class<?> clazz) {
88 BeanDesc desc = BeanDescFactory.getBeanDesc(clazz);
89 for (String columnName : columnNoMap.keySet()) {
90 if (desc.hasPropertyDesc(columnName)) {
91 PropertyDesc pd = desc.getPropertyDesc(columnName);
92 columnMap.put(columnNoMap.get(columnName), pd);
93 }
94 }
95 }
96
97
98
99
100
101
102
103
104
105 public void addColumnMap(final int columnNo, final String columnName) {
106 columnNoMap.put(columnName, columnNo);
107 }
108 }