support setResponsePage and other redirects
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/7f89fede Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/7f89fede Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/7f89fede Branch: refs/heads/sandbox/atmosphere Commit: 7f89fedeb293d2c14af7250d2d8e069037801b94 Parents: 4e015bb Author: Emond Papegaaij <[email protected]> Authored: Tue Apr 10 07:44:08 2012 +0200 Committer: Emond Papegaaij <[email protected]> Committed: Thu Apr 19 11:07:55 2012 +0200 ---------------------------------------------------------------------- .../atmosphere/AtmosphereRequestHandler.java | 2 +- .../wicket/atmosphere/AtmosphereWebResponse.java | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/7f89fede/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/AtmosphereRequestHandler.java ---------------------------------------------------------------------- diff --git a/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/AtmosphereRequestHandler.java b/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/AtmosphereRequestHandler.java index c36f0b7..45a3d50 100644 --- a/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/AtmosphereRequestHandler.java +++ b/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/AtmosphereRequestHandler.java @@ -34,8 +34,8 @@ public class AtmosphereRequestHandler implements IRequestHandler { Page page = (Page)Application.get().getMapperContext().getPageInstance(pageKey.getPageId()); AjaxRequestTarget target = WebApplication.get().newAjaxRequestTarget(page); - executeHandlers(target, page); requestCycle.scheduleRequestHandlerAfterCurrent(target); + executeHandlers(target, page); } private void executeHandlers(AjaxRequestTarget target, Page page) http://git-wip-us.apache.org/repos/asf/wicket/blob/7f89fede/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/AtmosphereWebResponse.java ---------------------------------------------------------------------- diff --git a/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/AtmosphereWebResponse.java b/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/AtmosphereWebResponse.java index 34dc127..19e9b3e 100644 --- a/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/AtmosphereWebResponse.java +++ b/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/AtmosphereWebResponse.java @@ -11,6 +11,7 @@ public class AtmosphereWebResponse extends WebResponse { private AtmosphereResponse response; private final AppendingStringBuffer out; + private boolean redirect; public AtmosphereWebResponse(AtmosphereResponse response) { @@ -81,7 +82,9 @@ public class AtmosphereWebResponse extends WebResponse @Override public void sendRedirect(String url) { - throw new UnsupportedOperationException(); + out.clear(); + out.append("<ajax-response><redirect><![CDATA[" + url + "]]></redirect></ajax-response>"); + redirect = true; } @Override @@ -128,7 +131,8 @@ public class AtmosphereWebResponse extends WebResponse @Override public void write(CharSequence sequence) { - out.append(sequence); + if (!redirect) + out.append(sequence); } /**
