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.Iterator; |
19 | |
|
20 | |
import org.eclipse.swt.graphics.Color; |
21 | |
import org.eclipse.swt.graphics.Font; |
22 | |
import org.eclipse.swt.graphics.Image; |
23 | |
import org.eclipse.swt.widgets.TableItem; |
24 | |
import org.seasar.uruma.annotation.RenderingPolicy.ConversionType; |
25 | |
import org.seasar.uruma.component.jface.TableCellComponent; |
26 | |
import org.seasar.uruma.component.jface.TableItemComponent; |
27 | |
import org.seasar.uruma.renderer.RendererSupportUtil; |
28 | |
|
29 | |
|
30 | |
|
31 | |
|
32 | |
|
33 | |
|
34 | 52 | public class TableItemRenderer extends |
35 | |
AbstractWidgetRenderer<TableItemComponent, TableItem> { |
36 | |
|
37 | |
|
38 | |
|
39 | |
|
40 | |
|
41 | |
@Override |
42 | |
protected void doRender(final TableItemComponent uiComponent, |
43 | |
final TableItem widget) { |
44 | 48 | setFont(uiComponent, widget); |
45 | 48 | setImage(uiComponent, widget); |
46 | 48 | setText(uiComponent, widget); |
47 | 48 | renderCells(uiComponent, widget); |
48 | 48 | } |
49 | |
|
50 | |
private void setImage(final TableItemComponent uiComponent, |
51 | |
final TableItem widget) { |
52 | 48 | String strImage = uiComponent.image; |
53 | 48 | if (strImage == null) { |
54 | 44 | return; |
55 | |
} |
56 | 4 | Image image = (Image) RendererSupportUtil.convertValue(uiComponent, |
57 | |
strImage, ConversionType.IMAGE); |
58 | 4 | widget.setImage(image); |
59 | 4 | } |
60 | |
|
61 | |
private void setText(final TableItemComponent uiComponent, |
62 | |
final TableItem widget) { |
63 | 48 | String text = uiComponent.text; |
64 | 48 | if (text == null) { |
65 | 4 | return; |
66 | |
} |
67 | 44 | String convertedText = (String) RendererSupportUtil.convertValue( |
68 | |
uiComponent, text, ConversionType.TEXT); |
69 | 44 | widget.setText(convertedText); |
70 | 44 | } |
71 | |
|
72 | |
private void setFont(final TableItemComponent uiComponent, |
73 | |
final TableItem widget) { |
74 | 48 | if (uiComponent.fontName == null && uiComponent.fontStyle == null |
75 | |
&& uiComponent.fontHeight == null) { |
76 | 44 | return; |
77 | |
} |
78 | 4 | Font font = RendererSupportUtil.getFont(widget.getFont(), |
79 | |
uiComponent.fontName, uiComponent.fontStyle, |
80 | |
uiComponent.fontHeight); |
81 | 4 | widget.setFont(font); |
82 | 4 | } |
83 | |
|
84 | |
private void renderCells(final TableItemComponent uiComponent, |
85 | |
final TableItem widget) { |
86 | 48 | int index = 0; |
87 | 48 | for (Iterator<TableCellComponent> it = uiComponent.getTableCells() |
88 | 80 | .iterator(); it.hasNext(); index++) { |
89 | 16 | TableCellComponent cell = it.next(); |
90 | 16 | renderCell(index, cell, uiComponent, widget); |
91 | |
} |
92 | 48 | } |
93 | |
|
94 | |
private void renderCell(final int index, final TableCellComponent cell, |
95 | |
final TableItemComponent tableItemComponent, |
96 | |
final TableItem tableItem) { |
97 | 16 | setText(index, cell, tableItemComponent, tableItem); |
98 | 16 | setBackground(index, cell, tableItemComponent, tableItem); |
99 | 16 | setForeground(index, cell, tableItemComponent, tableItem); |
100 | 16 | setImage(index, cell, tableItemComponent, tableItem); |
101 | 16 | setFont(index, cell, tableItemComponent, tableItem); |
102 | 16 | } |
103 | |
|
104 | |
private void setText(final int index, final TableCellComponent cell, |
105 | |
final TableItemComponent tableItemComponent, |
106 | |
final TableItem tableItem) { |
107 | 16 | if (cell.text == null) { |
108 | 0 | return; |
109 | |
} |
110 | 16 | String text = (String) RendererSupportUtil.convertValue( |
111 | |
tableItemComponent, cell.text, ConversionType.TEXT); |
112 | 16 | tableItem.setText(index, text); |
113 | 16 | } |
114 | |
|
115 | |
private void setBackground(final int index, final TableCellComponent cell, |
116 | |
final TableItemComponent tableItemComponent, |
117 | |
final TableItem tableItem) { |
118 | 16 | if (cell.background == null) { |
119 | 12 | return; |
120 | |
} |
121 | 4 | Color color = (Color) RendererSupportUtil.convertValue( |
122 | |
tableItemComponent, cell.background, ConversionType.COLOR); |
123 | 4 | tableItem.setBackground(index, color); |
124 | 4 | } |
125 | |
|
126 | |
private void setForeground(final int index, final TableCellComponent cell, |
127 | |
final TableItemComponent tableItemComponent, |
128 | |
final TableItem tableItem) { |
129 | 16 | if (cell.foreground == null) { |
130 | 12 | return; |
131 | |
} |
132 | 4 | Color color = (Color) RendererSupportUtil.convertValue( |
133 | |
tableItemComponent, cell.foreground, ConversionType.COLOR); |
134 | 4 | tableItem.setForeground(index, color); |
135 | 4 | } |
136 | |
|
137 | |
private void setImage(final int index, final TableCellComponent cell, |
138 | |
final TableItemComponent tableItemComponent, |
139 | |
final TableItem tableItem) { |
140 | 16 | if (cell.image == null) { |
141 | 12 | return; |
142 | |
} |
143 | 4 | Image image = (Image) RendererSupportUtil.convertValue( |
144 | |
tableItemComponent, cell.image, ConversionType.IMAGE); |
145 | 4 | tableItem.setImage(index, image); |
146 | 4 | } |
147 | |
|
148 | |
private void setFont(final int index, final TableCellComponent cell, |
149 | |
final TableItemComponent tableItemComponent, |
150 | |
final TableItem tableItem) { |
151 | 16 | if (cell.fontName == null && cell.fontStyle == null |
152 | |
&& cell.fontHeight == null) { |
153 | 12 | return; |
154 | |
} |
155 | 4 | Font defaultFont = tableItem.getFont(index); |
156 | 4 | Font font = RendererSupportUtil.getFont(defaultFont, cell.fontName, |
157 | |
cell.fontStyle, cell.fontHeight); |
158 | 4 | tableItem.setFont(index, font); |
159 | 4 | } |
160 | |
|
161 | |
|
162 | |
|
163 | |
|
164 | |
@Override |
165 | |
protected Class<TableItem> getWidgetType() { |
166 | 144 | return TableItem.class; |
167 | |
} |
168 | |
|
169 | |
} |