Search in sources :

Example 91 with Page

use of org.apache.wicket.Page in project wicket by apache.

the class PushHeaderItem method push.

/**
 * Creates a URL and pushes the resource to the client - this is only supported if http2 is
 * enabled
 *
 * @param pushItems
 *            a list of items to be pushed to the client
 * @return the current push header item
 */
@SuppressWarnings("unchecked")
public PushHeaderItem push(List<PushItem> pushItems) {
    RequestCycle requestCycle = RequestCycle.get();
    if (isHttp2(getContainerRequest(requestCycle.getRequest())))
        for (PushItem pushItem : pushItems) {
            Object object = pushItem.getObject();
            PageParameters parameters = pushItem.getPageParameters();
            if (object == null) {
                throw new WicketRuntimeException("Please provide an object to the items to be pushed, so that the url can be created for the given resource.");
            }
            CharSequence url = null;
            if (object instanceof ResourceReference) {
                url = requestCycle.urlFor((ResourceReference) object, parameters);
            } else if (Page.class.isAssignableFrom(object.getClass())) {
                url = requestCycle.urlFor((Class<? extends Page>) object, parameters);
            } else if (object instanceof IRequestHandler) {
                url = requestCycle.urlFor((IRequestHandler) object);
            } else if (pushItem.getUrl() != null) {
                url = pushItem.getUrl();
            } else {
                Url encoded = new PageParametersEncoder().encodePageParameters(parameters);
                String queryString = encoded.getQueryString();
                url = object.toString() + (queryString != null ? "?" + queryString : "");
            }
            if (url.toString().equals(".")) {
                url = "/";
            } else if (url.toString().startsWith(".")) {
                url = url.toString().substring(1);
            }
            // The context path and the filter have to be applied to the URL, because otherwise
            // the resource is not pushed correctly
            StringBuilder partialUrl = new StringBuilder();
            String contextPath = WebApplication.get().getServletContext().getContextPath();
            partialUrl.append(contextPath);
            if (!"/".equals(contextPath)) {
                partialUrl.append('/');
            }
            String filterPath = WebApplication.get().getWicketFilter().getFilterPath();
            if ("/".equals(filterPath)) {
                filterPath = "";
            } else if (filterPath.endsWith("/")) {
                filterPath = filterPath.substring(0, filterPath.length() - 1);
            }
            partialUrl.append(filterPath);
            partialUrl.append(url.toString());
            // Set the url the resource is going to be pushed with
            pushItem.setUrl(partialUrl.toString());
            // Apply the push item to be used during the push process
            this.pushItems.add(pushItem);
        }
    return this;
}
Also used : IRequestHandler(org.apache.wicket.request.IRequestHandler) RequestCycle(org.apache.wicket.request.cycle.RequestCycle) WicketRuntimeException(org.apache.wicket.WicketRuntimeException) Page(org.apache.wicket.Page) WebPage(org.apache.wicket.markup.html.WebPage) PageParameters(org.apache.wicket.request.mapper.parameter.PageParameters) Url(org.apache.wicket.request.Url) ResourceReference(org.apache.wicket.request.resource.ResourceReference) PageParametersEncoder(org.apache.wicket.request.mapper.parameter.PageParametersEncoder)

Example 92 with Page

use of org.apache.wicket.Page in project wicket by apache.

the class WebSocketMessageBroadcastHandler method respond.

@Override
public void respond(IRequestCycle requestCycle) {
    final Application application = Application.get();
    final Runnable action = new Runnable() {

        @Override
        public void run() {
            if (pageId != AbstractWebSocketProcessor.NO_PAGE_ID) {
                Page page = (Page) Session.get().getPageManager().getPage(pageId);
                page.send(application, Broadcast.BREADTH, payload);
            } else {
                ResourceReference reference = new SharedResourceReference(resourceName);
                IResource resource = reference.getResource();
                if (resource instanceof WebSocketResource) {
                    WebSocketResource wsResource = (WebSocketResource) resource;
                    wsResource.onPayload(payload);
                } else {
                    throw new IllegalStateException(String.format("Shared resource with name '%s' is not a %s but %s", resourceName, WebSocketResource.class.getSimpleName(), Classes.name(resource.getClass())));
                }
            }
        }
    };
    WebSocketSettings webSocketSettings = WebSocketSettings.Holder.get(application);
    webSocketSettings.getSendPayloadExecutor().run(action);
}
Also used : SharedResourceReference(org.apache.wicket.request.resource.SharedResourceReference) Page(org.apache.wicket.Page) WebSocketSettings(org.apache.wicket.protocol.ws.WebSocketSettings) SharedResourceReference(org.apache.wicket.request.resource.SharedResourceReference) ResourceReference(org.apache.wicket.request.resource.ResourceReference) Application(org.apache.wicket.Application) IResource(org.apache.wicket.request.resource.IResource)

Example 93 with Page

use of org.apache.wicket.Page in project wicket-orientdb by OrienteerBAP.

the class OrientDefaultExceptionsHandlingListener method extractCurrentPage.

private Page extractCurrentPage(boolean fullSearch) {
    final RequestCycle requestCycle = RequestCycle.get();
    IRequestHandler handler = requestCycle.getActiveRequestHandler();
    if (handler == null) {
        handler = requestCycle.getRequestHandlerScheduledAfterCurrent();
        if (handler == null && fullSearch) {
            handler = OrientDbWebApplication.get().getRootRequestMapper().mapRequest(requestCycle.getRequest());
        }
    }
    if (handler instanceof IPageRequestHandler) {
        IPageRequestHandler pageRequestHandler = (IPageRequestHandler) handler;
        return (Page) pageRequestHandler.getPage();
    }
    return null;
}
Also used : IRequestHandler(org.apache.wicket.request.IRequestHandler) RequestCycle(org.apache.wicket.request.cycle.RequestCycle) IRequestCycle(org.apache.wicket.request.IRequestCycle) IPageRequestHandler(org.apache.wicket.core.request.handler.IPageRequestHandler) Page(org.apache.wicket.Page)

Example 94 with Page

use of org.apache.wicket.Page in project wiquery by WiQuery.

the class WiQueryTester method getRepeatingView.

public RepeatingView getRepeatingView(String path) {
    Page renderedPage = getLastRenderedPage();
    assertComponent(path, RepeatingView.class);
    RepeatingView rv = (RepeatingView) renderedPage.get(path);
    return rv;
}
Also used : RepeatingView(org.apache.wicket.markup.repeater.RepeatingView) Page(org.apache.wicket.Page)

Aggregations

Page (org.apache.wicket.Page)94 Test (org.junit.Test)50 WebPage (org.apache.wicket.markup.html.WebPage)22 Component (org.apache.wicket.Component)11 AjaxLink (org.apache.wicket.ajax.markup.html.AjaxLink)7 IRequestablePage (org.apache.wicket.request.component.IRequestablePage)7 WicketRuntimeException (org.apache.wicket.WicketRuntimeException)6 IRequestHandler (org.apache.wicket.request.IRequestHandler)6 RequestCycle (org.apache.wicket.request.cycle.RequestCycle)6 PageParameters (org.apache.wicket.request.mapper.parameter.PageParameters)6 AjaxRequestTarget (org.apache.wicket.ajax.AjaxRequestTarget)5 PageProvider (org.apache.wicket.core.request.handler.PageProvider)5 IMarkupFragment (org.apache.wicket.markup.IMarkupFragment)5 DummyPage (org.apache.wicket.resource.DummyPage)5 ArrayList (java.util.ArrayList)4 AbstractAjaxBehavior (org.apache.wicket.behavior.AbstractAjaxBehavior)4 AccessDeniedPage (org.apache.wicket.markup.html.pages.AccessDeniedPage)4 Url (org.apache.wicket.request.Url)4 MockInnerClassPage (org.apache.wicket.util.tester.MockPageParameterPage.MockInnerClassPage)4 SuccessPage (org.apache.wicket.util.tester.apps_1.SuccessPage)4