/** * return such window geometrical features as the height, width, top, left, scrollbars, and * resizable */ protected String getWindowGeometry() { StringBuffer geometry = new StringBuffer(); // determine the height and width of the wizard window Integer h = (Integer) theModel.getValue(theModel.WINDOW_HEIGHT); Integer w = (Integer) theModel.getValue(theModel.WINDOW_WIDTH); int height = h == null ? theModel.PIXEL_WINDOW_HEIGHT : h.intValue(); int width = w == null ? theModel.PIXEL_WINDOW_WIDTH : w.intValue(); // if using netscape 4 as client enable scrollbars String useScrollBars = isNav4() ? "yes" : "no"; geometry .append("height=") .append(height) .append(", width=") .append(width) .append(", top='+((screen.height-(screen.height/1.618))-(") .append(height) .append("/2))+'") .append(", left='+((screen.width-") .append(width) .append(")/2)+'") .append("scrollbars=") .append(useScrollBars) .append(",resizable"); return geometry.toString(); }
/** * returns CCWizardWindowModelInterface instance parameters in the form of of name value i.e. * pageName=xyz */ protected String getDefaultWizardParameters() { StringBuffer buffer = new StringBuffer(); // remember the form name theModel.setValue(theModel.WIZARD_BUTTON_FORM, getFormName()); // add the popup parameter theModel.setValue(POPUP_WINDOW, "true"); String params = theModel.toRequestParametersString(WizardWindowViewBean.PAGE_NAME); buffer.append(encodeParams(params)); String extraParams = theModel.toExtraRequestParameters(); buffer.append(encodeParams(extraParams)); // for 2.0.2 compatibility theModel.setValue(PASS_PAGE_SESSION, new Boolean(true)); // append the JATO page session is appropriate Boolean appendPageSession = (Boolean) theModel.getValue(PASS_PAGE_SESSION); if (appendPageSession != null && appendPageSession.booleanValue()) { buffer .append(WizardWindowViewBean.PAGE_NAME) .append(".") .append(WizardWindowViewBean.CHILD_CMD_FIELD) .append("=") .append("&") .append(ViewBean.PAGE_SESSION_ATTRIBUTE_NVP_NAME) .append("="); String pageSessionString = ((ViewBean) theView.getParentViewBean()).getPageSessionAttributeString(false); buffer.append(pageSessionString); } return buffer.toString(); }
/** this is the main method that generates the tag's HTML output */ public String getHTMLStringInternal(Tag parent, PageContext pageContext, View view) throws JspException { // make sure all the parameters are valid String msg = null; if (parent == null) { msg = "Tag parameter is null"; CCDebug.trace1(msg); throw new IllegalArgumentException(msg); } else if (pageContext == null) { msg = "PageContext parameter is null"; CCDebug.trace1(msg); throw new IllegalArgumentException(msg); } else if (view == null) { msg = "View parameter is null"; CCDebug.trace1(msg); throw new IllegalArgumentException(msg); } // verify is that the view passed is of the right type checkChildType(view, CCWizardWindow.class); theView = (CCWizardWindow) view; theModel = (CCWizardWindowModelInterface) theView.getModel(); // init tag setParent(parent); setPageContext(pageContext); setAttributes(); // holds the response string StringBuffer buffer = new StringBuffer(); // check for the client-side javascript method to be called to set // the client-side parameters. - default to 'getClientParams()' String jsMethod = (String) theModel.getValue(CLIENTSIDE_PARAM_JSFUNCTION); if (jsMethod == null) jsMethod = "getClientParams"; // retrieve the various parts of the 'window.open(...)' call String url = getWizardURL(); String defaultParameters = getDefaultWizardParameters(); String windowGeometry = getWindowGeometry(); String windowName = (new StringBuffer(WINDOW_NAME)).append("_").append(HtmlUtil.getUniqueValue()).toString(); // Set the Onclick attribute StringBuffer onClick = new StringBuffer(); onClick .append("javascript: var url='") .append(url) .append("'; var defaultParams='") .append(defaultParameters) .append("'; var geometry='") .append(windowGeometry) .append("'; var windowName='") .append(windowName) .append("'; alert('windowName: ' + windowName); var csParams=") .append(jsMethod) .append("(); alert('csParams: ' + csParams); ") .append("var fullURL = url; if (csParams != null) {") .append(" fullURL += csParams + '&';}") .append(" fullURL += defaultParams;") .append(" alert('hi2'); ") .append("var win = window.open(fullURL, windowName, geometry);") .append("win.focus();alert('hi3'); return true;"); // launchWizard(url, defaultParams,") // .append(" csParams, windowName, geometry);") setOnClick(onClick.toString()); // the tags payload buffer .append("\n<!-- Start Wizard Tag -->\n") .append(super.getHTMLStringInternal(parent, pageContext, theView)) .append("\n<!-- End Wizard Tag -->\n"); return buffer.toString(); }