public void encodeBegin(IPanelPopup component, IResponseWriter writer) throws IOException { IPanelPopup panelPopup = (IPanelPopup) component; boolean visible = panelPopup.isVisible(); String clientId = panelPopup.getClientId(); writer.startElement(DIV_ELEM, component); writer.writeAttribute(ID_ATTR, clientId); StringBuilder popupBaseClass = new StringBuilder(IPanelPopup.HIDDEN_CONTAINER_CLASS); StringBuilder popupBGClass = new StringBuilder(IPanelPopup.BLACKOUT_PNL_HIDDEN_CLASS); // leave user class appending here, but it's actually done in js if (visible) { popupBaseClass = new StringBuilder(IPanelPopup.CONTAINER_CLASS); popupBGClass = new StringBuilder(IPanelPopup.BLACKOUT_PNL_CLASS); } String userClass = panelPopup.getStyleClass(); if (null != userClass) { // popupBGClass.append(String.valueOf(userClass)); popupBaseClass.append(userClass); } writer.startElement(DIV_ELEM, component); writer.writeAttribute(ID_ATTR, clientId + "_wrp"); // div that is use to hide/show the popup screen black out--will manipulate using js writer.startElement(DIV_ELEM, component); writer.writeAttribute(ID_ATTR, clientId + "_bg"); writer.writeAttribute(CLASS_ATTR, popupBGClass.toString()); writer.endElement(DIV_ELEM); // panel writer.startElement(DIV_ELEM, component); writer.writeAttribute(ID_ATTR, clientId + "_popup"); writer.writeAttribute("class", popupBaseClass.toString()); if (null != panelPopup.getStyle()) { writer.writeAttribute(STYLE_ATTR, panelPopup.getStyle()); } }
public void encodeScript(IPanelPopup panelPopup, IResponseWriter writer) throws IOException { String clientId = panelPopup.getClientId(); writer.startElement(DIV_ELEM, panelPopup); writer.writeAttribute(ID_ATTR, clientId + "_scrDiv"); writer.writeAttribute(CLASS_ATTR, "mobi-hidden"); writer.startElement(SPAN_ELEM, panelPopup); writer.writeAttribute(ID_ATTR, clientId + "_scrSpan"); writer.startElement("script", null); writer.writeAttribute("type", "text/javascript"); StringBuilder builder = new StringBuilder(255); boolean disabled = panelPopup.isDisabled(); if (disabled && !panelPopup.isClientSide()) { panelPopup.setVisible(false); } builder .append("ice.mobi.panelPopup.init('") .append(clientId) .append("', {visible: ") .append(panelPopup.isVisible()) .append(", autocenter: ") .append(panelPopup.isAutoCenter()) .append(", client: ") .append(panelPopup.isClientSide()) .append(", id: '") .append(panelPopup.getId()) .append("'"); if (panelPopup.getWidth() != Integer.MIN_VALUE) { builder.append(", width: ").append(panelPopup.getWidth()); } if (panelPopup.getHeight() != Integer.MIN_VALUE) { builder.append(", height: ").append(panelPopup.getHeight()); } if (null != panelPopup.getStyleClass()) { builder.append(", sclass: '").append(panelPopup.getStyleClass()).append("'"); } if (panelPopup.getStyle() != null) { builder.append(", style: '").append(panelPopup.getStyle()).append("'"); } if (disabled) { builder.append(", disabled: ").append(panelPopup.isDisabled()); } builder.append("});"); writer.write(builder.toString()); writer.endElement("script"); writer.endElement(SPAN_ELEM); writer.endElement(DIV_ELEM); }