1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.uruma.component.base;
17
18 import java.util.ArrayList;
19 import java.util.List;
20
21 import org.seasar.uruma.component.UIComponent;
22 import org.seasar.uruma.component.UIComponentContainer;
23 import org.seasar.uruma.component.UIElement;
24 import org.seasar.uruma.context.PartContext;
25 import org.seasar.uruma.context.WidgetHandle;
26
27
28
29
30
31
32 public abstract class AbstractUIContainerItemComponent extends
33 AbstractItemComponent implements UIComponentContainer {
34
35 private List<UIElement> children = new ArrayList<UIElement>();
36
37
38
39
40 public void addChild(final UIElement child) {
41 children.add(child);
42 if (child instanceof UIComponent) {
43 ((UIComponent) child).setParent(getParent());
44 }
45 }
46
47
48
49
50 public List<UIElement> getChildren() {
51 return children;
52 }
53
54
55
56
57
58
59
60 public UIElement getChild() {
61 if (children.size() > 0) {
62 return children.get(0);
63 } else {
64 return null;
65 }
66 }
67
68
69
70
71
72 @Override
73 protected void doRender(final WidgetHandle parent, final PartContext context) {
74 UIElement content = getChild();
75 if ((content != null) && (content instanceof UIComponent)) {
76 WidgetHandle parentHandle = context.getWidgetHandle(getParent()
77 .getId());
78 ((UIComponent) content).render(parentHandle, context);
79 }
80 }
81 }