code: protected Component getEditableComp(final String _wicketId,
                                          final AbstractUIField _uiField)
          throws EFapsException
      {
          Component ret = null;
          switch (_uiField.getFieldConfiguration().getUIType()) {
              case SNIPPLET:
                  if (!_uiField.getFieldConfiguration().isHideLabel()) {
                      _uiField.getFieldConfiguration().evalLabel(_uiField.getValue(), _uiField.getInstance());
                  }
                  final String html = String.valueOf(_uiField.getValue().getEditValue(
                                  _uiField.getParent().getMode()));
                  ret = new SnippletField(_wicketId, Model.of(html),  _uiField);
                  break;
              case DROPDOWN:
                  final List<DropDownOption> choices = DropDownOption.getChoices(_uiField.getValue()
                                  .getEditValue(_uiField.getParent().getMode()));
                  ret = new DropDownField(_wicketId, Model.of(_uiField), choices);
                  break;
              case RADIO:
                  final List<RadioOption> radios = RadioOption.getChoices(_uiField.getValue()
                                  .getEditValue(_uiField.getParent().getMode()));
                  ret = new RadioField(_wicketId, Model.of(_uiField), radios);
                  break;
              case CHECKBOX:
                  final List<CheckBoxOption> checkBoxes = CheckBoxOption.getChoices(_uiField,
                                  _uiField.getValue().getEditValue(_uiField.getParent().getMode()));
                  ret = new CheckBoxField(_wicketId, Model.of(_uiField), checkBoxes);
                  break;
              case BUTTON:
                  ret = new AjaxPickerButton(_wicketId, Model.<IPickable>of(_uiField));
                  break;
              case NUMBER:
                  ret = new NumberField(_wicketId, Model.of(_uiField), _uiField.getFieldConfiguration());
                  break;
              case UPLOAD:
                  ret = new UploadField(_wicketId, Model.of(_uiField), false);
                  break;
              case UPLOADMULTIPLE:
                  ret = new UploadField(_wicketId, Model.of(_uiField), true);
                  break;
              default:
                  break;
          }
          return ret;
      }
docs: Gets the editable comp.
  
  @param _wicketId the wicket id
  @param _uiField the ui field
  @return the editable comp
  @throws EFapsException on error