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+)");
}
}