docs: public boolean doAction(String strAction, int iOptions)
      {
          if (strAction != null)
              if (strAction.indexOf('=') != -1)
          {
              Map<String,Object> properties = new Hashtable<String,Object>();
              Util.parseArgs(properties, strAction);
              String strMenu = (String)properties.get(Params.MENU);
              if (strMenu != null)
              {
                  try   {
                      Object bSuccess = m_remoteSession.doRemoteAction(strMenu, null);
                      if ((bSuccess instanceof Boolean)
                          && (((Boolean)bSuccess).booleanValue() == true))    // Success
                      {
                          this.removeAll();
                          this.addScreenControls(this);
                          this.validate();
                          this.repaint();
                          if ((properties.get(Params.SCREEN) == null) || (((String)properties.get(Params.SCREEN)).length() == 0))
                              strAction = strAction + '&' + Params.SCREEN + '=' + this.getClass().getName();
                          this.getBaseApplet().pushHistory(strAction, ((iOptions & Constants.DONT_PUSH_TO_BROWSER) == Constants.PUSH_TO_BROWSER));    // This is the command to get to this screen (for the history).
                          return ((Boolean)bSuccess).booleanValue();
                      }
                  } catch (Exception ex)  {
                      ex.printStackTrace();
                  }
              }
              String strApplet = (String)properties.get(Params.APPLET);
              if (strApplet != null)
                  if ((strApplet.length() == 0)
                      || (strAction.indexOf("BaseApplet") != -1))
                          strApplet = null; // Keep in same screen.
              if ((properties.get(Params.TASK) != null)
                  || (strApplet != null))
              { // Asking to start a job
                  TaskScheduler js = BaseApplet.getSharedInstance().getApplication().getTaskScheduler();
                  js.addTask(strAction);
                  return true;
              }
          }
          return super.doAction(strAction, iOptions);
      }