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 java.util.List;
19
20 import org.eclipse.jface.viewers.IBaseLabelProvider;
21 import org.eclipse.jface.viewers.TableViewer;
22 import org.eclipse.jface.viewers.ViewerComparator;
23 import org.eclipse.swt.SWT;
24 import org.eclipse.swt.widgets.Table;
25 import org.seasar.uruma.annotation.RenderingPolicy.ConversionType;
26 import org.seasar.uruma.component.UICompositeComponent;
27 import org.seasar.uruma.component.UIElement;
28 import org.seasar.uruma.component.jface.TableComponent;
29 import org.seasar.uruma.component.jface.TableItemComponent;
30 import org.seasar.uruma.context.PartContext;
31 import org.seasar.uruma.context.WidgetHandle;
32 import org.seasar.uruma.renderer.RendererSupportUtil;
33 import org.seasar.uruma.viewer.GenericTableLabelProvider;
34 import org.seasar.uruma.viewer.GenericTableViewerComparator;
35 import org.seasar.uruma.viewer.PojoLabelProvider;
36 import org.seasar.uruma.viewer.PojoTableLabelProvider;
37
38
39
40
41
42
43 public class TableViewerRenderer extends
44 AbstractViewerRenderer<TableComponent, TableViewer, Table> {
45
46
47
48 @Override
49 protected boolean canCreateViewer(final UICompositeComponent component) {
50
51 List<UIElement> children = component.getChildren();
52 for (UIElement child : children) {
53 if (child instanceof TableItemComponent) {
54 return false;
55 }
56 }
57 return true;
58 }
59
60
61
62
63
64
65
66 @Override
67 protected void doRenderAfter(final TableViewer viewer,
68 final TableComponent uiComponent, final WidgetHandle parent,
69 final PartContext context) {
70
71 String selection = uiComponent.selection;
72 if (selection != null) {
73 Table table = viewer.getTable();
74 table.setSelection((int[]) RendererSupportUtil.convertValue(
75 uiComponent, selection, ConversionType.INT_ARRAY));
76 }
77 }
78
79
80
81
82 @Override
83 protected Class<Table> getWidgetType() {
84 return Table.class;
85 }
86
87
88
89
90 @Override
91 protected int getDefaultStyle() {
92 return SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER;
93 }
94
95
96
97
98 @Override
99 protected Class<TableViewer> getViewerType() {
100 return TableViewer.class;
101 }
102
103
104
105
106 @Override
107 protected IBaseLabelProvider getDefaultLabelProvider() {
108 return new GenericTableLabelProvider();
109 }
110
111
112
113
114 @Override
115 protected Class<? extends PojoLabelProvider> getPojoLabelProviderClass() {
116 return PojoTableLabelProvider.class;
117 }
118
119
120
121
122 @Override
123 protected ViewerComparator getDefaultComparator() {
124 return new GenericTableViewerComparator();
125 }
126 }