private void populateScreenFromData() {
    MassageVo voMassage = form.getLocalContext().getCurrentMassageVo();

    if (voMassage == null) return;

    displayHeaderData();

    // Soft Tissue
    if (voMassage.getSoftTissueMassageIsNotNull()) {
      for (int i = 0; i < voMassage.getSoftTissueMassage().size(); i++) {
        SoftTissueMassageVo voSoftTissueMassage = voMassage.getSoftTissueMassage().get(i);

        GenForm.grdTissueRow rowTissue = form.grdTissue().getRows().newRow();

        rowTissue.setColTypeofMassage(
            voSoftTissueMassage.getSTMassageTypeIsNotNull()
                ? voSoftTissueMassage.getSTMassageType()
                : null);
        rowTissue.setColArea(
            voSoftTissueMassage.getSTMassageAreaIsNotNull()
                ? voSoftTissueMassage.getSTMassageArea()
                : null);
        rowTissue.setColAreaDescription(
            voSoftTissueMassage.getSTMassageAreaDescriptionIsNotNull()
                ? voSoftTissueMassage.getSTMassageAreaDescription().toString()
                : null);
        rowTissue.setColLaterality(
            voSoftTissueMassage.getLateralityIsNotNull()
                ? voSoftTissueMassage.getLaterality()
                : null);
        rowTissue.setColDuration(
            voSoftTissueMassage.getDurationIsNotNull() ? voSoftTissueMassage.getDuration() : null);
        rowTissue.setColNotes(
            voSoftTissueMassage.getNotesIsNotNull() ? voSoftTissueMassage.getNotes() : null);

        rowTissue.setValue(voSoftTissueMassage);
      }
    }

    // Deep Friction
    if (voMassage.getDeepFrictionIsNotNull()) {
      for (int i = 0; i < voMassage.getDeepFriction().size(); i++) {
        DeepFrictionMassageVo voDeepFrictionMassage = voMassage.getDeepFriction().get(i);

        GenForm.grdFrictionRow rowFriction = form.grdFriction().getRows().newRow();
        loadLookupsIntoGrid(rowFriction);

        rowFriction.getColArea().setValue(voDeepFrictionMassage.getDFMassageArea());
        // if(voDeepFrictionMassage.getDFMassageAreaIsNotNull())
        //	rowFriction.getColArea().newRow(voDeepFrictionMassage.getDFMassageArea(),
        // voDeepFrictionMassage.getDFMassageArea().toString());

        loadStructure(rowFriction);

        rowFriction
            .getColStructure()
            .setValue(
                voDeepFrictionMassage.getDFMassageStructureIsNotNull()
                    ? (DeepFrictionMassageAreaStructure)
                        voDeepFrictionMassage.getDFMassageStructure()
                    : null);

        rowFriction.setColLaterality(
            voDeepFrictionMassage.getLateralityIsNotNull()
                ? voDeepFrictionMassage.getLaterality()
                : null);
        rowFriction.setColDuration(
            voDeepFrictionMassage.getDurationIsNotNull()
                ? voDeepFrictionMassage.getDuration()
                : null);
        rowFriction.setColNotes(
            voDeepFrictionMassage.getNotesIsNotNull() ? voDeepFrictionMassage.getNotes() : null);

        rowFriction.setValue(voDeepFrictionMassage);
      }
    }

    // Connective Tissue
    if (voMassage.getConnectiveTissueMassageIsNotNull()) {
      for (int i = 0; i < voMassage.getConnectiveTissueMassage().size(); i++) {
        ConnectiveTissueMassageVo voConnTissueMassage =
            voMassage.getConnectiveTissueMassage().get(i);

        GenForm.grdConnectiveRow rowConnTissue = form.grdConnective().getRows().newRow();

        rowConnTissue.setColArea(
            voConnTissueMassage.getCTMassageAreaIsNotNull()
                ? voConnTissueMassage.getCTMassageArea()
                : null);
        rowConnTissue.setColAreaDescription(
            voConnTissueMassage.getCTMassageAreaDescriptionIsNotNull()
                ? voConnTissueMassage.getCTMassageAreaDescription().toString()
                : null);
        rowConnTissue.setColLaterality(
            voConnTissueMassage.getLateralityIsNotNull()
                ? voConnTissueMassage.getLaterality()
                : null);
        rowConnTissue.setColDuration(
            voConnTissueMassage.getDurationIsNotNull() ? voConnTissueMassage.getDuration() : null);
        rowConnTissue.setColNotes(
            voConnTissueMassage.getNotesIsNotNull() ? voConnTissueMassage.getNotes() : null);

        rowConnTissue.setValue(voConnTissueMassage);
      }
    }
  }
  private boolean populateDataFromScreen() {
    MassageVo voMassage = form.getLocalContext().getCurrentMassageVo();

    if (voMassage == null) voMassage = new MassageVo();

    voMassage.setAuthoringDateTime(
        form.dtimAuthoringDateTime().getValue() != null
            ? form.dtimAuthoringDateTime().getValue()
            : null);
    voMassage.setAuthoringCP(
        form.qmbAuthoringCP().getValue() != null ? form.qmbAuthoringCP().getValue() : null);

    SoftTissueMassageVoCollection voSoftTissueMassageColl = new SoftTissueMassageVoCollection();
    SoftTissueMassageVo voSoftTissueMassage = new SoftTissueMassageVo();
    for (int i = 0; i < form.grdTissue().getRows().size(); i++) {
      voSoftTissueMassage = null;

      voSoftTissueMassage = form.grdTissue().getRows().get(i).getValue();
      GenForm.grdTissueRow rowTissue = form.grdTissue().getRows().get(i);

      if (voSoftTissueMassage == null) // New record
      {
        voSoftTissueMassage = new SoftTissueMassageVo();
        voSoftTissueMassage.setClinicalContact(
            form.getGlobalContext().Core.getCurrentClinicalContact());
      }

      voSoftTissueMassage.setSTMassageArea(
          rowTissue.getColArea() != null ? rowTissue.getColArea() : null);
      voSoftTissueMassage.setSTMassageType(
          rowTissue.getColTypeofMassage() != null ? rowTissue.getColTypeofMassage() : null);
      voSoftTissueMassage.setSTMassageAreaDescription(
          rowTissue.getColAreaDescription() != null ? rowTissue.getColAreaDescription() : null);
      voSoftTissueMassage.setLaterality(
          rowTissue.getColLaterality() != null ? rowTissue.getColLaterality() : null);
      voSoftTissueMassage.setDuration(
          rowTissue.getColDuration() != null ? rowTissue.getColDuration() : null);
      voSoftTissueMassage.setNotes(
          rowTissue.getColNotes() != null ? rowTissue.getColNotes() : null);

      voSoftTissueMassageColl.add(voSoftTissueMassage);
    }
    voMassage.setSoftTissueMassage(voSoftTissueMassageColl);

    DeepFrictionMassageVoCollection voDeepFrictionColl = new DeepFrictionMassageVoCollection();
    DeepFrictionMassageVo voDeepFrictionMassage = new DeepFrictionMassageVo();
    for (int i = 0; i < form.grdFriction().getRows().size(); i++) {
      voDeepFrictionMassage = null;

      voDeepFrictionMassage = form.grdFriction().getRows().get(i).getValue();
      GenForm.grdFrictionRow rowFriction = form.grdFriction().getRows().get(i);

      if (voDeepFrictionMassage == null) // New record
      {
        voDeepFrictionMassage = new DeepFrictionMassageVo();
        voDeepFrictionMassage.setClinicalContact(
            form.getGlobalContext().Core.getCurrentClinicalContact());
      }

      voDeepFrictionMassage.setDFMassageArea(
          rowFriction.getColArea() != null
              ? (DeepFrictionMassageAreaStructure) rowFriction.getColArea().getValue()
              : null);
      voDeepFrictionMassage.setDFMassageStructure(
          rowFriction.getColStructure() != null
              ? (DeepFrictionMassageAreaStructure) rowFriction.getColStructure().getValue()
              : null);
      voDeepFrictionMassage.setLaterality(
          rowFriction.getColLaterality() != null ? rowFriction.getColLaterality() : null);
      voDeepFrictionMassage.setDuration(
          rowFriction.getColDuration() != null ? rowFriction.getColDuration() : null);
      voDeepFrictionMassage.setNotes(
          rowFriction.getColNotes() != null ? rowFriction.getColNotes() : null);

      voDeepFrictionColl.add(voDeepFrictionMassage);
    }
    voMassage.setDeepFriction(voDeepFrictionColl);

    ConnectiveTissueMassageVoCollection voConnectiveTissueMassageColl =
        new ConnectiveTissueMassageVoCollection();
    ConnectiveTissueMassageVo voConnTissueMassage = new ConnectiveTissueMassageVo();
    for (int i = 0; i < form.grdConnective().getRows().size(); i++) {
      voConnTissueMassage = null;

      voConnTissueMassage = form.grdConnective().getRows().get(i).getValue();
      GenForm.grdConnectiveRow rowConn = form.grdConnective().getRows().get(i);

      if (voConnTissueMassage == null) // New record
      {
        voConnTissueMassage = new ConnectiveTissueMassageVo();
        voConnTissueMassage.setClinicalContact(
            form.getGlobalContext().Core.getCurrentClinicalContact());
      }

      voConnTissueMassage.setCTMassageArea(
          rowConn.getColArea() != null ? rowConn.getColArea() : null);
      voConnTissueMassage.setCTMassageAreaDescription(
          rowConn.getColAreaDescription() != null ? rowConn.getColAreaDescription() : null);
      voConnTissueMassage.setLaterality(
          rowConn.getColLaterality() != null ? rowConn.getColLaterality() : null);
      voConnTissueMassage.setDuration(
          rowConn.getColDuration() != null ? rowConn.getColDuration() : null);
      voConnTissueMassage.setNotes(rowConn.getColNotes() != null ? rowConn.getColNotes() : null);

      voConnectiveTissueMassageColl.add(voConnTissueMassage);
    }
    voMassage.setConnectiveTissueMassage(voConnectiveTissueMassageColl);

    if (!voMassage.getClinicalContactIsNotNull())
      voMassage.setClinicalContact(form.getGlobalContext().Core.getCurrentClinicalContact());

    form.getLocalContext().setCurrentMassageVo(voMassage);
    return true;
  }