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()
        {

Reply via email to