code: public void doValidRecord(boolean bDisplayOption)
      {
          try {
              if (m_recPackages == null)
              {
                  RecordOwner recordOwner = this.getOwner().findRecordOwner();
                  m_recPackages = new Packages(recordOwner);
                  if (recordOwner != null)
                      recordOwner.removeRecord(m_recPackages);
              }
              String strPackagesTree = this.getOwner().getField(Packages.NAME).toString();
              m_recPackages.addNew();
              m_recPackages.getField(Packages.ID).moveFieldToThis(this.getOwner().getField(Packages.PARENT_FOLDER_ID));
              while ((m_recPackages.getField(Packages.ID).getValue() > 0) && (m_recPackages.seek(null)))
              {
                  strPackagesTree = m_recPackages.getField(Packages.NAME).toString() + '.' + strPackagesTree;
                  m_recPackages.getField(Packages.ID).moveFieldToThis(m_recPackages.getField(Packages.PARENT_FOLDER_ID));
              }
              m_fldTargetTree.setString(strPackagesTree);
          } catch (DBException ex) {
              ex.printStackTrace();
          }
          
          super.doValidRecord(bDisplayOption);
      }
docs: Called when a valid record is read from the table/query.
  @param bDisplayOption If true, display any changes.