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