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

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

Introduction

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

Prototype

public MarkupElement get() 

Source Link

Usage

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.
 * /*ww w  . j a  v  a2 s. 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:com.servoy.j2db.server.headlessclient.MainPage.java

License:Open Source License

/**
 * @see wicket.Page#configureResponse()/*from w ww.ja v  a2s  . c  om*/
 */
@SuppressWarnings("nls")
@Override
protected void configureResponse() {
    super.configureResponse();

    if (getWebRequestCycle().getResponse() instanceof WebResponse) {
        final WebResponse response = getWebRequestCycle().getWebResponse();
        HTTPUtils.setNoCacheHeaders(response.getHttpServletResponse(), "no-store");
    }

    final RequestCycle cycle = getRequestCycle();
    final Response response = cycle.getResponse();

    if (main != null) {
        final MarkupStream markupStream = main.getAssociatedMarkupStream(false);
        if (markupStream != null) {
            //            markupStream.setCurrentIndex(0); // this doesn't seem to be needed
            MarkupElement m = markupStream.get();
            if (m != null) {
                String docType = m.toString().trim();
                if (docType.toUpperCase().startsWith("<!DOCTYPE")) {
                    int index = docType.indexOf('>');
                    if (index != -1) {
                        response.write(docType.substring(0, index + 1));//delegate form doctype to be the mainpage doctype
                    } else {
                        response.write(docType);//delegate form doctype to be the mainpage doctype
                    }
                }
            }
        }
    }
}

From source file:dk.teachus.frontend.pages.BasePage.java

License:Apache License

public BasePage() {
    Theme theme = getTheme();//w w w. j a  va2  s  .c om

    if (theme == null) {
        theme = Theme.BLUE;
    }

    StringBuilder sb = new StringBuilder(TeachUsSession.get().getString("General.teachUsTitle")); //$NON-NLS-1$
    sb.append(" "); //$NON-NLS-1$
    sb.append(TeachUsApplication.get().getVersion());
    add(new Label("title", sb.toString())); //$NON-NLS-1$

    IModel<List<MenuItem>> itemsModel = new PropertyModel<List<MenuItem>>(this, "menuItems");
    IModel<List<MenuItem>> rightItemsModel = new PropertyModel<List<MenuItem>>(this, "rightMenuItems");
    IModel<PageCategory> activeMenuItemModel = new PropertyModel<PageCategory>(this, "pageCategory");
    add(new MenuPanel("menu", itemsModel, rightItemsModel, activeMenuItemModel));

    add(new Label("copyright", "2006-" + new DateMidnight().getYear() + " TeachUs Booking Systems"));

    ajaxLoader = new WebMarkupContainer("ajaxLoader");
    ajaxLoader.setOutputMarkupId(true);
    add(ajaxLoader);

    /*
     * Google Analytics
     */
    WebMarkupContainer googleAnalytics = new WebMarkupContainer("googleAnalytics") {
        private static final long serialVersionUID = 1L;

        @Override
        public boolean isVisible() {
            return TeachUsApplication.get().getConfiguration()
                    .hasConfiguration(ApplicationConfiguration.GOOGLE_ANALYTICS_WEB_PROPERTY_ID);
        }

        @Override
        public void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag) {
            String content = markupStream.get().toCharSequence().toString();

            content = content.replace("UA-XXXXX-X", TeachUsApplication.get().getConfiguration()
                    .getConfiguration(ApplicationConfiguration.GOOGLE_ANALYTICS_WEB_PROPERTY_ID));

            replaceComponentTagBody(markupStream, openTag, content);
        }
    };
    add(googleAnalytics);

    /*
     * New Relic
     */
    add(new Label("newRelicTimingHeader", NewRelic.getBrowserTimingHeader()).setEscapeModelStrings(false)
            .setRenderBodyOnly(true));
    add(new Label("newRelicTimingFooter", new AbstractReadOnlyModel<String>() {
        private static final long serialVersionUID = 1L;

        @Override
        public String getObject() {
            return NewRelic.getBrowserTimingFooter();
        }
    }).setEscapeModelStrings(false).setRenderBodyOnly(true));
}

From source file:fiftyfive.wicket.prototype.TruncatedRawMarkup.java

License:Apache License

@Override
public void onComponentTagBody(MarkupStream markup, ComponentTag tag) {
    // We assume the body of the component is raw HTML
    // (i.e. not nested wicket components or wicket tags).
    RawMarkup raw = (RawMarkup) markup.get();
    getResponse().write(getTruncateHelper().truncate(raw.toString(), this.length));
    markup.next();//from  w  w  w.ja  v  a  2s . c o m
}

From source file:guru.mmp.application.web.components.XMLPanel.java

License:Apache License

/**
 * Render the XML panel.//from  w  w  w  .j  ava2 s.c  o  m
 */
@Override
protected void onRender() {
    String xml = getDefaultModelObjectAsString();

    MarkupStream markupStream = findMarkupStream();
    MarkupElement element = markupStream.get();
    Response response = getResponse();

    if (element instanceof ComponentTag) {
        xml = xml.replace("<", "&lt;");
        xml = xml.replace(">", "&gt;");

        response.write(xml);
    }
}

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

License:Apache License

/**
 * Render the alerts./* w w w  .  j a va 2s.  c  o  m*/
 */
@Override
protected void onRender() {
    MarkupStream markupStream = findMarkupStream();
    MarkupElement element = markupStream.get();
    Response response = getResponse();

    if (element instanceof ComponentTag) {
        List<FeedbackMessage> messages = getFilteredMessages();

        if (messages.size() == 0) {
            response.write("<div id=\"" + getMarkupId() + "\" class=\"alerts\"></div>");

            return;
        }

        StringBuilder errorBuffer = null;
        StringBuilder infoBuffer = null;
        StringBuilder warningBuffer = null;
        StringBuilder debugBuffer = null;

        int numberOfErrorMessages = 0;
        int numberOfInfoMessages = 0;
        int numberOfWarningMessages = 0;
        int numberOfDebugMessages = 0;

        for (FeedbackMessage message : messages) {
            if (message.isError()) {
                if (errorBuffer == null) {
                    errorBuffer = new StringBuilder();
                }

                numberOfErrorMessages++;
            } else if (message.isWarning()) {
                if (warningBuffer == null) {
                    warningBuffer = new StringBuilder();
                }

                numberOfWarningMessages++;
            } else if (message.isInfo()) {
                if (infoBuffer == null) {
                    infoBuffer = new StringBuilder();
                }

                numberOfInfoMessages++;
            } else if (message.isFatal()) {
                if (errorBuffer == null) {
                    errorBuffer = new StringBuilder();
                }

                numberOfErrorMessages++;
            } else if (message.isDebug()) {
                if (debugBuffer == null) {
                    debugBuffer = new StringBuilder();
                }

                numberOfDebugMessages++;
            }
        }

        for (FeedbackMessage message : messages) {
            if (message.isError()) {
                if (numberOfErrorMessages == 1) {
                    errorBuffer.append(message.getMessage().toString());
                } else {
                    errorBuffer.append("<li>");
                    errorBuffer.append(message.getMessage().toString());
                    errorBuffer.append("</li>");
                }
            } else if (message.isWarning()) {
                if (numberOfWarningMessages == 1) {
                    warningBuffer.append(message.getMessage().toString());
                } else {
                    warningBuffer.append("<li>");
                    warningBuffer.append(message.getMessage().toString());
                    warningBuffer.append("</li>");
                }
            } else if (message.isInfo()) {
                if (numberOfInfoMessages == 1) {
                    infoBuffer.append(message.getMessage().toString());
                } else {
                    infoBuffer.append("<li>");
                    infoBuffer.append(message.getMessage().toString());
                    infoBuffer.append("</li>");
                }
            } else if (message.isFatal()) {
                if (numberOfErrorMessages == 1) {
                    errorBuffer.append(message.getMessage().toString());
                } else {
                    errorBuffer.append("<li>");
                    errorBuffer.append(message.getMessage().toString());
                    errorBuffer.append("</li>");
                }
            } else if (message.isDebug()) {
                if (numberOfDebugMessages == 1) {
                    debugBuffer.append(message.getMessage().toString());
                } else {
                    debugBuffer.append("<li>");
                    debugBuffer.append(message.getMessage().toString());
                    debugBuffer.append("</li>");
                }
            }

            message.markRendered();
        }

        response.write("<div id=\"");
        response.write(getMarkupId());
        response.write("\" class=\"alerts\">");

        // Display error messages first
        if (numberOfErrorMessages > 0) {
            response.write("<div class=\"errorHandler alert alert-danger\">");
            response.write("<button data-dismiss=\"alert\" class=\"close\">&times;</button>");
            response.write("<i class=\"fa fa-times-circle\"></i>&nbsp;");

            if (numberOfErrorMessages == 1) {
                response.write(errorBuffer.toString());
                response.write("</div>");
            } else {
                response.write("The following errors occurred while processing your request:");
                response.write("<ul style=\"padding: 5px 0px 0px 19px;\">");
                response.write(errorBuffer.toString());
                response.write("</ul></div>");
            }
        }

        // Display warning messages second
        if (numberOfWarningMessages > 0) {
            response.write("<div class=\"alert alert-warning\">");
            response.write("<button data-dismiss=\"alert\" class=\"close\">&times;</button>");
            response.write("<i class=\"fa fa-exclamation-triangle\"></i>&nbsp;");

            if (numberOfWarningMessages == 1) {
                response.write(warningBuffer.toString());
                response.write("</div>");
            } else {
                response.write("The following warnings were raised while processing your request:");
                response.write("<ul style=\"padding: 5px 0px 0px 19px;\">");
                response.write(warningBuffer.toString());
                response.write("</ul></div>");
            }
        }

        // Display informational messages third
        if (numberOfInfoMessages > 0) {
            response.write("<div class=\"alert alert-success\">");
            response.write("<button data-dismiss=\"alert\" class=\"close\">&times;</button>");
            response.write("<i class=\"fa fa-check-circle\"></i>&nbsp;");

            if (numberOfInfoMessages == 1) {
                response.write(infoBuffer.toString());
                response.write("</div>");
            } else {
                response.write("Please take note of the following:");
                response.write("<ul style=\"padding: 5px 0px 0px 19px;\">");
                response.write(infoBuffer.toString());
                response.write("</ul></div>");
            }
        }

        // Display debug messages fourth
        if (numberOfDebugMessages > 0) {
            response.write("<div class=\"alert alert-info\">");
            response.write("<button data-dismiss=\"alert\" class=\"close\">&times;</button>");
            response.write("<i class=\"fa fa-info-circle\"></i>&nbsp;");

            if (numberOfDebugMessages == 1) {
                response.write(debugBuffer.toString());
                response.write("</div>");
            } else {
                response.write("Please take note of the following:");
                response.write("<ul style=\"padding: 5px 0px 0px 19px;\">");
                response.write(debugBuffer.toString());
                response.write("</ul></div>");
            }
        }

        response.write("</div>");
    }
}

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

License:Apache License

/**
 * Render the backend main navigation.//www.j  ava 2  s. c o m
 */
@Override
protected void onRender() {
    MarkupStream markupStream = findMarkupStream();
    MarkupElement element = markupStream.get();
    Response response = getResponse();

    if (element instanceof ComponentTag) {
        Session session = getSession();

        if (session instanceof TemplateWebSession) {
            TemplateWebSession webSession = ((TemplateWebSession) session);

            NavigationState navigationState = webSession.getNavigationState();

            // If we have cached navigation HTML then check if we can use it
            if (navigationState.getCachedBackendMainNavigationHTML() != null) {
                /*
                 * If we are rendering the main navigation menu for the last page accessed in the
                 * navigation hierarchy then use the cached navigation HTML.
                 */
                if (navigationState.isLastPageAccessedInNavigationHierarchy(getPage())) {
                    response.write(navigationState.getCachedBackendMainNavigationHTML());

                    return;
                }

                /*
                 * If we are rendering the main navigation menu for a page that is not in the navigation
                 * hierarchy then used the cached navigation HTML for the last page accessed in the
                 * navigation hierarchy.
                 */
                if (!webSession.getNavigation().isPageInNavigationHierarchy(getPage())) {
                    response.write(navigationState.getCachedBackendMainNavigationHTML());

                    return;
                }
            }

            String requestURI = ((HttpServletRequest) (RequestCycle.get().getRequest()).getContainerRequest())
                    .getRequestURI();

            StringBuilder buffer = new StringBuilder();

            // Build the main navigation menu
            renderNavigationGroup(requestURI, webSession.getNavigation(), 0, buffer);

            navigationState.setCachedBackendMainNavigationHTML(buffer.toString());

            response.write(navigationState.getCachedBackendMainNavigationHTML());
        }
    }
}

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

License:Apache License

/**
 * Render the backend user menu./*w w w .j a  v  a2s  .c  o  m*/
 */
@Override
protected void onRender() {
    MarkupStream markupStream = findMarkupStream();
    MarkupElement element = markupStream.get();
    Response response = getResponse();

    if (element instanceof ComponentTag) {
        Session session = getSession();

        if (session instanceof TemplateWebSession) {
            TemplateWebSession webSession = ((TemplateWebSession) session);

            NavigationState navigationState = webSession.getNavigationState();

            if (navigationState.getCachedBackendUserMenuHTML() == null) {
                if (webSession.isUserLoggedIn()) {
                    String buffer = "<li class=\"dropdown user user-menu\">"
                            + "<a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\"><img src=\""
                            + getRequest().getContextPath() + "/images/user-grey.png"
                            + "\" class=\"user-image\" alt=\"User Image\"><span class=\"hidden-xs\">"
                            + webSession.getUserFullName() + "</span></a><ul class=\"dropdown-menu\">"
                            + "<li class=\"user-header\"><img src=\"" + getRequest().getContextPath()
                            + "/images/user-white.png\" class=\"img-circle\" alt=\"User Image\"><p>"
                            + webSession.getUserFullName() + "</p></li><li class=\"user-footer\">"
                            + "<div class=\"pull-right\"><a href=\"" + getRequest().getContextPath()
                            + "/logout\" class=\"btn btn-default btn-flat\">Logout</a></div></li></ul></li>";

                    navigationState.setCachedBackendUserMenuHTML(buffer);
                } else {
                    String buffer = "<li class=\"user user-menu\"><a href=\""
                            + urlFor(LoginPage.class, new PageParameters())
                            + "\" class=\"dropdown-toggle\"><i class=\"fa fa-sign-in\"></i>"
                            + "<span class=\"hidden-xs\">Login</span></a></li>";

                    navigationState.setCachedBackendUserMenuHTML(buffer);
                }
            }

            response.write(navigationState.getCachedBackendUserMenuHTML());
        }
    }
}

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

License:Apache License

/**
 * Render the backend user panel.//from w  ww  . ja va2s .  c  om
 */
@Override
protected void onRender() {
    MarkupStream markupStream = findMarkupStream();
    MarkupElement element = markupStream.get();
    Response response = getResponse();

    if (element instanceof ComponentTag) {
        Session session = getSession();

        if (session instanceof TemplateWebSession) {
            TemplateWebSession webSession = ((TemplateWebSession) session);

            NavigationState navigationState = webSession.getNavigationState();

            if (navigationState.getCachedBackendUserPanelHTML() == null) {
                if (webSession.isUserLoggedIn()) {
                    String buffer = "<div class=\"user-panel\"><div class=\"pull-left image\"><img src=\""
                            + getRequest().getContextPath() + "/images/user-white.png"
                            + "\" class=\"img-circle\" alt=\"User Image\"/></div>"
                            + "<div class=\"pull-left info\"><p>" + webSession.getUserFullName()
                            + "</p></div></div>";

                    navigationState.setCachedBackendUserPanelHTML(buffer);
                } else {
                    navigationState.setCachedBackendUserPanelHTML("");
                }
            }

            response.write(navigationState.getCachedBackendUserPanelHTML());
        }
    }
}

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

License:Apache License

/**
 * Render the breadcrumbs./*from w w w .  ja va 2  s .  co  m*/
 */
@Override
protected void onRender() {
    MarkupStream markupStream = findMarkupStream();
    MarkupElement element = markupStream.get();
    Response response = getResponse();

    if (element instanceof ComponentTag) {
        Session session = getSession();

        if (session instanceof TemplateWebSession) {
            TemplateWebSession webSession = ((TemplateWebSession) session);

            NavigationState navigationState = webSession.getNavigationState();

            // If we have cached breadcrumbs HTML then check if we can use it
            if (navigationState.getCachedBreadcrumbsHTML() != null) {
                /*
                 * If we are rendering the breadcrumbs for the last page accessed in the navigation
                 * hierarchy then use the cached navigation HTML.
                 */
                if (navigationState.isLastPageAccessedInNavigationHierarchy(getPage())) {
                    response.write(navigationState.getCachedBreadcrumbsHTML());

                    return;
                }

                /*
                 * If we are rendering the breadcrumbs for a page that is not in the navigation
                 * hierarchy then used the cached breadcrumbs HTML for the last page accessed in the
                 * navigation hierarchy.
                 */
                if (!webSession.getNavigation().isPageInNavigationHierarchy(getPage())) {
                    response.write(navigationState.getCachedBreadcrumbsHTML());

                    return;
                }
            }

            StringBuilder buffer = new StringBuilder();

            buffer.append("<ol class=\"breadcrumb\">");

            Class<? extends Page> clazz;

            if (webSession.isUserLoggedIn()) {
                clazz = TemplateWebApplication.getTemplateWebApplication().getSecureHomePage();
            } else {
                clazz = TemplateWebApplication.getTemplateWebApplication().getHomePage();
            }

            if (clazz.isAssignableFrom(getPage().getPageClass())) {
                buffer.append("<li class=\"active\"><a href=\"#\"><i class=\"fa fa-home\"></i> Home</a></li>");
            } else {
                buffer.append("<li><a href=\"");

                buffer.append(RequestCycle.get().urlFor(clazz, new PageParameters()));

                buffer.append("\"><i class=\"fa fa-home\"></i> Home</a></li>");

                renderBreadcrumbs(webSession.getNavigation(), buffer);
            }

            buffer.append("</ol>");

            navigationState.setLastPageAccessedInNavigationHierarchy(getPage());

            navigationState.setCachedBreadcrumbsHTML(buffer.toString());

            response.write(navigationState.getCachedBreadcrumbsHTML());
        }
    }
}