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.widget;
17
18 import org.kuali.rice.krad.uif.component.ClientSideState;
19
20 /**
21 * Decorates a group with collapse/expand functionality
22 *
23 * @author Kuali Rice Team (rice.collab@kuali.org)
24 */
25 public class Disclosure extends WidgetBase {
26 private static final long serialVersionUID = 1238789480161901850L;
27
28 private String collapseImageSrc;
29 private String expandImageSrc;
30
31 private int animationSpeed;
32
33 @ClientSideState
34 private boolean defaultOpen;
35
36 private boolean renderImage;
37
38 public Disclosure() {
39 super();
40
41 defaultOpen = true;
42 renderImage = true;
43 }
44
45 /**
46 * Path to the images that should be displayed to collapse the group
47 *
48 * @return String image path
49 */
50 public String getCollapseImageSrc() {
51 return this.collapseImageSrc;
52 }
53
54 /**
55 * Setter for the collapse image path
56 *
57 * @param collapseImageSrc
58 */
59 public void setCollapseImageSrc(String collapseImageSrc) {
60 this.collapseImageSrc = collapseImageSrc;
61 }
62
63 /**
64 * Path to the images that should be displayed to expand the group
65 *
66 * @return String image path
67 */
68 public String getExpandImageSrc() {
69 return this.expandImageSrc;
70 }
71
72 /**
73 * Setter for the expand image path
74 *
75 * @param collapseImageSrc
76 */
77 public void setExpandImageSrc(String expandImageSrc) {
78 this.expandImageSrc = expandImageSrc;
79 }
80
81 /**
82 * Gives the speed for the open/close animation, a smaller int will result
83 * in a faster animation
84 *
85 * @return int animation speed
86 */
87 public int getAnimationSpeed() {
88 return this.animationSpeed;
89 }
90
91 /**
92 * Setter for the open/close animation speed
93 *
94 * @param animationSpeed
95 */
96 public void setAnimationSpeed(int animationSpeed) {
97 this.animationSpeed = animationSpeed;
98 }
99
100 /**
101 * Indicates whether the group should be initially open
102 *
103 * @return boolean true if group should be initially open, false if it
104 * should be closed
105 */
106 public boolean isDefaultOpen() {
107 return this.defaultOpen;
108 }
109
110 /**
111 * Setter for the default open indicator
112 *
113 * @param defaultOpen
114 */
115 public void setDefaultOpen(boolean defaultOpen) {
116 this.defaultOpen = defaultOpen;
117 }
118
119 /**
120 * Indicates whether the expand/collapse image should be rendered for the closure, if set to false only
121 * the group title will be clickable
122 *
123 * @return boolean true to render the expand/colapse image false to not
124 */
125 public boolean isRenderImage() {
126 return renderImage;
127 }
128
129 /**
130 * Setter for the render expand/collapse image indicator
131 *
132 * @param renderImage
133 */
134 public void setRenderImage(boolean renderImage) {
135 this.renderImage = renderImage;
136 }
137 }