Repository: wicket
Updated Branches:
  refs/heads/WICKET-6056-client-properties [created] d6235ba55


WICKET-6056 make it easier to gather more properties


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/d6235ba5
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/d6235ba5
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/d6235ba5

Branch: refs/heads/WICKET-6056-client-properties
Commit: d6235ba555657b44af58fd3bb2a5da67ca5b931f
Parents: ce66c24
Author: Sven Meier <svenme...@apache.org>
Authored: Thu Nov 24 16:32:22 2016 +0100
Committer: Sven Meier <svenme...@apache.org>
Committed: Thu Nov 24 16:36:02 2016 +0100

----------------------------------------------------------------------
 .../wicket/ajax/AjaxClientInfoBehavior.java     | 36 +---------------
 .../markup/html/pages/BrowserInfoForm.html      | 16 -------
 .../markup/html/pages/BrowserInfoForm.java      | 43 ++-----------------
 .../markup/html/pages/wicket-browser-info.js    |  6 ++-
 .../wicket/protocol/http/ClientProperties.java  | 45 +++++++++++++++++++-
 5 files changed, 54 insertions(+), 92 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/d6235ba5/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 164c551..ca39644 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
@@ -67,45 +67,13 @@ public class AjaxClientInfoBehavior extends 
AbstractAjaxTimerBehavior
 
                RequestCycle requestCycle = RequestCycle.get();
                IRequestParameters requestParameters = 
requestCycle.getRequest().getRequestParameters();
-               String navigatorAppName = 
requestParameters.getParameterValue("navigatorAppName").toString("N/A");
-               String navigatorAppVersion = 
requestParameters.getParameterValue("navigatorAppVersion").toString("N/A");
-               String navigatorAppCodeName = 
requestParameters.getParameterValue("navigatorAppCodeName").toString("N/A");
-               boolean navigatorCookieEnabled = 
requestParameters.getParameterValue("navigatorCookieEnabled").toBoolean(false);
-               Boolean navigatorJavaEnabled = 
requestParameters.getParameterValue("navigatorJavaEnabled").toBoolean(false);
-               String navigatorLanguage = 
requestParameters.getParameterValue("navigatorLanguage").toString("N/A");
-               String navigatorPlatform = 
requestParameters.getParameterValue("navigatorPlatform").toString("N/A");
-               String navigatorUserAgent = 
requestParameters.getParameterValue("navigatorUserAgent").toString("N/A");
-               int screenWidth = 
requestParameters.getParameterValue("screenWidth").toInt(-1);
-               int screenHeight = 
requestParameters.getParameterValue("screenHeight").toInt(-1);
-               int screenColorDepth = 
requestParameters.getParameterValue("screenColorDepth").toInt(-1);
-               String utcOffset = 
requestParameters.getParameterValue("utcOffset").toString("N/A");
-               String utcDSTOffset = 
requestParameters.getParameterValue("utcDSTOffset").toString("N/A");
-               int browserWidth = 
requestParameters.getParameterValue("browserWidth").toInt(-1);
-               int browserHeight = 
requestParameters.getParameterValue("browserHeight").toInt(-1);
-               String hostname = 
requestParameters.getParameterValue("hostname").toString("N/A");
 
                WebClientInfo clientInfo = new WebClientInfo(requestCycle);
                Session.get().setClientInfo(clientInfo);
 
                ClientProperties properties = clientInfo.getProperties();
-               properties.setJavaScriptEnabled(true);
-
-               properties.setNavigatorAppCodeName(navigatorAppCodeName);
-               properties.setNavigatorAppName(navigatorAppName);
-               properties.setNavigatorAppVersion(navigatorAppVersion);
-               properties.setNavigatorCookieEnabled(navigatorCookieEnabled);
-               properties.setNavigatorJavaEnabled(navigatorJavaEnabled);
-               properties.setNavigatorLanguage(navigatorLanguage);
-               properties.setNavigatorPlatform(navigatorPlatform);
-               properties.setNavigatorUserAgent(navigatorUserAgent);
-               properties.setScreenWidth(screenWidth);
-               properties.setScreenHeight(screenHeight);
-               properties.setScreenColorDepth(screenColorDepth);
-               properties.setUtcOffset(utcOffset);
-               properties.setUtcDSTOffset(utcDSTOffset);
-               properties.setBrowserWidth(browserWidth);
-               properties.setBrowserHeight(browserHeight);
-               properties.setHostname(hostname);
+
+               properties.read(requestParameters);
 
                onClientInfo(target, clientInfo);
        }

http://git-wip-us.apache.org/repos/asf/wicket/blob/d6235ba5/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoForm.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoForm.html
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoForm.html
index 5676493..add368f 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoForm.html
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoForm.html
@@ -19,22 +19,6 @@
 <html xmlns:wicket="http://wicket.apache.org";>
        <wicket:panel>
                <form name="postback" wicket:id="postback" 
style="position:absolute; left: -10000px;">
-                       <input type="text" wicket:id="navigatorAppName" 
value="test" />
-                       <input type="text" wicket:id="navigatorAppVersion" 
value="test" />
-                       <input type="text" wicket:id="navigatorAppCodeName" />
-                       <input type="text" wicket:id="navigatorCookieEnabled" />
-                       <input type="text" wicket:id="navigatorJavaEnabled" />
-                       <input type="text" wicket:id="navigatorLanguage" />
-                       <input type="text" wicket:id="navigatorPlatform" />
-                       <input type="text" wicket:id="navigatorUserAgent" />
-                       <input type="text" wicket:id="screenWidth" />
-                       <input type="text" wicket:id="screenHeight" />
-                       <input type="text" wicket:id="screenColorDepth" />
-                       <input type="text" wicket:id="utcOffset" />
-                       <input type="text" wicket:id="utcDSTOffset" />
-                       <input type="text" wicket:id="browserWidth" />
-                       <input type="text" wicket:id="browserHeight" />
-                       <input type="text" wicket:id="hostname" />
                </form>
        </wicket:panel>
 </html>

http://git-wip-us.apache.org/repos/asf/wicket/blob/d6235ba5/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 8164c1b..5a659e9 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
@@ -16,12 +16,9 @@
  */
 package org.apache.wicket.markup.html.pages;
 
-import java.util.Locale;
-
 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.GenericPanel;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.IModel;
@@ -75,25 +72,11 @@ public class BrowserInfoForm extends 
GenericPanel<ClientProperties>
                        @Override
                        protected void onSubmit()
                        {
+                               
getModelObject().read(getRequest().getPostParameters());
+
                                afterSubmit();
                        }
                };
-               form.add(new ReadOnlyTextField<String>("navigatorAppName"));
-               form.add(new ReadOnlyTextField<String>("navigatorAppVersion"));
-               form.add(new ReadOnlyTextField<String>("navigatorAppCodeName"));
-               form.add(new 
ReadOnlyTextField<Boolean>("navigatorCookieEnabled"));
-               form.add(new 
ReadOnlyTextField<Boolean>("navigatorJavaEnabled"));
-               form.add(new ReadOnlyTextField<String>("navigatorLanguage"));
-               form.add(new ReadOnlyTextField<String>("navigatorPlatform"));
-               form.add(new ReadOnlyTextField<String>("navigatorUserAgent"));
-               form.add(new ReadOnlyTextField<String>("screenWidth"));
-               form.add(new ReadOnlyTextField<String>("screenHeight"));
-               form.add(new ReadOnlyTextField<String>("screenColorDepth"));
-               form.add(new ReadOnlyTextField<String>("utcOffset"));
-               form.add(new ReadOnlyTextField<String>("utcDSTOffset"));
-               form.add(new ReadOnlyTextField<String>("browserWidth"));
-               form.add(new ReadOnlyTextField<String>("browserHeight"));
-               form.add(new ReadOnlyTextField<String>("hostname"));
                return form;
        }
 
@@ -116,24 +99,4 @@ public class BrowserInfoForm extends 
GenericPanel<ClientProperties>
        {
                return form.getMarkupId();
        }
-       
-       private static final class ReadOnlyTextField<T> extends TextField<T> {
-
-               public ReadOnlyTextField(String id)
-               {
-                       super(id);
-               }
-
-               @Override
-               protected String getModelValue()
-               {
-                       return "";
-               }
-               
-               @Override
-               public Locale getLocale()
-               {
-                       return Locale.ENGLISH;
-               }
-       }
-}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/d6235ba5/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/wicket-browser-info.js
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/wicket-browser-info.js
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/wicket-browser-info.js
index 0d524af..5832fa0 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/wicket-browser-info.js
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/wicket-browser-info.js
@@ -77,7 +77,11 @@
                                var info = Wicket.BrowserInfo.collect();
                                var i;
                                for (i in info) {
-                                       postbackForm[i].value = info[i];
+                                       var input = 
document.createElement('input');
+                                       input.type = 'text';
+                                       input.name = i;
+                                       input.value = info[i];
+                                       postbackForm.appendChild(input);
                                }
 
                                return postbackForm;

http://git-wip-us.apache.org/repos/asf/wicket/blob/d6235ba5/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 b566708..3d5b54a 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
@@ -23,6 +23,7 @@ import java.util.TimeZone;
 import javax.servlet.http.Cookie;
 
 import org.apache.wicket.markup.html.pages.BrowserInfoPage;
+import org.apache.wicket.request.IRequestParameters;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.http.WebRequest;
 import org.apache.wicket.util.io.IClusterable;
@@ -777,4 +778,46 @@ public class ClientProperties implements IClusterable
                return b.toString();
        }
 
-}
+       /**
+        * Read parameters.
+        * 
+        * @param parameters
+        *            parameters sent from browser
+        */
+       public void read(IRequestParameters parameters)
+       {
+               String navigatorAppName = 
parameters.getParameterValue("navigatorAppName").toString("N/A");
+               String navigatorAppVersion = 
parameters.getParameterValue("navigatorAppVersion").toString("N/A");
+               String navigatorAppCodeName = 
parameters.getParameterValue("navigatorAppCodeName").toString("N/A");
+               boolean navigatorCookieEnabled = 
parameters.getParameterValue("navigatorCookieEnabled").toBoolean(false);
+               Boolean navigatorJavaEnabled = 
parameters.getParameterValue("navigatorJavaEnabled").toBoolean(false);
+               String navigatorLanguage = 
parameters.getParameterValue("navigatorLanguage").toString("N/A");
+               String navigatorPlatform = 
parameters.getParameterValue("navigatorPlatform").toString("N/A");
+               String navigatorUserAgent = 
parameters.getParameterValue("navigatorUserAgent").toString("N/A");
+               int screenWidth = 
parameters.getParameterValue("screenWidth").toInt(-1);
+               int screenHeight = 
parameters.getParameterValue("screenHeight").toInt(-1);
+               int screenColorDepth = 
parameters.getParameterValue("screenColorDepth").toInt(-1);
+               String utcOffset = 
parameters.getParameterValue("utcOffset").toString(null);
+               String utcDSTOffset = 
parameters.getParameterValue("utcDSTOffset").toString(null);
+               int browserWidth = 
parameters.getParameterValue("browserWidth").toInt(-1);
+               int browserHeight = 
parameters.getParameterValue("browserHeight").toInt(-1);
+               String hostname = 
parameters.getParameterValue("hostname").toString("N/A");
+
+               setNavigatorAppCodeName(navigatorAppCodeName);
+               setNavigatorAppName(navigatorAppName);
+               setNavigatorAppVersion(navigatorAppVersion);
+               setNavigatorCookieEnabled(navigatorCookieEnabled);
+               setNavigatorJavaEnabled(navigatorJavaEnabled);
+               setNavigatorLanguage(navigatorLanguage);
+               setNavigatorPlatform(navigatorPlatform);
+               setNavigatorUserAgent(navigatorUserAgent);
+               setScreenWidth(screenWidth);
+               setScreenHeight(screenHeight);
+               setScreenColorDepth(screenColorDepth);
+               setUtcOffset(utcOffset);
+               setUtcDSTOffset(utcDSTOffset);
+               setBrowserWidth(browserWidth);
+               setBrowserHeight(browserHeight);
+               setHostname(hostname);
+       }
+}
\ No newline at end of file

Reply via email to