/** * 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; }