code: @Override
      List<String> executeCommand(int timeout, String componentName, Object... data) throws QTasteException {
          boolean onlyWithFocus = (Boolean) data[0];
          List<String> texts = new ArrayList<>();
          for (JDialog dialog : findPopups()) {
              if (onlyWithFocus && !activateAndFocusComponentWindow(dialog)) {
                  // if only the main popup text is needed, ignored popup without focus
                  LOGGER.info("the dialog with the title '" + dialog.getTitle() + "' will be ignored");
                  continue;
              }
  
              LOGGER.info("the dialog with the title '" + dialog.getTitle() + "' will not be ignored");
  
              //find the popup Component
              Object message = getJOptionPane(dialog).getMessage();
              // if message is a scroll pane, use the displayed component
              if (message instanceof JScrollPane)
              {
                  message = ((JScrollPane) message).getViewport().getView();
              }
              texts.add(message.toString());
          }
          return texts;
      }
docs: Commander wich parses all Popups in order to find the contained message.
  
  @param data BOOLEAN value : <code>true</code> means that only the text of the active popup has to be returned.
  <code>false</code> means that all texts have to be returned.
  @return the list containing the found texts.
  @throws QTasteException