1 /*
2 * Copyright 2004-2008 the Seasar Foundation and the Others.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13 * either express or implied. See the License for the specific language
14 * governing permissions and limitations under the License.
15 */
16 package org.seasar.uruma.renderer.impl;
17
18 import java.util.List;
19
20 import org.eclipse.swt.widgets.Control;
21 import org.eclipse.swt.widgets.CoolItem;
22 import org.seasar.uruma.component.UIComponent;
23 import org.seasar.uruma.component.UIElement;
24 import org.seasar.uruma.component.jface.CoolItemComponent;
25 import org.seasar.uruma.context.PartContext;
26 import org.seasar.uruma.context.WidgetHandle;
27
28 /**
29 * {@link CoolItem} のレンダリングを行うクラスです。<br />
30 *
31 * @author bskuroneko
32 */
33 public class CoolItemRenderer extends
34 AbstractWidgetRenderer<CoolItemComponent, CoolItem> {
35
36 @Override
37 protected void doRender(final CoolItemComponent coolItemComponent,
38 final CoolItem control) {
39 }
40
41 /*
42 * @see org.seasar.uruma.renderer.impl.AbstractWidgetRenderer#doRenderAfter(org.eclipse.swt.widgets.Widget,
43 * org.seasar.uruma.component.UIComponent,
44 * org.seasar.uruma.context.WidgetHandle,
45 * org.seasar.uruma.context.PartContext)
46 */
47 @Override
48 protected void doRenderAfter(final CoolItem widget,
49 final CoolItemComponent uiComponent, final WidgetHandle parent,
50 final PartContext context) {
51 setControl(widget, uiComponent);
52 }
53
54 private void setControl(final CoolItem coolItem,
55 final CoolItemComponent coolItemComponent) {
56 List<UIElement> children = coolItemComponent.getChildren();
57
58 for (UIElement child : children) {
59 if (child instanceof UIComponent) {
60 String id = ((UIComponent) child).getId();
61 WidgetHandle handle = getContext().getWidgetHandle(id);
62 coolItem.setControl((Control) handle.getWidget());
63
64 break;
65 }
66 }
67 }
68
69 /*
70 * @see org.seasar.uruma.renderer.impl.AbstractWidgetRenderer#getWidgetType()
71 */
72 @Override
73 protected Class<CoolItem> getWidgetType() {
74 return CoolItem.class;
75 }
76 }