docs: public boolean doCommand(String strCommand, ScreenField sourceSField, int iCommandOptions)
      {
          if (MenuConstants.LOGIN.equalsIgnoreCase(strCommand))
          {
              Task task = this.getTask();
              if (task != null)
              {
                  String strUserName = this.getScreenRecord().getField(UserScreenRecord.USER).toString();
                  String strPassword = this.getScreenRecord().getField(UserScreenRecord.PASSWORD).toString();
          
                  String strOldUserID = this.getProperty(DBParams.USER_ID);
                  int iErrorCode = task.getApplication().login(task, strUserName, strPassword, this.getProperty(DBParams.DOMAIN));
                  if (iErrorCode == DBConstants.NORMAL_RETURN)
                  {
                      if (this.getScreenRecord().getField(UserScreenRecord.SAVEUSER).getState() == true)
                          if (((Application)task.getApplication()).getMuffinManager() != null)
                              if (((Application)task.getApplication()).getMuffinManager().isServiceAvailable())
                                  if (this.getProperty(DBParams.USER_ID) != null)
                                      if (!DBConstants.ANON_USER_ID.equalsIgnoreCase(this.getProperty(DBParams.USER_ID)))
                                          ((Application)task.getApplication()).getMuffinManager().setMuffin(DBParams.USER_ID, this.getProperty(DBParams.USER_ID));
                      if ((strOldUserID == null) || (!strOldUserID.equalsIgnoreCase(this.getProperty(DBParams.USER_ID))))
                      {   // If user changes, clear history and go home
                          return this.handleCommand(MenuConstants.HOME, sourceSField, iCommandOptions);
                      }
                      else
                          return this.handleCommand(DBConstants.BACK, sourceSField, iCommandOptions);
                  }
                  else
                  {   // Error - Get and display the error
                      String strError = task.getLastError(iErrorCode);
                      this.getScreenRecord().getField(UserScreenRecord.STATUS_LINE).setString(strError);
                  }
              }
              // May want to add some code here to login if this is used in thick client
              return true;
          }
          else if (UserEntryScreen.CREATE_NEW_USER.equalsIgnoreCase(strCommand))
          {
              ScreenLocation itsLocation = null;
              BasePanel parentScreen = this.getParentScreen();
              if ((iCommandOptions & ScreenConstants.USE_NEW_WINDOW) == ScreenConstants.USE_SAME_WINDOW)  // Use same window
                  itsLocation = this.getScreenLocation();
              else
                  parentScreen = Screen.makeWindow(this.getTask().getApplication());
              new UserEntryScreen(null, itsLocation, parentScreen, null, 0, null);
              // Add here todo (don)
              return true;
          }
          return super.doCommand(strCommand, sourceSField, iCommandOptions);
      }