View Javadoc

1   /**
2    * Copyright 2005-2012 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.rice.krad.uif.field;
17  
18  import org.kuali.rice.krad.uif.component.Component;
19  import org.kuali.rice.krad.uif.view.View;
20  
21  /**
22   * Field that contains a header element and optionally a <code>Group</code> to
23   * present along with the header text
24   *
25   * <p>
26   * Generally the group is used to display content to the right of the header,
27   * such as links for the group or other information
28   * </p>
29   *
30   * @author Kuali Rice Team (rice.collab@kuali.org)
31   */
32  public class HeaderField extends FieldGroup {
33      private static final long serialVersionUID = -6950408292923393244L;
34  
35      private String headerText;
36      private String headerLevel;
37      private String headerStyleClasses;
38      private String headerStyle;
39      private String headerDivStyleClasses;
40      private String headerDivStyle;
41  
42      public HeaderField() {
43          super();
44      }
45  
46      /**
47       * The following finalization is performed:
48       *
49       * <ul>
50       * <li>Set render on group to false if no items are configured</li>
51       * </ul>
52       *
53       * @see org.kuali.rice.krad.uif.component.ComponentBase#performFinalize(org.kuali.rice.krad.uif.view.View,
54       *      java.lang.Object, org.kuali.rice.krad.uif.component.Component)
55       */
56      @Override
57      public void performFinalize(View view, Object model, Component parent) {
58          super.performFinalize(view, model, parent);
59  
60          // don't render header group if no items were configured
61          if ((getGroup() != null) && (getGroup().getItems().isEmpty())) {
62              getGroup().setRender(false);
63          }
64      }
65  
66      /**
67       * Text that should be displayed on the header
68       *
69       * @return String header text
70       */
71      public String getHeaderText() {
72          return this.headerText;
73      }
74  
75      /**
76       * Setter for the header text
77       *
78       * @param headerText
79       */
80      public void setHeaderText(String headerText) {
81          this.headerText = headerText;
82      }
83  
84      /**
85       * HTML header level (h1 ... h6) that should be applied to the header text
86       *
87       * @return String header level
88       */
89      public String getHeaderLevel() {
90          return this.headerLevel;
91      }
92  
93      /**
94       * Setter for the header level
95       *
96       * @param headerLevel
97       */
98      public void setHeaderLevel(String headerLevel) {
99          this.headerLevel = headerLevel;
100     }
101 
102     /**
103      * Style class that should be applied to the header text (h tag)
104      *
105      * <p>
106      * Note the style class given here applies to only the header text. The
107      * style class property inherited from the <code>Component</code> interface
108      * can be used to set the class for the whole field div (which could
109      * include a nested <code>Group</code>)
110      * </p>
111      *
112      * @return String style class
113      * @see org.kuali.rice.krad.uif.Component.getStyleClasses()
114      */
115     public String getHeaderStyleClasses() {
116         return this.headerStyleClasses;
117     }
118 
119     /**
120      * Setter for the header style class
121      *
122      * @param headerStyleClasses
123      */
124     public void setHeaderStyleClasses(String headerStyleClasses) {
125         this.headerStyleClasses = headerStyleClasses;
126     }
127 
128     /**
129      * Style that should be applied to the header text
130      *
131      * <p>
132      * Note the style given here applies to only the header text. The style
133      * property inherited from the <code>Component</code> interface can be used
134      * to set the style for the whole field div (which could include a nested
135      * <code>Group</code>)
136      * </p>
137      *
138      * @return String header style
139      * @see org.kuali.rice.krad.uif.Component.getStyle()
140      */
141     public String getHeaderStyle() {
142         return this.headerStyle;
143     }
144 
145     /**
146      * Setter for the header style
147      *
148      * @param headerStyle
149      */
150     public void setHeaderStyle(String headerStyle) {
151         this.headerStyle = headerStyle;
152     }
153 
154     /**
155      * Style class that should be applied to the header div
156      *
157      * <p>
158      * Note the style class given here applies to the div surrounding the header tag only
159      * </p>
160      *
161      * @return String style class
162      * @see org.kuali.rice.krad.uif.Component.getStyleClasses()
163      */
164     public String getHeaderDivStyleClasses() {
165         return headerDivStyleClasses;
166     }
167 
168     /**
169      * Setter for the header div class
170      *
171      * @param headerStyleClasses
172      */
173     public void setHeaderDivStyleClasses(String headerDivStyleClasses) {
174         this.headerDivStyleClasses = headerDivStyleClasses;
175     }
176 
177     /**
178      * Style that should be applied to the header div
179      *
180      * <p>
181      * Note the style given here applies to the div surrounding the header tag only
182      * </p>
183      *
184      * @return String header style
185      * @see org.kuali.rice.krad.uif.Component.getStyle()
186      */
187     public String getHeaderDivStyle() {
188         return headerDivStyle;
189     }
190 
191     /**
192      * Setter for the header div
193      *
194      * @param headerStyle
195      */
196     public void setHeaderDivStyle(String headerDivStyle) {
197         this.headerDivStyle = headerDivStyle;
198     }
199 }