001 package org.gwtbootstrap3.client.ui.impl;
002
003 /*
004 * #%L
005 * GwtBootstrap3
006 * %%
007 * Copyright (C) 2013 - 2014 GwtBootstrap3
008 * %%
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 *
013 * http://www.apache.org/licenses/LICENSE-2.0
014 *
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 * #L%
021 */
022
023 import org.gwtbootstrap3.client.ui.SimpleRadioButton;
024
025 import com.google.gwt.event.dom.client.BlurEvent;
026 import com.google.gwt.event.dom.client.BlurHandler;
027 import com.google.gwt.event.dom.client.ClickEvent;
028 import com.google.gwt.event.dom.client.ClickHandler;
029 import com.google.gwt.event.dom.client.KeyDownEvent;
030 import com.google.gwt.event.dom.client.KeyDownHandler;
031 import com.google.gwt.event.dom.client.MouseUpEvent;
032 import com.google.gwt.event.dom.client.MouseUpHandler;
033 import com.google.gwt.event.logical.shared.ValueChangeEvent;
034 import com.google.gwt.user.client.ui.SimpleCheckBox;
035
036 public class SimpleRadioButtonImplIE8 extends SimpleRadioButtonImpl {
037
038 private static class Handler implements ClickHandler, MouseUpHandler, BlurHandler, KeyDownHandler {
039
040 private final SimpleCheckBox simpleRadioButton;
041 private Boolean oldValue;
042
043 public Handler(SimpleRadioButton simpleRadioButton) {
044 this.simpleRadioButton = simpleRadioButton;
045 }
046
047 @Override
048 public void onClick(ClickEvent event) {
049 ValueChangeEvent.fireIfNotEqual(simpleRadioButton, oldValue,
050 simpleRadioButton.getValue());
051 }
052
053 @Override
054 public void onKeyDown(KeyDownEvent event) {
055 oldValue = simpleRadioButton.getValue();
056 }
057
058 @Override
059 public void onBlur(BlurEvent event) {
060 oldValue = simpleRadioButton.getValue();
061 }
062
063 @Override
064 public void onMouseUp(MouseUpEvent event) {
065 oldValue = simpleRadioButton.getValue();
066 }
067
068 }
069
070 @Override
071 public void ensureDomEventHandlers(SimpleRadioButton simpleRadioButton) {
072 Handler handler = new Handler(simpleRadioButton);
073 simpleRadioButton.addClickHandler(handler);
074 simpleRadioButton.addMouseUpHandler(handler);
075 simpleRadioButton.addBlurHandler(handler);
076 simpleRadioButton.addKeyDownHandler(handler);
077 }
078
079 }