View Javadoc

1   /**
2    * Copyright 2010 The Kuali Foundation Licensed under the
3    * Educational Community License, Version 2.0 (the "License"); you may
4    * not use this file except in compliance with the License. You may
5    * obtain a copy of the License at
6    *
7    * http://www.osedu.org/licenses/ECL-2.0
8    *
9    * Unless required by applicable law or agreed to in writing,
10   * software distributed under the License is distributed on an "AS IS"
11   * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12   * or implied. See the License for the specific language governing
13   * permissions and limitations under the License.
14   */
15  
16  package org.kuali.student.common.ui.client.widgets;
17  
18  import com.google.gwt.event.dom.client.BlurEvent;
19  import com.google.gwt.event.dom.client.BlurHandler;
20  import com.google.gwt.event.dom.client.FocusEvent;
21  import com.google.gwt.event.dom.client.FocusHandler;
22  import com.google.gwt.event.logical.shared.ValueChangeEvent;
23  import com.google.gwt.event.logical.shared.ValueChangeHandler;
24  import com.google.gwt.user.client.ui.CheckBox;
25  
26  
27  /**
28   * KSCheckBox wraps gwt Checkbox.  This class provides most of the same functionality, but sets KS css styles
29   * for its default look and a variety of checkbox events (for improved browser compatibility and customizability).
30   * @author Kuali Student Team
31   *
32   */
33  public class KSCheckBox extends CheckBox{
34  
35      /**
36       * Creates a check box with no label.
37       *
38       */
39      public KSCheckBox(){
40          super();
41          setupDefaultStyle();
42      }
43  
44      /**
45       * Creates a check box with the specified text label.
46       *
47       * @param label the check box's label
48       */
49      public KSCheckBox(String label){
50          super(label);
51          setupDefaultStyle();
52      }
53  
54      /**
55       * This method sets the default style for the checkbox and checkbox events.
56       *
57       */
58      private void setupDefaultStyle(){
59          addStyleName("KS-Checkbox");
60  
61          this.addBlurHandler(new BlurHandler(){
62              public void onBlur(BlurEvent event) {
63                  KSCheckBox.this.removeStyleName("KS-Checkbox-Focus");
64  
65              }
66          });
67  
68          this.addFocusHandler(new FocusHandler(){
69              public void onFocus(FocusEvent event) {
70                  KSCheckBox.this.addStyleName("KS-Checkbox-Focus");
71  
72              }
73          });
74  
75          //hover does not function fully for check boxes as is
76  /*        this.addMouseOverHandler(new MouseOverHandler(){
77              public void onMouseOver(MouseOverEvent event) {
78                  KSCheckBox.this.addStyleName(KSStyles.KS_CHECKBOX_HOVER_STYLE);
79  
80              }
81          });
82  
83          this.addMouseOutHandler(new MouseOutHandler(){
84  
85              public void onMouseOut(MouseOutEvent event) {
86                  KSCheckBox.this.removeStyleName(KSStyles.KS_CHECKBOX_HOVER_STYLE);
87  
88              }
89  
90          });*/
91  
92          this.addValueChangeHandler(new ValueChangeHandler<Boolean>(){
93              @Override
94  
95                  public void onValueChange(ValueChangeEvent<Boolean> event) {
96                      if(KSCheckBox.this.getValue()){
97                          KSCheckBox.this.addStyleName("KS-Checkbox-Checked");
98                      }
99                      else{
100                         KSCheckBox.this.removeStyleName("KS-Checkbox-Checked");
101                     }
102 
103                 }
104             });
105     }
106 
107 }