You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2016/11/25 17:53:34 UTC

wicket git commit: WICKET-6056 added factory methods for clientInfo

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 <sv...@apache.org>
Authored: Thu Nov 24 18:05:40 2016 +0100
Committer: Sven Meier <sv...@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+)");
 			}
 		}