docs: public boolean doAction(String strAction, int iOptions)
      {
          if (Constants.CLOSE.equalsIgnoreCase(strAction))
          {
              Frame frame = ScreenUtil.getFrame(this);
              if (frame != null)
                  ((JBaseFrame)frame).free();
              return true;
          }
          else if (ThinMenuConstants.PRINT.equalsIgnoreCase(strAction))
          {
              return ScreenPrinter.onPrint(this);
          }
          else if (ThinMenuConstants.ABOUT.equalsIgnoreCase(strAction))
          {
              return this.getBaseApplet().onAbout();
          }
          else if (ThinMenuConstants.LOGON.equalsIgnoreCase(strAction))
          {
              int iErrorCode = this.getBaseApplet().onLogonDialog();
              if (iErrorCode == JOptionPane.CANCEL_OPTION)
                  return true;    // User clicked the cancel button
              if (iErrorCode == Constants.NORMAL_RETURN)
                  return true;    // Success
              // Display the error message and return!
              String strDisplay = this.getBaseApplet().getLastError(iErrorCode);
              JOptionPane.showConfirmDialog(this, strDisplay, "Error", JOptionPane.OK_CANCEL_OPTION);
              return true;   // Handled
          }
          else if (ThinMenuConstants.LOGOUT.equalsIgnoreCase(strAction))
          {
              int iErrorCode = this.getBaseApplet().getApplication().login(this.getBaseApplet(), null, null, null); // Logout
              if (iErrorCode == Constants.NORMAL_RETURN)
                  return true;    // Success, handled
              // Display the error message and return!
              String strDisplay = this.getBaseApplet().getLastError(iErrorCode);
              JOptionPane.showConfirmDialog(this, strDisplay, "Error", JOptionPane.OK_CANCEL_OPTION);
              return true;   // Handled
          }
          else if (ThinMenuConstants.CHANGE_PASSWORD.equalsIgnoreCase(strAction))
          {
              int iErrorCode = this.getBaseApplet().onChangePassword();
              if (iErrorCode == JOptionPane.CANCEL_OPTION)
                  return true;    // User clicked the cancel button
              if (iErrorCode == Constants.NORMAL_RETURN)
                  return true;    // Success
              // Display the error message and return!
              String strDisplay = this.getBaseApplet().getLastError(iErrorCode);
              JOptionPane.showConfirmDialog(this, strDisplay, "Error", JOptionPane.OK_CANCEL_OPTION);
              return true;   // Handled
          }
          else if (ThinMenuConstants.PREFERENCES.equalsIgnoreCase(strAction))
          {
              return this.getBaseApplet().onSetFont();
          }
          return false;
      }