private User getPupilFromParam(IWContext iwc) throws RemoteException {
    User child = null;
    // Parameter name returning chosen User from SearchUserModule
    this.uniqueUserSearchParam = SearchUserModule.getUniqueUserParameterName(UNIQUE_SUFFIX);

    if (iwc.isParameterSet(PARAM_PUPIL_ID)) {
      String idStr = iwc.getParameter(PARAM_PUPIL_ID);
      int childID = Integer.parseInt(idStr);
      child = getUserBusiness(iwc).getUser(childID);
    } else if (iwc.isParameterSet(this.uniqueUserSearchParam)) {
      int childID = Integer.parseInt(iwc.getParameter(this.uniqueUserSearchParam));
      child = getUserBusiness(iwc).getUser(childID);
    }

    return child;
  }
  public void main(IWContext iwc) throws Exception {
    // iwrb = getResourceBundle(iwc);
    this.form = new Form();
    this.form.setName(SEARCH_FORM_NAME);

    // Parameter name returning chosen User from SearchUserModule
    this.uniqueUserSearchParam = SearchUserModule.getUniqueUserParameterName(UNIQUE_SUFFIX);
    this.form.maintainAllParameters();

    if (iwc.isParameterSet(PARAM_REMOVE_PLACEMENT)
        && !("-1".equals(iwc.getParameter(PARAM_REMOVE_PLACEMENT)))) {
      // A remove placement button is pressed
      String plcIdStr = null;
      try {
        plcIdStr = iwc.getParameter(PARAM_REMOVE_PLACEMENT);
        Integer plcPK = new Integer(plcIdStr);
        getCentralPlacementBusiness(iwc).removeSchoolClassMember(plcPK);
      } catch (Exception e) {
        logWarning("Error erasing SchooClassMember with PK: " + plcIdStr);
        log(e);
      }
    }

    this.pupil = getPupilFromParam(iwc);

    this.form.add(getMainTable());
    setMainTableContent(getSearchTable(iwc));
    setMainTableContent(getPupilTable(iwc, this.pupil));
    setMainTableContent(getPlacementTable(iwc));

    // Add empty bottom that fills the bottom window space
    setMainTableContent(this.transGIF);
    this.mainTable.setHeight(1, this.mainTableRow - 1, Table.HUNDRED_PERCENT);

    add(this.form);
  }