code: @Override
      public void setValue(String value, boolean fireEvents) {
          int newIdx = value == null ? 0 : value.equals(getValue1()) ? 0
                                         : value.equals(getValue2()) ? 1 : 0;
          int oldIdx = getSelectedIndex();
          String oldVal = fireEvents ? getValue() : null;
          internVal = value;
          if (oldIdx != newIdx) {
              inSetValue = true;
              try {
                  setSelectedIndex(newIdx);
              } finally {
                  inSetValue = false;
              }
          }
  
          if (fireEvents) {
              boolean eq = internVal == oldVal || internVal != null && internVal.equals(oldVal);
              if (!eq) ValueChangeEvent.fire(this, internVal);
          }
      }
docs: Sets the currently selected value.
  
  @param fireEvents - if false then ValueChangeEvent won't be raised (though ChangeEvent will be raised anyway).