Example usage for org.apache.wicket.markup ComponentTag mutable

List of usage examples for org.apache.wicket.markup ComponentTag mutable

Introduction

In this page you can find the example usage for org.apache.wicket.markup ComponentTag mutable.

Prototype

public ComponentTag mutable() 

Source Link

Document

Gets this tag if it is already mutable, or a mutable copy of this tag if it is immutable.

Usage

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);
}