1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.renderkit.html.scarborough.standard.tag;
21
22 import org.apache.myfaces.tobago.component.RendererTypes;
23 import org.apache.myfaces.tobago.component.UITreeCommand;
24 import org.apache.myfaces.tobago.component.UITreeLabel;
25 import org.apache.myfaces.tobago.component.UITreeNode;
26
27 import javax.faces.component.UIComponent;
28 import javax.faces.context.FacesContext;
29 import java.io.IOException;
30
31 public class TreeMenuRenderer extends TreeRenderer {
32
33 @Override
34 public void prepareRender(FacesContext facesContext, UIComponent component) throws IOException {
35 super.prepareRender(facesContext, component);
36
37 setRendererTypeForCommandsAndNodes(component);
38 }
39
40 protected void setRendererTypeForCommandsAndNodes(UIComponent component) {
41 for (UIComponent child : component.getChildren()) {
42 if (child instanceof UITreeNode) {
43 child.setRendererType(RendererTypes.TREE_MENU_NODE);
44 }
45 if (child instanceof UITreeCommand) {
46 child.setRendererType(RendererTypes.TREE_MENU_COMMAND);
47 }
48 if (child instanceof UITreeLabel) {
49 child.setRendererType(RendererTypes.TREE_MENU_LABEL);
50 }
51 setRendererTypeForCommandsAndNodes(child);
52 }
53 }
54 }