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.internal.component;
21
22 import org.apache.myfaces.tobago.component.Visual;
23 import org.apache.myfaces.tobago.model.TreeDataModel;
24 import org.apache.myfaces.tobago.model.TreePath;
25 import org.apache.myfaces.tobago.util.ComponentUtils;
26
27 import javax.faces.component.UIData;
28 import javax.faces.context.FacesContext;
29 import java.io.IOException;
30 import java.util.List;
31
32
33
34
35 public abstract class AbstractUITreeNodeBase extends AbstractUIColumnBase implements Visual {
36
37 @Override
38 public void encodeBegin(final FacesContext facesContext) throws IOException {
39 final TreeDataModel model = ComponentUtils.findAncestor(this, AbstractUIData.class).getTreeDataModel();
40 model.setRowClientId(getClientId(facesContext));
41
42 super.encodeBegin(facesContext);
43 }
44
45
46
47
48
49 public int getLevel() {
50 final TreeDataModel model = ComponentUtils.findAncestor(this, AbstractUIData.class).getTreeDataModel();
51 return model.getLevel();
52 }
53
54 public List<Boolean> getJunctions() {
55 final TreeDataModel model = ComponentUtils.findAncestor(this, AbstractUIData.class).getTreeDataModel();
56 return model.getJunctions();
57 }
58
59 public boolean isFolder() {
60 final TreeDataModel model = ComponentUtils.findAncestor(this, AbstractUIData.class).getTreeDataModel();
61 return model.isFolder();
62 }
63
64 public TreePath getPath() {
65 final TreeDataModel model = ComponentUtils.findAncestor(this, AbstractUIData.class).getTreeDataModel();
66 return model.getPath();
67 }
68
69 public String nodeStateId(final FacesContext facesContext) {
70 final String clientId = getClientId(facesContext);
71 final UIData data = ComponentUtils.findAncestor(this, UIData.class);
72 final String dataId = data.getClientId(facesContext);
73 return clientId.substring(dataId.length() + 1);
74 }
75 }