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