WICKET-5892 ClientProperties#isJavaScriptEnabled()
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/ca8aba72 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/ca8aba72 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/ca8aba72 Branch: refs/heads/master Commit: ca8aba7246e8d0944d96de6a78d619f613343981 Parents: b4aec3a Author: Sven Meier <[email protected]> Authored: Fri Apr 24 12:09:01 2015 +0200 Committer: Sven Meier <[email protected]> Committed: Fri Apr 24 12:09:01 2015 +0200 ---------------------------------------------------------------------- .../wicket/ajax/AjaxClientInfoBehavior.java | 2 ++ .../markup/html/pages/BrowserInfoForm.java | 6 ++-- .../markup/html/pages/BrowserInfoPage.java | 30 +++++++++++--------- .../wicket/protocol/http/ClientProperties.java | 19 +++++++++++++ 4 files changed, 41 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/ca8aba72/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java index cbe18fc..a2fc41a 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java @@ -84,6 +84,8 @@ public class AjaxClientInfoBehavior extends AbstractAjaxTimerBehavior Session.get().setClientInfo(clientInfo); ClientProperties properties = clientInfo.getProperties(); + properties.setJavaScriptEnabled(true); + properties.setNavigatorAppCodeName(navigatorAppCodeName); properties.setNavigatorAppName(navigatorAppName); properties.setNavigatorAppVersion(navigatorAppVersion); http://git-wip-us.apache.org/repos/asf/wicket/blob/ca8aba72/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoForm.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoForm.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoForm.java index b1852d0..8164c1b 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoForm.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoForm.java @@ -22,7 +22,7 @@ import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.head.JavaScriptHeaderItem; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.TextField; -import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.markup.html.panel.GenericPanel; import org.apache.wicket.model.CompoundPropertyModel; import org.apache.wicket.model.IModel; import org.apache.wicket.protocol.http.ClientProperties; @@ -32,7 +32,7 @@ import org.apache.wicket.request.resource.ResourceReference; /** * Form for posting JavaScript properties. */ -public class BrowserInfoForm extends Panel +public class BrowserInfoForm extends GenericPanel<ClientProperties> { private static final long serialVersionUID = 1L; @@ -51,7 +51,7 @@ public class BrowserInfoForm extends Panel */ public BrowserInfoForm(String id, IModel<ClientProperties> properties) { - super(id); + super(id, properties); this.form = createForm("postback", properties); form.setOutputMarkupId(true); http://git-wip-us.apache.org/repos/asf/wicket/blob/ca8aba72/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java index c089f89..6b63972 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java @@ -77,7 +77,16 @@ public class BrowserInfoPage extends WebPage */ private void initComps() { - final ContinueLink link = new ContinueLink("link"); + IModel<ClientProperties> properties = new AbstractReadOnlyModel<ClientProperties>() + { + @Override + public ClientProperties getObject() + { + return WebSession.get().getClientInfo().getProperties(); + } + }; + + final ContinueLink link = new ContinueLink("link", properties); add(link); WebComponent meta = new WebComponent("meta"); @@ -93,15 +102,6 @@ public class BrowserInfoPage extends WebPage })); add(meta); - IModel<ClientProperties> properties = new AbstractReadOnlyModel<ClientProperties>() - { - @Override - public ClientProperties getObject() - { - return WebSession.get().getClientInfo().getProperties(); - } - }; - browserInfoForm = new BrowserInfoForm("postback", properties) { private static final long serialVersionUID = 1L; @@ -109,16 +109,18 @@ public class BrowserInfoPage extends WebPage @Override protected void afterSubmit() { + getModelObject().setJavaScriptEnabled(true); + continueToOriginalDestination(); } }; add(browserInfoForm); } - private class ContinueLink extends Link<Void> { - public ContinueLink(String id) + private class ContinueLink extends Link<ClientProperties> { + public ContinueLink(String id, IModel<ClientProperties> properties) { - super(id); + super(id, properties); } @Override @@ -130,6 +132,8 @@ public class BrowserInfoPage extends WebPage @Override public void onClick() { + getModelObject().setJavaScriptEnabled(false); + continueToOriginalDestination(); } }; http://git-wip-us.apache.org/repos/asf/wicket/blob/ca8aba72/wicket-core/src/main/java/org/apache/wicket/protocol/http/ClientProperties.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/ClientProperties.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/ClientProperties.java index 3153e32..f8bb40b 100644 --- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/ClientProperties.java +++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/ClientProperties.java @@ -85,6 +85,8 @@ public class ClientProperties implements IClusterable private String hostname; + private boolean javaScriptEnabled; + /** * @return The browser height at the time it was measured */ @@ -352,6 +354,15 @@ public class ClientProperties implements IClusterable } /** + * Flag indicating support of JavaScript in the browser. + * + * @return True if JavaScript is enabled + */ + public boolean isJavaScriptEnabled() { + return javaScriptEnabled; + } + + /** * Flag indicating that the browser is a derivative of the Microsoft Internet Explorer browser * platform. * @@ -722,6 +733,14 @@ public class ClientProperties implements IClusterable this.utcOffset = utcOffset; } + /** + * @param javaScriptEnabled + * is JavaScript supported in the browser + */ + public void setJavaScriptEnabled(boolean javaScriptEnabled) { + this.javaScriptEnabled = javaScriptEnabled; + } + @Override public String toString() {
