docs: public void init(RecordOwner recordOwner)
      {
          m_dbEditMode = Constants.EDIT_NONE;
          m_listener = null;
          m_bDisplayOption = true;
  
          m_depScreens = null;        // List of all Dependent screens (doesn't include m_recordOwner)
          m_recordOwner = recordOwner;
          this.getTable();    // This will set up a table using the recordowner if it exists.
  
          if (recordOwner != null)
              recordOwner.addRecord(this, false);
  
          super.init(recordOwner);    // Set up the fields.
          this.selectFields();
          if ((this.getDatabaseType() & DBConstants.BASE_TABLE_CLASS) != 0)
          {
              if ((this.getDatabaseType() & DBConstants.SHARED_TABLE) != 0)  // But not shared (don't need multitable).
              {
                  if ((this.getMasterSlave() & RecordOwner.MASTER) != 0)   // Slaves don't need this helper class.
                  {
                      if ((this.getRecordOwner() == null)
                          || ((this.getRecordOwner().getMasterSlave() & RecordOwner.MASTER) != 0))
                              new org.jbundle.base.db.shared.SharedBaseRecordTable(null, this);    // Special - base class of a shared table
                  }
              }
              else
                  new org.jbundle.base.db.shared.MultiTable(null, this);     // Special - base class - Add the overriding classes.
          }
          if (this.getTable() != null)
              if (this.getTable().getDatabase() != null)
                  if (this.getTable().getDatabase().getDatabaseOwner() != null)
                  if (this.getTable().getDatabase().getDatabaseOwner().getEnvironment() != null)
                  if ((DBConstants.YES.equalsIgnoreCase(((Environment)this.getTable().getDatabase().getDatabaseOwner().getEnvironment()).getProperty(DBParams.LOG_TRXS))) || (DBConstants.TRUE.equalsIgnoreCase(((Environment)this.getTable().getDatabase().getDatabaseOwner().getEnvironment()).getProperty(DBParams.LOG_TRXS))))
              if ((this.getMasterSlave() & RecordOwner.SLAVE) != 0)   // Slaves do the logging.
                  if ((this.getDatabaseType() & DBConstants.DONT_LOG_TRX) == 0)
          {
              if ((this.getRecordOwner() == null)
                  || ((this.getRecordOwner().getMasterSlave() & RecordOwner.SLAVE) != 0))
                      new org.jbundle.base.db.util.log.MessageLogTable(null, this);    // Special - base class of a shared table
          }
          m_iDefaultOrder = Constants.MAIN_KEY_AREA;      // Key Area to use on next operation
          this.addListeners();
      }