Example usage for org.apache.wicket.markup MarkupStream skipComponent

List of usage examples for org.apache.wicket.markup MarkupStream skipComponent

Introduction

In this page you can find the example usage for org.apache.wicket.markup MarkupStream skipComponent.

Prototype

public final void skipComponent() 

Source Link

Document

Skips this component and all nested components

Usage

From source file:com.locke.library.web.panels.caching.CachingPanel.java

License:Apache License

@Override
protected void onRender(MarkupStream markupStream) {
    final RequestCycle cycle = getRequestCycle();
    final Response response = cycle.getResponse();
    if (getRenderState().lastRenderedAt.elapsedSince().greaterThan(getRenderState().maximumContentAge)) {
        getRenderState().lastRenderedAt = Time.now();
        cycle.setResponse(getRenderState().buffer);
        super.onRender(markupStream);
        cycle.setResponse(response);/*ww  w  .ja  v  a2 s.  c  o m*/
    } else {
        markupStream.skipComponent();
    }
    response.write(getRenderState().buffer.getBuffer());
}

From source file:com.servoy.j2db.server.headlessclient.dataui.SortableCellViewHeaders.java

License:Open Source License

/**
 * Renders the next element of markup in the given markup stream.
 * //from  w ww.j  a  va  2s . c o  m
 * @param markupStream The markup stream
 */
private final void _renderNext(final MarkupStream markupStream) {
    // Get the current markup element
    final MarkupElement element = markupStream.get();

    // If it a tag like <wicket..> or <span wicket:id="..." >
    if ((element instanceof ComponentTag) && !markupStream.atCloseTag()) {
        // Get element as tag
        final ComponentTag tag = (ComponentTag) element;

        // Get component id
        final String id = tag.getId();

        // Get the component for the id from the given container
        final Component component = get(id);

        // Failed to find it?
        if (component != null && orderedHeaders.get(renderColumnIdx) != null) {
            if (component instanceof SortableCellViewHeader) {
                int currentIdx = markupStream.getCurrentIndex();
                renderHeader(renderColumnIdx, markupStream);
                renderColumnIdx++;
                markupStream.setCurrentIndex(currentIdx);
                markupStream.skipComponent();
            }
        } else {
            // 2rd try: Components like Border and Panel might implement
            // the ComponentResolver interface as well.
            MarkupContainer container = this;
            while (container != null) {
                if (container instanceof SortableCellViewHeaders) {
                    // we should created the corect header, use the id from the orderedHeaders
                    String headerId = orderedHeaderIds.get(renderColumnIdx);
                    renderColumnIdx++;
                    if (resolve(markupStream, tag, headerId)) {
                        return;
                    }

                }

                if (container instanceof IComponentResolver) {
                    if (((IComponentResolver) container).resolve(this, markupStream, tag)) {
                        return;
                    }
                }

                container = container.findParent(MarkupContainer.class);
            }

            // 3rd try: Try application's component resolvers
            final List<IComponentResolver> componentResolvers = getApplication().getPageSettings()
                    .getComponentResolvers();
            final Iterator<IComponentResolver> iterator = componentResolvers.iterator();
            while (iterator.hasNext()) {
                final IComponentResolver resolver = iterator.next();
                if (resolver.resolve(this, markupStream, tag)) {
                    return;
                }
            }

            if (tag instanceof WicketTag) {
                if (((WicketTag) tag).isChildTag()) {
                    markupStream.throwMarkupException("Found " + tag.toString() + " but no <wicket:extend>"); //$NON-NLS-1$ //$NON-NLS-2$
                } else {
                    markupStream.throwMarkupException("Failed to handle: " + tag.toString()); //$NON-NLS-1$
                }
            }

            // No one was able to handle the component id
            markupStream.throwMarkupException("Unable to find component with id '" + id + "' in " + this //$NON-NLS-1$//$NON-NLS-2$
                    + ". This means that you declared wicket:id=" + //$NON-NLS-1$
                    id + " in your markup, but that you either did not add the " //$NON-NLS-1$
                    + "component to your page at all, or that the hierarchy does not match."); //$NON-NLS-1$
        }
    } else {
        getResponse().write(element.toCharSequence());
        markupStream.next();
    }
}

From source file:guru.mmp.application.web.template.components.BlankComponent.java

License:Apache License

/**
 * Render the blank component./*from   ww w. j  av a2  s  .c om*/
 */
@Override
protected void onRender() {
    MarkupStream markupStream = findMarkupStream();

    markupStream.skipComponent();
}

From source file:net.jawr.web.wicket.AbstractJawrImageReference.java

License:Apache License

protected void onRender() {

    MarkupStream markupStream = findMarkupStream();
    try {/*from  ww w  .  j  av a  2  s  . c  o  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  w  ww .  jav a2 s  .  com
        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.dcm4chee.dashboard.ui.messaging.SideColumnsView.java

License:Apache License

/**
 * Renders the columns.//from w w w  . jav a  2 s .co m
 * 
 * @param markupStream
 *            The markup stream of this component
 */
@Override
protected void onRender(final MarkupStream markupStream) {
    final int markupStart = markupStream.getCurrentIndex();
    Response response = RequestCycle.get().getResponse();

    boolean firstLeft = true; // whether there was no left column rendered
    // yet
    boolean rendered = false;

    for (int i = 0; i < columns.size(); ++i) {
        IColumn column = columns.get(i);
        Component component = components.get(i);
        IRenderable renderable = renderables.get(i);

        // write wrapping markup
        response.write("<span class=\"b_\" style=\"" + renderColumnStyle(column) + "\">");
        if (column.getLocation().getAlignment() == Alignment.LEFT && firstLeft == true) {
            // for the first left column we have different style class
            // (without the left border)
            response.write("<span class=\"d_\">");
            firstLeft = false;
        } else {
            if (i == 3) {
                QueueModel queueModel = (QueueModel) ((DefaultMutableTreeNode) node).getUserObject();
                response.write("<span class=\"c_\"" + (queueModel.getColor() == null ? ""
                        : "style=\"background-color: " + queueModel.getColor() + ";\"") + ">");
            } else
                response.write("<span class=\"c_\">");
        }

        if (component != null) {
            markupStream.setCurrentIndex(markupStart);
            component.render(markupStream);
            rendered = true;
        } else if (renderable != null) {
            renderable.render(node, response);
        } else {
            throw new IllegalStateException(
                    "Either renderable or cell component must be created for this node");
        }

        response.write("</span></span>\n");
    }

    // if no component was rendered just advance in the markup stream
    if (rendered == false) {
        markupStream.skipComponent();
    }
}