code: public boolean doCommand(String strCommand, ScreenField sourceSField, int iCommandOptions)
      {
          boolean bFlag = false;
          
          if (strCommand.indexOf(org.jbundle.app.program.script.process.SetupProjectProcess.class.getName()) != -1)
          {
              try {
                  strCommand = Utility.addURLParam(strCommand, DBConstants.OBJECT_ID, this.getMainRecord().writeAndRefresh().toString());
              } catch (DBException e) {
                  e.printStackTrace();
              }
          }
          
          if (bFlag == false)
              bFlag = super.doCommand(strCommand, sourceSField, iCommandOptions);  // This will send the command to my parent
          return bFlag;
      }
docs: Process the command.
  <br />Step 1 - Process the command if possible and return true if processed.
  <br />Step 2 - If I can't process, pass to all children (with me as the source).
  <br />Step 3 - If children didn't process, pass to parent (with me as the source).
  <br />Note: Never pass to a parent or child that matches the source (to avoid an endless loop).
  @param strCommand The command to process.
  @param sourceSField The source screen field (to avoid echos).
  @param iCommandOptions If this command creates a new screen, create in a new window?
  @return true if success.