docs: public ScreenParent makeScreen(ScreenLoc itsLocation, ComponentParent parentScreen, int iDocMode, Map<String,Object> properties)
      {
          ScreenParent screen = null;
          if ((iDocMode & MessageLog.MESSAGE_SCREEN_MODE) == MessageLog.MESSAGE_SCREEN_MODE)
          {
              if ((this.getEditMode() == DBConstants.EDIT_ADD) || (this.getEditMode() == DBConstants.EDIT_NONE))
              {
                  String strObjectID = parentScreen.getProperty(DBConstants.OBJECT_ID);
                  if ((strObjectID != null) && (strObjectID.length() > 0))
                  {
                      try {
                          this.setHandle(strObjectID, DBConstants.BOOKMARK_HANDLE);
                      } catch (DBException ex)    {
                          ex.printStackTrace();
                      }
                  }
              }
              if ((this.getEditMode() == DBConstants.EDIT_CURRENT) || (this.getEditMode() == DBConstants.EDIT_IN_PROGRESS))
              {
                  String strScreenClass = this.getProperty(ScreenMessageTransport.SCREEN_SCREEN);
                  if (strScreenClass == null)
                      strScreenClass = this.getProperty(DBParams.SCREEN);
                  if (strScreenClass != null)
                  {
                      parentScreen.setProperty(TrxMessageHeader.LOG_TRX_ID, this.getProperty(TrxMessageHeader.LOG_TRX_ID));
                      screen = Record.makeNewScreen(strScreenClass, itsLocation, parentScreen, iDocMode | ScreenConstants.DONT_DISPLAY_FIELD_DESC, properties, null, true);
                  }
              }
              if (screen == null) // ? I don't NOW what else to do?
                  screen = Record.makeNewScreen(MESSAGE_LOG_SCREEN_CLASS, itsLocation, parentScreen, iDocMode | ScreenConstants.DONT_DISPLAY_FIELD_DESC, properties, this, true);
          }
          else if ((iDocMode & MessageLog.SOURCE_SCREEN_MODE) == MessageLog.SOURCE_SCREEN_MODE)
          {
              String strReferenceClass = this.getProperty(TrxMessageHeader.REFERENCE_CLASS);
              String strReferenceID = this.getField(MessageLog.REFERENCE_ID).toString();
              if (strReferenceID == null)
                  strReferenceID = this.getProperty(TrxMessageHeader.REFERENCE_ID);
              if ((strReferenceClass != null) && (strReferenceID != null))
              {
                  Record record = Record.makeRecordFromClassName(strReferenceClass, this.findRecordOwner());
                  if (record != null)
                  {
                      try {
                          record.addNew();
                          record.getCounterField().setString(strReferenceID);
                          if (record.seek(null))
                          {
                              iDocMode = ScreenConstants.MAINT_MODE;
                              screen = record.makeScreen(itsLocation, parentScreen, iDocMode, properties);
                          }
                      } catch (DBException e) {
                          e.printStackTrace();
                      }
                  }
              }
          }
          else if ((iDocMode & ScreenConstants.MAINT_MODE) == ScreenConstants.MAINT_MODE)
              screen = Record.makeNewScreen(MESSAGE_LOG_SCREEN_CLASS, itsLocation, parentScreen, iDocMode | ScreenConstants.DONT_DISPLAY_FIELD_DESC, properties, this, true);
          else
              screen = Record.makeNewScreen(MESSAGE_LOG_GRID_SCREEN_CLASS, itsLocation, parentScreen, iDocMode | ScreenConstants.DONT_DISPLAY_FIELD_DESC, properties, this, true);
          return screen;
      }