1 /**
2 * Copyright 2005-2014 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.container;
17
18 import org.kuali.rice.krad.uif.widget.Disclosure;
19 import org.kuali.rice.krad.uif.widget.Scrollpane;
20
21 /**
22 * Common interface for group components.
23 *
24 * @author Kuali Rice Team (rice.collab@kuali.org)
25 */
26 public interface Group extends Container {
27
28 /**
29 * Binding prefix string to set on each of the groups <code>DataField</code> instances
30 *
31 * <p>
32 * As opposed to setting the bindingPrefix on each attribute field instance,
33 * it can be set here for the group. During initialize the string will then
34 * be set on each attribute field instance if the bindingPrefix is blank and
35 * not a form field
36 * </p>
37 *
38 * @return String binding prefix to set
39 */
40 String getFieldBindByNamePrefix();
41
42 /**
43 * Setter for the field binding prefix
44 *
45 * @param fieldBindByNamePrefix
46 */
47 void setFieldBindByNamePrefix(String fieldBindByNamePrefix);
48
49 /**
50 * Object binding path to set on each of the group's
51 * <code>InputField</code> instances
52 *
53 * <p>
54 * When the attributes of the group belong to a object whose path is
55 * different from the default then this property can be given to set each of
56 * the attributes instead of setting the model path on each one. The object
57 * path can be overridden at the attribute level. The object path is set to
58 * the fieldBindingObjectPath during the initialize phase.
59 * </p>
60 *
61 * @return String model path to set
62 * @see org.kuali.rice.krad.uif.component.BindingInfo#getBindingObjectPath()
63 */
64 String getFieldBindingObjectPath();
65
66 /**
67 * Setter for the field object binding path
68 *
69 * @param fieldBindingObjectPath
70 */
71 void setFieldBindingObjectPath(String fieldBindingObjectPath);
72
73 /**
74 * Disclosure widget that provides collapse/expand functionality for the
75 * group
76 *
77 * @return Disclosure instance
78 */
79 Disclosure getDisclosure();
80
81 /**
82 * Setter for the group's disclosure instance
83 *
84 * @param disclosure
85 */
86 void setDisclosure(Disclosure disclosure);
87
88 /**
89 * Scrollpane widget that provides scrolling functionality for the
90 * group
91 *
92 * @return Scrollpane instance
93 */
94 Scrollpane getScrollpane();
95
96 /**
97 * Setter for the group's scrollpane instance
98 *
99 * @param scrollpane
100 */
101 void setScrollpane(Scrollpane scrollpane);
102
103 /**
104 * Determine the group should be rendered on initial load, or if a loading message should be rendered instead.
105 *
106 * @return True if a loading message should be rendered, false if the group should be rendered now.
107 */
108 boolean isRenderLoading();
109
110 /**
111 * Getter for headerText
112 *
113 * @return headerText
114 */
115 String getHeaderText();
116
117 /**
118 * Setter for headerText.
119 *
120 * @param headerText value
121 */
122 void setHeaderText(String headerText);
123
124 /**
125 * Setter for renderFooter.
126 *
127 * @param renderFooter value
128 */
129 void setRenderFooter(boolean renderFooter);
130
131 /**
132 * This method ...
133 *
134 * @return
135 */
136 String getWrapperTag();
137
138 /**
139 * This method ...
140 *
141 * @param footer
142 */
143 void setWrapperTag(String footer);
144
145 }