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.context.Markup;
23 import org.apache.myfaces.tobago.internal.component.AbstractUIData;
24 import org.apache.myfaces.tobago.internal.component.AbstractUITree;
25 import org.apache.myfaces.tobago.internal.component.AbstractUITreeNode;
26 import org.apache.myfaces.tobago.renderkit.LayoutComponentRendererBase;
27 import org.apache.myfaces.tobago.util.ComponentUtils;
28
29 import javax.faces.component.UIComponent;
30 import javax.faces.context.FacesContext;
31 import java.io.IOException;
32
33 public class TreeNodeRendererBase extends LayoutComponentRendererBase {
34
35 @Override
36 public void prepareRender(FacesContext facesContext, UIComponent component) throws IOException {
37 super.prepareRender(facesContext, component);
38
39 final AbstractUITreeNode node = (AbstractUITreeNode) component;
40 final AbstractUIData data = ComponentUtils.findAncestor(node, AbstractUIData.class);
41 if (data instanceof AbstractUITree && ((AbstractUITree) data).getMarkedState().isMarked(node.getPath())) {
42 ComponentUtils.addCurrentMarkup(node, Markup.MARKED);
43 }
44 if (node.isFolder()) {
45 ComponentUtils.addCurrentMarkup(node, Markup.FOLDER);
46 if (data.getExpandedState().isExpanded(node.getPath())) {
47 ComponentUtils.addCurrentMarkup(node, Markup.EXPANDED);
48 }
49 }
50 }
51
52 }