/**
   * Collect user input to fill value of parameter.
   *
   * @return true if all data are will entered
   */
  @SuppressWarnings("unchecked")
  private boolean collectInputs() {
    LinearLayout root = (LinearLayout) findViewById(R.id.root);
    int indexView = 1;

    for (Parameter param : parameters) {

      switch (param.getType()) {
        case DATE_PICKER:
          Spinner dp = (Spinner) root.getChildAt(indexView);
          param.setValue(dp.getSelectedItem());
          break;
        case FIELD_SEPARATOR:
          Spinner spf = (Spinner) root.getChildAt(indexView);
          param.setValue(spf.getSelectedItem());
          break;
        case DECIMAL_SEPARATOR:
          Spinner sp = (Spinner) root.getChildAt(indexView);
          param.setValue(sp.getSelectedItem());
          break;
        case BOOLEAN:
          CheckBox chk = (CheckBox) root.getChildAt(indexView);
          param.setValue(chk.isChecked());
          break;
        case DATE_FORMAT:
          Spinner spd = (Spinner) root.getChildAt(indexView);
          param.setValue(spd.getSelectedItem());
          break;
        case FILE_URI:
          Button bt = (Button) root.getChildAt(indexView);
          boolean ok = false;
          try {
            URI uri = new URI("" + bt.getText());
            if (new File(uri).exists()) {
              param.setValue(uri);
              ok = true;
            }
          } catch (Throwable e) {
          }
          if (!ok) {
            Toast.makeText(
                    this,
                    getResources()
                        .getString(
                            R.string.mandatory_field,
                            ((TextView) root.getChildAt(indexView - 1)).getText()),
                    Toast.LENGTH_LONG)
                .show();

            return false;
          }
          break;
      }
      indexView += 3;
    }
    return true;
  }