1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.module.templatingkit.navigation;
35
36 import info.magnolia.jcr.util.PropertyUtil;
37 import info.magnolia.objectfactory.Components;
38
39 import javax.jcr.Node;
40 import javax.jcr.RepositoryException;
41
42
43
44
45
46
47 public class NavigationItem extends SubNavigation implements Link {
48
49 private final Link link;
50
51 public NavigationItem(Node content, SubNavigation parent, int depth, boolean allOpen) {
52 super(content, parent, depth, allOpen);
53 link = Components.newInstance(Link.class, content);
54 }
55
56 public int getLevel() {
57 return getRoot().depth - this.depth;
58 }
59
60 public String getId() throws RepositoryException {
61 return content.getName().toLowerCase();
62 }
63
64 public boolean isVisible() {
65 return !PropertyUtil.getBoolean(content, "hideInNav", false);
66 }
67
68 public boolean isLeaf() throws RepositoryException {
69 return getItems().isEmpty();
70 }
71
72 public boolean isSelected() throws RepositoryException {
73
74 final String selectedPath = getRoot().getSelectedNode().getPath();
75 final String currentHandle = this.content.getPath();
76
77 if (selectedPath.equals(currentHandle)) {
78 return true;
79 } else if (isLeaf()) {
80 return selectedPath.startsWith(this.content.getPath() + "/");
81 } else {
82 return false;
83 }
84 }
85
86 @Override
87 public String getHref() {
88 return this.link.getHref();
89 }
90
91 @Override
92 public String getTitle() {
93 return this.link.getTitle();
94 }
95
96 @Override
97 public String getNavigationTitle() {
98 return this.link.getNavigationTitle();
99 }
100 }