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