@Override
  public void bind() {
    Class<?> eventType = actionBinding.getEventType();
    eventAction = actionBinding.getEventAction();

    if (eventType == null) {
      eventType = DEFAULT_EVENT_TYPE;
    }
    if (eventType == ClickHandler.class) {
      clickHandler =
          new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
              if (eventAction.equals("onClick") || eventAction.equals("")) {
                actionBinding.callAction(event);
              }
            }
          };

      radioButton.addClickHandler(clickHandler);
    }

    if (eventType == BlurHandler.class) {
      blurHandler =
          new BlurHandler() {

            @Override
            public void onBlur(BlurEvent event) {
              if (eventAction.equals("onBlur") || eventAction.equals("")) {
                actionBinding.callAction(event);
              }
            }
          };

      radioButton.addBlurHandler(blurHandler);
    }
    if (eventType == DoubleClickHandler.class) {
      doubleClickHandler =
          new DoubleClickHandler() {

            @Override
            public void onDoubleClick(DoubleClickEvent event) {
              if (eventAction.equals("onDoubleClick") || eventAction.equals("")) {

                actionBinding.callAction(event);
              }
            }
          };
      radioButton.addDoubleClickHandler(doubleClickHandler);
    }
    if (eventType == FocusHandler.class) {
      focusHandler =
          new FocusHandler() {

            @Override
            public void onFocus(FocusEvent event) {

              if (eventAction.equals("onFocus") || eventAction.equals("")) {
                actionBinding.callAction(event);
              }
            }
          };

      radioButton.addFocusHandler(focusHandler);
    }

    if (eventType == GestureChangeHandler.class) {

      gestureChangeHandler =
          new GestureChangeHandler() {

            @Override
            public void onGestureChange(GestureChangeEvent event) {
              if (eventAction.equals("onGestureChange") || eventAction.equals("")) {
                actionBinding.callAction(event);
              }
            }
          };

      radioButton.addGestureChangeHandler(gestureChangeHandler);
    }

    if (eventType == KeyDownHandler.class) {

      keyDownHandler =
          new KeyDownHandler() {

            @Override
            public void onKeyDown(KeyDownEvent event) {

              if (eventAction.equals("onKeyDown") || eventAction.equals("")) {
                actionBinding.callAction(event);
              }
            }
          };

      radioButton.addKeyDownHandler(keyDownHandler);
    }

    if (eventType == KeyPressHandler.class) {
      keyPressHandler =
          new KeyPressHandler() {

            @Override
            public void onKeyPress(KeyPressEvent event) {
              if (eventAction.equals("onKeyPress") || eventAction.equals("")) {
                actionBinding.callAction(event);
              }
            }
          };

      radioButton.addKeyPressHandler(keyPressHandler);
    }

    if (eventType == KeyUpHandler.class) {
      keyUpHandler =
          new KeyUpHandler() {

            @Override
            public void onKeyUp(KeyUpEvent event) {

              if (eventAction.equals("onKeyUp") || eventAction.equals("")) {
                actionBinding.callAction(event);
              }
            }
          };

      radioButton.addKeyUpHandler(keyUpHandler);
    }

    // **********************************************************************

    if (eventType == MouseDownHandler.class) {
      mouseDownHandler =
          new MouseDownHandler() {

            @Override
            public void onMouseDown(MouseDownEvent event) {

              if (eventAction.equals("onMouseDown") || eventAction.equals("")) {
                actionBinding.callAction(event);
              }
            }
          };

      radioButton.addMouseDownHandler(mouseDownHandler);
    }

    if (eventType == MouseMoveHandler.class) {
      mouseMoveHandler =
          new MouseMoveHandler() {

            @Override
            public void onMouseMove(MouseMoveEvent event) {
              if (eventAction.equals("onMouseMove") || eventAction.equals("")) {
                actionBinding.callAction(event);
              }
            }
          };
      radioButton.addMouseMoveHandler(mouseMoveHandler);
    }

    if (eventType == KeyUpHandler.class) {
      mouseOutHandler =
          new MouseOutHandler() {

            @Override
            public void onMouseOut(MouseOutEvent event) {

              if (eventAction.equals("onMouseOut") || eventAction.equals("")) {
                actionBinding.callAction(event);
              }
            }
          };
      radioButton.addMouseOutHandler(mouseOutHandler);
    }

    if (eventType == MouseOverHandler.class) {
      mouseOverHandler =
          new MouseOverHandler() {

            @Override
            public void onMouseOver(MouseOverEvent event) {

              if (eventAction.equals("onMouseOver") || eventAction.equals("")) {
                actionBinding.callAction(event);
              }
            }
          };

      radioButton.addMouseOverHandler(mouseOverHandler);
    }

    if (eventType == MouseUpHandler.class) {
      mouseUpHandler =
          new MouseUpHandler() {

            @Override
            public void onMouseUp(MouseUpEvent event) {

              if (eventAction.equals("onMouseUp") || eventAction.equals("")) {
                actionBinding.callAction(event);
              }
            }
          };

      radioButton.addMouseUpHandler(mouseUpHandler);
    }

    if (eventType == MouseWheelHandler.class) {
      mouseWheelHandler =
          new MouseWheelHandler() {

            @Override
            public void onMouseWheel(MouseWheelEvent event) {

              if (eventAction.equals("onMouseWheel") || eventAction.equals("")) {
                actionBinding.callAction(event);
              }
            }
          };

      radioButton.addMouseWheelHandler(mouseWheelHandler);
    }

    if (eventType == KeyUpHandler.class) {

      touchCancelHandler =
          new TouchCancelHandler() {

            @Override
            public void onTouchCancel(TouchCancelEvent event) {
              if (eventAction.equals("onTouchCancel") || eventAction.equals("")) {
                actionBinding.callAction(event);
              }
            }
          };
      radioButton.addTouchCancelHandler(touchCancelHandler);
    }

    if (eventType == TouchEndHandler.class) {
      touchEndHandler =
          new TouchEndHandler() {

            @Override
            public void onTouchEnd(TouchEndEvent event) {

              if (eventAction.equals("onTouchEnd") || eventAction.equals("")) {
                actionBinding.callAction(event);
              }
            }
          };

      radioButton.addTouchEndHandler(touchEndHandler);
    }

    if (eventType == KeyUpHandler.class) {
      touchMoveHandler =
          new TouchMoveHandler() {

            @Override
            public void onTouchMove(TouchMoveEvent event) {
              if (eventAction.equals("onTouchMove") || eventAction.equals("")) {
                actionBinding.callAction(event);
              }
            }
          };
      radioButton.addTouchMoveHandler(touchMoveHandler);
    }

    if (eventType == TouchStartHandler.class) {
      touchStartHandler =
          new TouchStartHandler() {

            @Override
            public void onTouchStart(TouchStartEvent event) {

              if (eventAction.equals("onTouchStart") || eventAction.equals("")) {
                actionBinding.callAction(event);
              }
            }
          };
      radioButton.addTouchStartHandler(touchStartHandler);
    }
  }