1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.krad.uif.element;
17
18 import java.util.List;
19
20 import org.apache.commons.lang.StringUtils;
21 import org.kuali.rice.krad.datadictionary.parse.BeanTag;
22 import org.kuali.rice.krad.datadictionary.parse.BeanTagAttribute;
23 import org.kuali.rice.krad.uif.CssConstants;
24 import org.kuali.rice.krad.uif.component.Component;
25 import org.kuali.rice.krad.uif.lifecycle.ViewLifecycle;
26 import org.kuali.rice.krad.uif.view.View;
27
28
29
30
31
32
33
34
35
36
37 @BeanTag(name = "viewHeader-bean", parent = "Uif-ViewHeader")
38 public class ViewHeader extends Header {
39
40 private Message areaTitleMessage;
41 private Message supportTitleMessage;
42 private Message metadataMessage;
43 private boolean sticky;
44
45
46
47
48
49
50
51 @Override
52 public void performFinalize(Object model, Component parent) {
53 super.performFinalize(model, parent);
54
55 View view = ViewLifecycle.getActiveLifecycle().getView();
56 if (supportTitleMessage != null &&
57 view.getCurrentPage() != null && view.getCurrentPage().getHeader() != null &&
58 view.isUnifiedHeader()) {
59 Header pageHeader = view.getCurrentPage().getHeader();
60
61
62 pageHeader.addStyleClass(CssConstants.Classes.HIDE_HEADER_TEXT_STYLE_CLASS);
63
64 Message pageHeaderMessage = pageHeader.getRichHeaderMessage();
65
66 if (pageHeaderMessage != null && StringUtils.isBlank(supportTitleMessage.getMessageText())) {
67 pageHeaderMessage.addStyleClass(CssConstants.Classes.SUPPORT_TITLE_STYLE_CLASS);
68
69
70 supportTitleMessage = pageHeaderMessage;
71 } else if (StringUtils.isNotBlank(pageHeader.getHeaderText()) && StringUtils.isBlank(
72 supportTitleMessage.getMessageText())) {
73
74 supportTitleMessage.setMessageText(pageHeader.getHeaderText().trim());
75 }
76 }
77 }
78
79
80
81
82 @Override
83 public List<Component> getComponentsForLifecycle() {
84 List<Component> components = super.getComponentsForLifecycle();
85
86 components.add(areaTitleMessage);
87 components.add(supportTitleMessage);
88 components.add(metadataMessage);
89
90 return components;
91 }
92
93
94
95
96
97
98
99 @BeanTagAttribute(name = "areaTitleText")
100 public String getAreaTitleText() {
101 return areaTitleMessage.getMessageText();
102 }
103
104
105
106
107
108
109 public void setAreaTitleText(String areaTitle) {
110 areaTitleMessage.setMessageText(areaTitle);
111 }
112
113
114
115
116
117
118 @BeanTagAttribute(name = "areaTitleMessage", type = BeanTagAttribute.AttributeType.SINGLEBEAN)
119 public Message getAreaTitleMessage() {
120 return areaTitleMessage;
121 }
122
123
124
125
126
127
128 public void setAreaTitleMessage(Message areaTitleMessage) {
129 this.areaTitleMessage = areaTitleMessage;
130 }
131
132
133
134
135
136
137
138
139
140 @BeanTagAttribute(name = "supportTitleText")
141 public String getSupportTitleText() {
142 return supportTitleMessage.getMessageText();
143 }
144
145
146
147
148
149
150 public void setSupportTitleText(String supportTitle) {
151 supportTitleMessage.setMessageText(supportTitle);
152 }
153
154
155
156
157
158
159
160
161
162
163 @BeanTagAttribute(name = "supportTitleMessage", type = BeanTagAttribute.AttributeType.SINGLEBEAN)
164 public Message getSupportTitleMessage() {
165 return supportTitleMessage;
166 }
167
168
169
170
171
172
173 public void setSupportTitleMessage(Message supportTitleMessage) {
174 this.supportTitleMessage = supportTitleMessage;
175 }
176
177
178
179
180
181
182
183 @BeanTagAttribute(name = "metadataText")
184 public String getMetadataText() {
185 return metadataMessage.getMessageText();
186 }
187
188
189
190
191
192
193 public void setMetadataText(String metadataText) {
194 metadataMessage.setMessageText(metadataText);
195 }
196
197
198
199
200
201
202
203 @BeanTagAttribute(name = "metadataMessage", type = BeanTagAttribute.AttributeType.SINGLEBEAN)
204 public Message getMetadataMessage() {
205 return metadataMessage;
206 }
207
208
209
210
211
212
213 public void setMetadataMessage(Message metadataMessage) {
214 this.metadataMessage = metadataMessage;
215 }
216
217
218
219
220
221
222 @BeanTagAttribute(name = "sticky")
223 public boolean isSticky() {
224 return sticky;
225 }
226
227
228
229
230
231
232 public void setSticky(boolean sticky) {
233 this.sticky = sticky;
234 }
235
236
237
238
239 @Override
240 protected <T> void copyProperties(T component) {
241 super.copyProperties(component);
242
243 ViewHeader viewHeaderCopy = (ViewHeader) component;
244
245 if (this.areaTitleMessage != null) {
246 viewHeaderCopy.setAreaTitleMessage((Message) this.areaTitleMessage.copy());
247 }
248
249 if (this.supportTitleMessage != null) {
250 viewHeaderCopy.setSupportTitleMessage((Message) this.supportTitleMessage.copy());
251 }
252
253 if (this.metadataMessage != null) {
254 viewHeaderCopy.setMetadataMessage((Message) this.metadataMessage.copy());
255 }
256
257 viewHeaderCopy.setSticky(this.sticky);
258 }
259 }