/**
   * since the CCActionTable doesn't recognize 'unknown' tags, use a regular CCWizardWindowTag in
   * the table XML and swap its HTML with that our of special WizardWindowTag here.
   */
  public String endChildDisplay(ChildContentDisplayEvent ccde) throws ModelControlException {
    String childName = ccde.getChildName();

    String html = super.endChildDisplay(ccde);
    // if its one of our special wizards
    // i.e. name contains keyword "SamQFSWizard"
    if (childName.indexOf(Constants.Wizard.WIZARD_BUTTON_KEYWORD) != -1
        || childName.indexOf(Constants.Wizard.WIZARD_SCRIPT_KEYWORD) != -1) {
      // retrieve the html from a WizardWindowTag
      JspEndChildDisplayEvent event = (JspEndChildDisplayEvent) ccde;
      CCButtonTag sourceTag = (CCButtonTag) event.getSourceTag();
      Tag parentTag = sourceTag.getParent();

      // get the peer view of this tag
      View theView = getChild(childName);

      // instantiate the wizard tag
      WizardWindowTag tag = new WizardWindowTag();
      tag.setBundleID(sourceTag.getBundleID());
      tag.setDynamic(sourceTag.getDynamic());

      // Is this a script wizard tag?
      if (childName.indexOf(Constants.Wizard.WIZARD_SCRIPT_KEYWORD) != -1) {
        // This is a script wizard
        tag.setName(childName);
        tag.setWizardType(WizardWindowTag.TYPE_SCRIPT);
      }

      // try to retrieve the correct HTML from the tag
      try {
        html = tag.getHTMLStringInternal(parentTag, event.getPageContext(), theView);
      } catch (JspException je) {
        throw new IllegalArgumentException(
            "Error retrieving the " + "WizardWindowTag html : " + je.getMessage());
      }
    }

    return html;
  }
 /** clear the tag's member variables */
 public void reset() {
   super.reset();
   theView = null;
   theModel = null;
 }