1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.uruma.renderer.impl;
17
18 import org.eclipse.jface.viewers.IBaseLabelProvider;
19 import org.eclipse.jface.viewers.TableViewer;
20 import org.eclipse.swt.widgets.TableColumn;
21 import org.seasar.uruma.component.jface.TableColumnComponent;
22 import org.seasar.uruma.context.PartContext;
23 import org.seasar.uruma.context.WidgetHandle;
24 import org.seasar.uruma.viewer.GenericTableLabelProvider;
25
26
27
28
29
30
31 public class TableColumnRenderer extends
32 AbstractWidgetRenderer<TableColumnComponent, TableColumn> {
33
34
35
36
37
38 @Override
39 protected void doRender(final TableColumnComponent uiComponent,
40 final TableColumn widget) {
41
42
43 setupColumnMap(uiComponent, widget);
44 }
45
46
47
48
49 @Override
50 protected Class<TableColumn> getWidgetType() {
51 return TableColumn.class;
52 }
53
54 private void setupColumnMap(final TableColumnComponent uiComponent,
55 final TableColumn widget) {
56 int columnNo = uiComponent.columnNo;
57 String id = uiComponent.getId();
58 String parentId = uiComponent.getParent().getId();
59
60 PartContext context = getContext();
61 WidgetHandle parentHandle = context.getWidgetHandle(parentId);
62 if (parentHandle != null && parentHandle.instanceOf(TableViewer.class)) {
63 TableViewer viewer = parentHandle.<TableViewer> getCastWidget();
64 IBaseLabelProvider baseLabelProvider = viewer.getLabelProvider();
65
66 if (baseLabelProvider instanceof GenericTableLabelProvider) {
67 GenericTableLabelProvider provider = (GenericTableLabelProvider) baseLabelProvider;
68 provider.addColumnMap(columnNo, id);
69 }
70 }
71 }
72 }