View Javadoc

1   /**
2    * Copyright 2005-2013 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  
20  /**
21   * Component that contains one or more user interface elements and can be placed
22   * into a <code>Container</code>
23   * 
24   * <p>
25   * Provides a wrapper for various user interface elements so they can be treated
26   * uniformly by a container and rendered using a <code>LayoutManager</code>.
27   * Implementations exist for various types of elements and properties to
28   * configure that element.
29   * </p>
30   * 
31   * @author Kuali Rice Team (rice.collab@kuali.org)
32   */
33  public interface Field extends Component {
34  
35  	/**
36  	 * Label text for the field
37  	 * 
38  	 * <p>
39  	 * The label is generally used to identify the field in the user interface
40  	 * </p>
41  	 * 
42  	 * @return String label text
43  	 */
44  	public String getLabel();
45  
46  	/**
47  	 * Setter for the field's label text
48  	 * 
49  	 * @param label
50  	 */
51  	public void setLabel(String label);
52  
53  	/**
54  	 * Short label for the field
55  	 * 
56  	 * <p>
57  	 * For areas of the user interface that have limited area (such as table
58  	 * headers), the short label can be used to identify the field
59  	 * </p>
60  	 * 
61  	 * @return String short label
62  	 */
63  	public String getShortLabel();
64  
65  	/**
66  	 * Setter for the field's short label text
67  	 * 
68  	 * @param shortLabel
69  	 */
70  	public void setShortLabel(String shortLabel);
71  
72  	/**
73  	 * <code>LabelField</code> instance for the field
74  	 * 
75  	 * <p>
76  	 * The label field contains the labeling text for the field in addition to
77  	 * configuration for rendering in the user interface (such as the styling
78  	 * for the label area)
79  	 * </p>
80  	 * 
81  	 * @return LabelField instance
82  	 */
83  	public LabelField getLabelField();
84  
85  	/**
86  	 * Setter for the field's label field
87  	 * 
88  	 * @param labelField
89  	 */
90  	public void setLabelField(LabelField labelField);
91  
92  	/**
93  	 * Indicates whether the contained <code>LabelField</code> has been rendered
94  	 * as part of another field and thus should not be rendered with the
95  	 * attribute
96  	 * 
97  	 * @return boolean true if the label field has been rendered, false if it
98  	 *         should be rendered with the attribute
99  	 */
100 	public boolean isLabelFieldRendered();
101 
102 	/**
103 	 * Setter for the label field rendered indicator
104 	 * 
105 	 * @param labelFieldRendered
106 	 */
107 	public void setLabelFieldRendered(boolean labelFieldRendered);
108 
109     /**
110      * Field Security object that indicates what authorization (permissions) exist for the field
111      *
112      * @return FieldSecurity instance
113      */
114     public FieldSecurity getFieldSecurity();
115 
116 }