docs: public BaseMessageFilter setupRecordListener(JMessageListener listener, boolean bTrackMultipleRecords, boolean bAllowEchos, boolean bReceiveAllAdds)
      {
          BaseMessageFilter filter = null;
          MessageManager messageManager = null;
          if (listener == null)
              listener = this.getRecordOwner();
          if (listener != null)
              if (this.getRecordOwner() != null)
                  if (this.getRecordOwner().getTask() != null)
                      messageManager = ((Application)this.getRecordOwner().getTask().getApplication()).getMessageManager();
          if (messageManager != null)
          {
              Object source = null;
              if (bAllowEchos)
                  source = DBConstants.BLANK;     // Non-null object that will never be a source
              if (!bTrackMultipleRecords)
                  filter = new RecordMessageFilter(this, source);
              else
                  filter = new GridRecordMessageFilter(this, source, bReceiveAllAdds);
              filter.addMessageListener(listener);
              messageManager.addMessageFilter(filter);
          }
          return filter;
      }