1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.uruma.renderer;
17
18 import java.util.HashMap;
19 import java.util.Map;
20
21 import org.seasar.uruma.component.UIComponent;
22 import org.seasar.uruma.component.jface.BrowserComponent;
23 import org.seasar.uruma.component.jface.ButtonComponent;
24 import org.seasar.uruma.component.jface.CTabFolderComponent;
25 import org.seasar.uruma.component.jface.CTabItemComponent;
26 import org.seasar.uruma.component.jface.CanvasComponent;
27 import org.seasar.uruma.component.jface.ComboComponent;
28 import org.seasar.uruma.component.jface.CompositeComponent;
29 import org.seasar.uruma.component.jface.CoolBarComponent;
30 import org.seasar.uruma.component.jface.CoolItemComponent;
31 import org.seasar.uruma.component.jface.DateTimeComponent;
32 import org.seasar.uruma.component.jface.GroupComponent;
33 import org.seasar.uruma.component.jface.LabelComponent;
34 import org.seasar.uruma.component.jface.LinkComponent;
35 import org.seasar.uruma.component.jface.MenuComponent;
36 import org.seasar.uruma.component.jface.MenuItemComponent;
37 import org.seasar.uruma.component.jface.ProgressBarComponent;
38 import org.seasar.uruma.component.jface.SashFormComponent;
39 import org.seasar.uruma.component.jface.ScaleComponent;
40 import org.seasar.uruma.component.jface.SeparatorComponent;
41 import org.seasar.uruma.component.jface.SliderComponent;
42 import org.seasar.uruma.component.jface.SpinnerComponent;
43 import org.seasar.uruma.component.jface.TabFolderComponent;
44 import org.seasar.uruma.component.jface.TabItemComponent;
45 import org.seasar.uruma.component.jface.TableColumnComponent;
46 import org.seasar.uruma.component.jface.TableComponent;
47 import org.seasar.uruma.component.jface.TableItemComponent;
48 import org.seasar.uruma.component.jface.TextComponent;
49 import org.seasar.uruma.component.jface.ToolBarComponent;
50 import org.seasar.uruma.component.jface.ToolItemComponent;
51 import org.seasar.uruma.component.jface.TreeComponent;
52 import org.seasar.uruma.component.jface.TreeItemComponent;
53 import org.seasar.uruma.component.jface.WindowComponent;
54 import org.seasar.uruma.component.rcp.ViewPartComponent;
55 import org.seasar.uruma.component.rcp.WorkbenchComponent;
56 import org.seasar.uruma.core.UrumaMessageCodes;
57 import org.seasar.uruma.exception.NotFoundException;
58 import org.seasar.uruma.renderer.impl.BrowserRenderer;
59 import org.seasar.uruma.renderer.impl.ButtonRenderer;
60 import org.seasar.uruma.renderer.impl.CTabFolderRenderer;
61 import org.seasar.uruma.renderer.impl.CTabItemRenderer;
62 import org.seasar.uruma.renderer.impl.CanvasRenderer;
63 import org.seasar.uruma.renderer.impl.ComboViewerRenderer;
64 import org.seasar.uruma.renderer.impl.CompositeRenderer;
65 import org.seasar.uruma.renderer.impl.CoolBarRenderer;
66 import org.seasar.uruma.renderer.impl.CoolItemRenderer;
67 import org.seasar.uruma.renderer.impl.DateTimeRenderer;
68 import org.seasar.uruma.renderer.impl.GroupRenderer;
69 import org.seasar.uruma.renderer.impl.LabelRenderer;
70 import org.seasar.uruma.renderer.impl.LinkRenderer;
71 import org.seasar.uruma.renderer.impl.MenuItemRenderer;
72 import org.seasar.uruma.renderer.impl.MenuManagerRenderer;
73 import org.seasar.uruma.renderer.impl.NullRenderer;
74 import org.seasar.uruma.renderer.impl.ProgressBarRenderer;
75 import org.seasar.uruma.renderer.impl.SashFormRenderer;
76 import org.seasar.uruma.renderer.impl.ScaleRenderer;
77 import org.seasar.uruma.renderer.impl.SeparatorRenderer;
78 import org.seasar.uruma.renderer.impl.SliderRenderer;
79 import org.seasar.uruma.renderer.impl.SpinnerRenderer;
80 import org.seasar.uruma.renderer.impl.TabFolderRenderer;
81 import org.seasar.uruma.renderer.impl.TabItemRenderer;
82 import org.seasar.uruma.renderer.impl.TableColumnRenderer;
83 import org.seasar.uruma.renderer.impl.TableItemRenderer;
84 import org.seasar.uruma.renderer.impl.TableViewerRenderer;
85 import org.seasar.uruma.renderer.impl.TextRenderer;
86 import org.seasar.uruma.renderer.impl.ToolBarRenderer;
87 import org.seasar.uruma.renderer.impl.ToolItemRenderer;
88 import org.seasar.uruma.renderer.impl.TreeItemRenderer;
89 import org.seasar.uruma.renderer.impl.TreeViewerRenderer;
90 import org.seasar.uruma.renderer.impl.ViewPartRenderer;
91 import org.seasar.uruma.renderer.impl.WindowRenderer;
92 import org.seasar.uruma.util.AssertionUtil;
93
94
95
96
97
98
99 public class RendererFactory {
100 private static final Map<Class<? extends UIComponent>, Renderer> rendererMap = new HashMap<Class<? extends UIComponent>, Renderer>();
101
102 static {
103 addRenderer(WindowComponent.class, new WindowRenderer());
104 addRenderer(ViewPartComponent.class, new ViewPartRenderer());
105
106 addRenderer(CompositeComponent.class, new CompositeRenderer());
107 addRenderer(ComboComponent.class, new ComboViewerRenderer());
108 addRenderer(TabFolderComponent.class, new TabFolderRenderer());
109 addRenderer(TabItemComponent.class, new TabItemRenderer());
110 addRenderer(TableComponent.class, new TableViewerRenderer());
111 addRenderer(TableColumnComponent.class, new TableColumnRenderer());
112 addRenderer(TableItemComponent.class, new TableItemRenderer());
113 addRenderer(SpinnerComponent.class, new SpinnerRenderer());
114 addRenderer(CTabFolderComponent.class, new CTabFolderRenderer());
115 addRenderer(CTabItemComponent.class, new CTabItemRenderer());
116 addRenderer(GroupComponent.class, new GroupRenderer());
117 addRenderer(ToolBarComponent.class, new ToolBarRenderer());
118 addRenderer(ToolItemComponent.class, new ToolItemRenderer());
119 addRenderer(CoolBarComponent.class, new CoolBarRenderer());
120 addRenderer(CoolItemComponent.class, new CoolItemRenderer());
121 addRenderer(CanvasComponent.class, new CanvasRenderer());
122 addRenderer(SashFormComponent.class, new SashFormRenderer());
123 addRenderer(BrowserComponent.class, new BrowserRenderer());
124
125 addRenderer(TreeComponent.class, new TreeViewerRenderer());
126 addRenderer(TreeItemComponent.class, new TreeItemRenderer());
127
128 addRenderer(ButtonComponent.class, new ButtonRenderer());
129 addRenderer(LabelComponent.class, new LabelRenderer());
130 addRenderer(TextComponent.class, new TextRenderer());
131 addRenderer(ProgressBarComponent.class, new ProgressBarRenderer());
132 addRenderer(ScaleComponent.class, new ScaleRenderer());
133 addRenderer(SliderComponent.class, new SliderRenderer());
134 addRenderer(LinkComponent.class, new LinkRenderer());
135
136 addRenderer(MenuComponent.class, new MenuManagerRenderer());
137 addRenderer(MenuItemComponent.class, new MenuItemRenderer());
138 addRenderer(SeparatorComponent.class, new SeparatorRenderer());
139 addRenderer(DateTimeComponent.class, new DateTimeRenderer());
140
141 addRenderer(WorkbenchComponent.class, new NullRenderer());
142 }
143
144
145
146
147
148
149
150
151
152
153 public static Renderer getRenderer(
154 final Class<? extends UIComponent> uiComponentClass) {
155 Renderer renderer = rendererMap.get(uiComponentClass);
156 if (renderer != null) {
157 return renderer;
158 } else {
159 throw new NotFoundException(UrumaMessageCodes.RENDERER_NOT_FOUND,
160 uiComponentClass.getName());
161 }
162 }
163
164
165
166
167
168
169
170
171
172 public static void addRenderer(
173 final Class<? extends UIComponent> uiComponentClass,
174 final Renderer renderer) {
175 AssertionUtil.assertNotNull("uiComponentClass", uiComponentClass);
176 AssertionUtil.assertNotNull("renderer", renderer);
177 rendererMap.put(uiComponentClass, renderer);
178 }
179 }