docs: public void init(Record record, ScreenLocation itsLocation, BasePanel parentScreen, Converter fieldConverter, int iDisplayFieldDesc, Map<String, Object> properties)
      {
          super.init(record, itsLocation, parentScreen, fieldConverter, iDisplayFieldDesc, properties);
          Record recordMain = this.getMainRecord();
          if (recordMain != null)
          {
              recordMain.setOpenMode(recordMain.getOpenMode() | DBConstants.OPEN_DONT_CACHE);    // Don't Cache recently used records.
              if (!ScreenConstants.HTML_SCREEN_TYPE.equalsIgnoreCase(this.getViewFactory().getViewSubpackage()))
                  recordMain.setupRecordListener(this, false, false);   // I need to listen for record changes
              try   {
                  if (recordMain.getEditMode() == Constants.EDIT_NONE)
                  {   // If the record is in an indeterminate state, addNew!
                      recordMain.addNew();
                      if (!ScreenConstants.HTML_SCREEN_TYPE.equalsIgnoreCase(this.getViewFactory().getViewSubpackage()))
                      {
                          String strBookmark = this.getProperty(DBConstants.STRING_OBJECT_ID_HANDLE);
                          if ((strBookmark != null) && (strBookmark.length() > 0))
                          {
                              try   {
                                  strBookmark = URLDecoder.decode(strBookmark, DBConstants.URL_ENCODING);
                              } catch (java.io.UnsupportedEncodingException ex) {
                                  ex.printStackTrace();
                              }
                              recordMain.setHandle(strBookmark, DBConstants.OBJECT_ID_HANDLE);        // Initial menu
                          }
                      }
                  }
                  else if (recordMain.getEditMode() == Constants.EDIT_CURRENT)
                  {
                      if (recordMain.getRecordOwner() == this)    // Not on sub-screens
                          recordMain.handleValidRecord();     // Do the valid record behaviors!
                  }
              } catch (DBException ex)    {
                  ex.printStackTrace();
              }
              if (recordMain.getRecordOwner() == this)    // Not on sub-screens
                  if ((recordMain.getOpenMode() & (DBConstants.LOCK_STRATEGY_MASK | DBConstants.OPEN_READ_ONLY | DBConstants.OPEN_APPEND_ONLY)) == 0)
                      recordMain.setOpenMode(recordMain.getOpenMode() | DBConstants.OPEN_LOCK_ON_CHANGE_STRATEGY);
          }
  
          this.resizeToContent(this.getTitle());
  
          this.selectField(null, DBConstants.SELECT_FIRST_FIELD);
      }