Repository: wicket
Updated Branches:
  refs/heads/WICKET-6056-client-properties d6235ba55 -> 954f27754


WICKET-6056 added factory methods for clientInfo


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

Branch: refs/heads/WICKET-6056-client-properties
Commit: 954f27754ea3841173871cc56e58966d63c95226
Parents: d6235ba
Author: Sven Meier <svenme...@apache.org>
Authored: Thu Nov 24 18:05:40 2016 +0100
Committer: Sven Meier <svenme...@apache.org>
Committed: Thu Nov 24 18:05:40 2016 +0100

----------------------------------------------------------------------
 .../wicket/ajax/AjaxClientInfoBehavior.java     |  7 +++++-
 .../markup/html/pages/BrowserInfoForm.java      |  3 +--
 .../markup/html/pages/BrowserInfoPage.java      | 23 +++++++++++++++++---
 .../protocol/http/request/WebClientInfo.java    | 16 ++++++++++----
 4 files changed, 39 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/954f2775/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 ca39644..e16317a 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
@@ -68,7 +68,7 @@ public class AjaxClientInfoBehavior extends 
AbstractAjaxTimerBehavior
                RequestCycle requestCycle = RequestCycle.get();
                IRequestParameters requestParameters = 
requestCycle.getRequest().getRequestParameters();
 
-               WebClientInfo clientInfo = new WebClientInfo(requestCycle);
+               WebClientInfo clientInfo = newWebClientInfo(requestCycle);
                Session.get().setClientInfo(clientInfo);
 
                ClientProperties properties = clientInfo.getProperties();
@@ -78,6 +78,11 @@ public class AjaxClientInfoBehavior extends 
AbstractAjaxTimerBehavior
                onClientInfo(target, clientInfo);
        }
 
+       protected WebClientInfo newWebClientInfo(RequestCycle requestCycle)
+       {
+               return new WebClientInfo(requestCycle);
+       }
+
        /**
         * A callback method invoked when the client info is collected.
         * 

http://git-wip-us.apache.org/repos/asf/wicket/blob/954f2775/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 5a659e9..d78cb95 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
@@ -64,8 +64,7 @@ public class BrowserInfoForm extends 
GenericPanel<ClientProperties>
         */
        protected Form<ClientProperties> createForm(String componentId, 
IModel<ClientProperties> properties)
        {
-               Form<ClientProperties> form = new 
Form<ClientProperties>(componentId,
-                               new 
CompoundPropertyModel<ClientProperties>(properties))
+               Form<ClientProperties> form = new 
Form<ClientProperties>(componentId, properties)
                {
                        private static final long serialVersionUID = 1L;
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/954f2775/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 e7143d7..dc93bce 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
@@ -22,8 +22,11 @@ import org.apache.wicket.markup.head.OnLoadHeaderItem;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.link.Link;
 import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.LoadableDetachableModel;
 import org.apache.wicket.protocol.http.ClientProperties;
 import org.apache.wicket.protocol.http.WebSession;
+import org.apache.wicket.protocol.http.request.WebClientInfo;
+import org.apache.wicket.request.cycle.RequestCycle;
 
 /**
  * This page uses a form post right after the page has loaded in the browser, 
using JavaScript or
@@ -70,17 +73,26 @@ public class BrowserInfoPage extends WebPage
                return false;
        }
 
+       protected WebClientInfo newWebClientInfo(RequestCycle requestCycle)
+       {
+               return new WebClientInfo(requestCycle);
+       }
+
        /**
         * Adds components.
         */
        private void initComps()
        {
-               IModel<ClientProperties> properties = new 
IModel<ClientProperties>()
+               IModel<ClientProperties> properties = new 
LoadableDetachableModel<ClientProperties>()
                {
                        @Override
-                       public ClientProperties getObject()
+                       protected ClientProperties load()
                        {
-                               return 
WebSession.get().getClientInfo().getProperties();
+                               WebClientInfo clientInfo = 
newWebClientInfo(getRequestCycle());
+
+                               WebSession.get().setClientInfo(clientInfo);
+
+                               return clientInfo.getProperties();
                        }
                };
 
@@ -104,6 +116,11 @@ public class BrowserInfoPage extends WebPage
                add(browserInfoForm);
        }
        
+       protected ClientProperties newClientInfo()
+       {
+               return WebSession.get().getClientInfo().getProperties();
+       }
+
        private static class ContinueLink extends Link<ClientProperties> {
 
                public ContinueLink(String id, IModel<ClientProperties> 
properties)

http://git-wip-us.apache.org/repos/asf/wicket/blob/954f2775/wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java
 
b/wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java
index 9fc4700..5561226 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java
@@ -52,7 +52,7 @@ public class WebClientInfo extends ClientInfo
        private final String userAgent;
 
        /** Client properties object. */
-       private final ClientProperties properties = new ClientProperties();
+       private final ClientProperties properties;
 
        /**
         * Construct.
@@ -79,7 +79,10 @@ public class WebClientInfo extends ClientInfo
                super();
 
                this.userAgent = userAgent;
+
+               properties = newClientProperties();
                properties.setRemoteAddress(getRemoteAddr(requestCycle));
+
                init();
        }
 
@@ -93,6 +96,11 @@ public class WebClientInfo extends ClientInfo
                return properties;
        }
 
+       protected ClientProperties newClientProperties()
+       {
+               return new ClientProperties();
+       }
+
        /**
         * returns the user agent string.
         * 
@@ -219,8 +227,8 @@ public class WebClientInfo extends ClientInfo
 
                        if (userAgent.contains("version/"))
                        {
-                               // e.g.: Mozilla/5.0 (Windows; U; Windows NT 
6.1; sv-SE) AppleWebKit/533.19.4
-// (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4
+                               // e.g.: Mozilla/5.0 (Windows; U; Windows NT 
6.1; sv-SE) AppleWebKit/533.19
+                               // (KHTML, like Gecko) Version/5.0.3 
Safari/533.19.4
                                
setMajorMinorVersionByPattern("version/(\\d+)\\.(\\d+)");
                        }
                }
@@ -239,7 +247,7 @@ public class WebClientInfo extends ClientInfo
                        if (properties.isBrowserMozillaFirefox())
                        {
                                // e.g.: Mozilla/5.0 (X11; U; Linux i686; 
pl-PL; rv:1.9.0.2) Gecko/20121223
-// Ubuntu/9.25 (jaunty) Firefox/3.8
+                               // Ubuntu/9.25 (jaunty) Firefox/3.8
                                
setMajorMinorVersionByPattern("firefox/(\\d+)\\.(\\d+)");
                        }
                }

Reply via email to