docs: public static JMessageListener createScreenMessageListener(FieldList record, BaseScreenModel screen)
      {        // Now add listeners to update screen when data changes
          FieldTable table = record.getTable();
          RemoteSession remoteSession = (RemoteSession)table.getRemoteTableType(org.jbundle.model.Remote.class);
  
          MessageManager messageManager = ((Application)screen.getBaseApplet().getApplication()).getMessageManager();
          MessageReceiver handler = messageManager.getMessageQueue(MessageConstants.RECORD_QUEUE_NAME, MessageConstants.INTRANET_QUEUE).getMessageReceiver();
  
          Properties properties = new Properties();
          JMessageListener listenerForSession = (JMessageListener)screen.addMessageHandler(record, properties);
  
          BaseMessageFilter filterForSession = new ClientSessionMessageFilter(MessageConstants.RECORD_QUEUE_NAME, MessageConstants.INTRANET_QUEUE, screen, remoteSession, properties);
          filterForSession.addMessageListener(listenerForSession);
          synchronized (screen.getBaseApplet().getRemoteTask())
          {   // Wait for remote filter to set up before I start accessing the data
              handler.addMessageFilter(filterForSession);
          }
          
          return listenerForSession;
      }