1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.krad.uif.util;
17
18 import org.kuali.rice.krad.datadictionary.parse.BeanTag;
19 import org.kuali.rice.krad.datadictionary.parse.BeanTagAttribute;
20 import org.kuali.rice.krad.uif.component.Component;
21 import org.kuali.rice.krad.uif.element.ContentElementBase;
22 import org.kuali.rice.krad.uif.view.View;
23
24 import java.util.ArrayList;
25 import java.util.HashMap;
26 import java.util.List;
27 import java.util.Map;
28
29
30
31
32 @BeanTag(name = "breadcrumbItem-bean", parent = "Uif-BreadcrumbItem")
33 public class BreadcrumbItem extends ContentElementBase {
34 private String label;
35 private UrlInfo url;
36 private Component siblingBreadcrumbComponent;
37 private boolean renderAsLink;
38
39
40
41
42
43
44
45
46
47
48
49 @Override
50 public void performApplyModel(View view, Object model, Component parent) {
51 super.performApplyModel(view, model, parent);
52
53 if (url != null) {
54 Map<String, Object> context = new HashMap<String, Object>();
55 context.putAll(view.getContext());
56
57 ExpressionUtils.populatePropertyExpressionsFromGraph(url, false);
58 view.getViewHelperService().getExpressionEvaluator().evaluateExpressionsOnConfigurable(view, url,
59 context);
60 }
61 }
62
63
64
65
66
67
68 @Override
69 public List<Component> getComponentsForLifecycle() {
70 List<Component> components = new ArrayList<Component>();
71
72 components.add(siblingBreadcrumbComponent);
73 components.addAll(super.getComponentsForLifecycle());
74
75 return components;
76 }
77
78
79
80
81
82
83 @BeanTagAttribute(name = "label")
84 public String getLabel() {
85 return label;
86 }
87
88
89
90
91
92
93
94 public void setLabel(String label) {
95 this.label = label;
96 }
97
98
99
100
101
102
103 @BeanTagAttribute(name = "url")
104 public UrlInfo getUrl() {
105 return url;
106 }
107
108
109
110
111
112
113 public void setUrl(UrlInfo urlObject) {
114 this.url = urlObject;
115 }
116
117
118
119
120
121
122
123 @BeanTagAttribute(name = "siblingBreadcrumbComponent", type = BeanTagAttribute.AttributeType.SINGLEBEAN)
124 public Component getSiblingBreadcrumbComponent() {
125 return siblingBreadcrumbComponent;
126 }
127
128
129
130
131
132
133 public void setSiblingBreadcrumbComponent(Component siblingBreadcrumbComponent) {
134 this.siblingBreadcrumbComponent = siblingBreadcrumbComponent;
135 }
136
137
138
139
140
141
142
143 @BeanTagAttribute(name = "renderAsLink")
144 public boolean isRenderAsLink() {
145 return renderAsLink;
146 }
147
148
149
150
151
152
153 public void setRenderAsLink(boolean renderAsLink) {
154 this.renderAsLink = renderAsLink;
155 }
156 }