List of usage examples for org.apache.wicket.markup ComponentTag mutable
public ComponentTag mutable()
From source file:net.jawr.web.wicket.AbstractJawrImageReference.java
License:Apache License
protected void onRender() { MarkupStream markupStream = findMarkupStream(); try {/*from ww w .jav a 2s. co m*/ final ComponentTag openTag = markupStream.getTag(); final ComponentTag tag = openTag.mutable(); final IValueMap attributes = tag.getAttributes(); String src = (String) attributes.get("src"); boolean base64 = Boolean.valueOf((String) attributes.get("base64")).booleanValue(); // src is mandatory if (null == src) { throw new IllegalStateException("The src attribute is mandatory for this Jawr tag. "); } // Retrieve the image resource handler ServletWebRequest servletWebRequest = (ServletWebRequest) getRequest(); HttpServletRequest request = servletWebRequest.getContainerRequest(); BinaryResourcesHandler binaryRsHandler = (BinaryResourcesHandler) WebApplication.get() .getServletContext().getAttribute(JawrConstant.BINARY_CONTEXT_ATTRIBUTE); if (null == binaryRsHandler) throw new IllegalStateException( "You are using a Jawr image tag while the Jawr Image servlet has not been initialized. Initialization of Jawr Image servlet either failed or never occurred."); final Response response = getResponse(); src = ImageTagUtils.getImageUrl(src, base64, binaryRsHandler, request, getHttpServletResponseUrlEncoder(response)); Writer writer = new RedirectWriter(response); this.renderer = RendererFactory.getImgRenderer(binaryRsHandler.getConfig(), isPlainImage()); this.renderer.renderImage(src, attributes, writer); } catch (IOException ex) { LOGGER.error("onRender() error : ", ex); } finally { // Reset the Thread local for the Jawr context ThreadLocalJawrContext.reset(); } markupStream.skipComponent(); }
From source file:net.jawr.web.wicket.AbstractJawrReference.java
License:Apache License
@Override protected void onRender() { MarkupStream markupStream = findMarkupStream(); try {/*from ww w. j a v a 2 s .co m*/ final ComponentTag openTag = markupStream.getTag(); final ComponentTag tag = openTag.mutable(); final IValueMap attributes = tag.getAttributes(); // Initialize attributes String src = getReferencePath(attributes); // src is mandatory if (null == src) { throw new IllegalStateException("The src attribute is mandatory for this Jawr reference tag. "); } ServletWebRequest servletWebRequest = (ServletWebRequest) getRequest(); HttpServletRequest request = servletWebRequest.getContainerRequest(); // Get an instance of the renderer. ResourceBundlesHandler rsHandler = (ResourceBundlesHandler) request.getSession().getServletContext() .getAttribute(getResourceHandlerAttributeName()); if (null == rsHandler) { throw new IllegalStateException( "ResourceBundlesHandler not present in servlet context. Initialization of Jawr either failed or never occurred."); } // Refresh the config if needed if (RendererRequestUtils.refreshConfigIfNeeded(request, rsHandler.getConfig())) { rsHandler = (ResourceBundlesHandler) request.getSession().getServletContext() .getAttribute(getResourceHandlerAttributeName()); } Boolean useRandomFlag = null; if (StringUtils.isNotEmpty(useRandomParam)) { useRandomFlag = Boolean.valueOf(useRandomParam); } BundleRenderer renderer = createRenderer(rsHandler, useRandomFlag, tag); // set the debug override RendererRequestUtils.setRequestDebuggable(request, renderer.getBundler().getConfig()); final Response response = getResponse(); Writer writer = new RedirectWriter(response); BundleRendererContext ctx = RendererRequestUtils.getBundleRendererContext(request, renderer); renderer.renderBundleLinks(src, ctx, writer); } catch (IOException ex) { LOGGER.error("onRender() error : ", ex); } finally { // Reset the Thread local for the Jawr context ThreadLocalJawrContext.reset(); } markupStream.skipComponent(); }
From source file:org.efaps.ui.wicket.components.AbstractParentMarkupContainer.java
License:Apache License
/** * @see org.apache.wicket.MarkupContainer#onRender(org.apache.wicket.markup.MarkupStream) *///from w w w. ja va 2 s . c om @Override public void onRender() { final IMarkupFragment markup = getMarkup(); final MarkupStream markupStream = new MarkupStream(markup); final int markupStart = markupStream.getCurrentIndex(); // Get mutable copy of next tag final ComponentTag openTag = markupStream.getTag(); final ComponentTag tag = openTag.mutable(); // Call any tag handler onComponentTag(tag); // Render open tag if (!getRenderBodyOnly()) { renderComponentTag(tag); } markupStream.next(); // Render the body only if open-body-close. Do not render if // open-close. if (tag.isOpen()) { // Render the body onComponentTagBody(markupStream, tag); } markupStream.setCurrentIndex(markupStart); final Iterator<?> childs = this.iterator(); while (childs.hasNext()) { markupStream.setCurrentIndex(markupStart); final Component child = (Component) childs.next(); child.rendered(); } markupStream.setCurrentIndex(markupStart); markupStream.next(); // Render close tag if (tag.isOpen()) { if (openTag.isOpen()) { // Get the close tag from the stream ComponentTag closeTag = markupStream.getTag(); // If the open tag had its id changed if (tag.isAutoComponentTag()) { // change the id of the close tag closeTag = closeTag.mutable(); closeTag.setName(tag.getName()); } // Render the close tag renderComponentTag(closeTag); markupStream.next(); } } }
From source file:org.efaps.ui.wicket.components.LabelComponent.java
License:Apache License
/** * Method is overwritten to prevent the annoing warnings from Component to come up. * The warning come up due to the reason that this component moves the tags from parent * element to its child./*from ww w . j a va2 s . c om*/ */ @Override protected void onRender() { final IMarkupFragment markup = getMarkup(); if (markup == null) { throw new MarkupException("Markup not found. Component: " + toString()); } final MarkupStream markupStream = new MarkupStream(markup); // Get mutable copy of next tag final ComponentTag openTag = markupStream.getTag(); final ComponentTag tag = openTag.mutable(); // Call any tag handler onComponentTag(tag); // If we're an openclose tag if (!tag.isOpenClose() && !tag.isOpen()) { // We were something other than <tag> or <tag/> markupStream.throwMarkupException("Method renderComponent called on bad markup element: " + tag); } if (tag.isOpenClose() && openTag.isOpen()) { markupStream.throwMarkupException("You can not modify a open tag to open-close: " + tag); } markupStream.next(); getMarkupSourcingStrategy().onComponentTagBody(this, markupStream, tag); }