Example #1
0
  public static <T> void handle(Form<T> form, T formModel) {

    for (String key : form.getViews().keySet()) {
      View view = form.getViews().get(key);
      for (Field f : formModel.getClass().getDeclaredFields()) {

        if (!f.isAnnotationPresent(FormView.class)) continue;

        f.setAccessible(true);

        if (f.getType().equals(String.class)) {
          try {
            f.set(formModel, TypeUtils.getTypedValue(new String(), f.getType()));
          } catch (Exception e) {
          }
        }

        if (!key.equals(f.getName())) continue;

        if (view instanceof EditText) bindEditTextValue(view, formModel, f);
        else if (view instanceof Spinner) bindSpinnerValue(view, formModel, f);
        else if (view instanceof CheckBox
            || view instanceof RadioButton
            || view instanceof ToggleButton) bindCompoundButtonValue(view, formModel, f);
        else if (view instanceof DatePicker) bindDatePickerValue(view, formModel, f);
        else if (view instanceof TimePicker) bindTimePickerValue(view, formModel, f);
      }
    }
  }
Example #2
0
  @Override
  public <T> T handle(Class<T> varClass, Object context) {
    if (App.getContainer().isRegistered(varClass, "form_model_" + varClass.getName()))
      return App.getContainer().getObject(varClass, "form_model_" + varClass.getName());

    T returnObject = null;

    try {
      returnObject = varClass.newInstance();
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
    for (final Field f2 : varClass.getDeclaredFields()) {
      if (f2.isAnnotationPresent(FormView.class)) {
        f2.setAccessible(true);

        if (f2.getType().equals(String.class)) {
          try {
            f2.set(returnObject, TypeUtils.getTypedValue(new String(), f2.getType()));
          } catch (Exception e) {
          }
        }

        if (f2.getAnnotation(FormView.class).id() == 0) continue;

        View view = null;
        int vid = f2.getAnnotation(FormView.class).id();
        if (context instanceof Activity) view = ((Activity) context).findViewById(vid);
        else if (context instanceof Fragment)
          view = ((Fragment) context).getView().findViewById(vid);

        if (view instanceof EditText) bindEditTextValue(view, returnObject, f2);
        else if (view instanceof Spinner) bindSpinnerValue(view, returnObject, f2);
        else if (view instanceof CheckBox
            || view instanceof RadioButton
            || view instanceof ToggleButton) bindCompoundButtonValue(view, returnObject, f2);
        else if (view instanceof DatePicker) bindDatePickerValue(view, returnObject, f2);
        else if (view instanceof TimePicker) bindTimePickerValue(view, returnObject, f2);
      }
    }

    App.getContainer().registerObject("form_model_" + varClass.getName(), returnObject);
    return returnObject;
  }