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 2015/04/24 12:13:37 UTC
[1/4] wicket git commit: get rid of ClientPropertiesBean,
it's so JSF-ish
Repository: wicket
Updated Branches:
refs/heads/master 77f211dd4 -> ca8aba724
get rid of ClientPropertiesBean, it's so JSF-ish
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/7c6066a3
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/7c6066a3
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/7c6066a3
Branch: refs/heads/master
Commit: 7c6066a343622cde71908bb2501cf103bc1e4f59
Parents: 77f211d
Author: Sven Meier <sv...@apache.org>
Authored: Fri Apr 24 10:25:54 2015 +0200
Committer: Sven Meier <sv...@apache.org>
Committed: Fri Apr 24 10:25:54 2015 +0200
----------------------------------------------------------------------
.../wicket/ajax/AjaxClientInfoBehavior.java | 4 +-
.../markup/html/pages/BrowserInfoForm.java | 467 ++-----------------
.../markup/html/pages/BrowserInfoPage.java | 13 +-
.../wicket/protocol/http/ClientProperties.java | 40 +-
.../protocol/http/request/WebClientInfo.java | 2 +-
5 files changed, 78 insertions(+), 448 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/7c6066a3/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 015f59f..30b2714 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
@@ -88,8 +88,8 @@ public class AjaxClientInfoBehavior extends AbstractAjaxTimerBehavior
properties.setNavigatorAppCodeName(navigatorAppCodeName);
properties.setNavigatorAppName(navigatorAppName);
properties.setNavigatorAppVersion(navigatorAppVersion);
- properties.setCookiesEnabled(navigatorCookieEnabled);
- properties.setJavaEnabled(navigatorJavaEnabled);
+ properties.setNavigatorCookieEnabled(navigatorCookieEnabled);
+ properties.setNavigatorJavaEnabled(navigatorJavaEnabled);
properties.setNavigatorLanguage(navigatorLanguage);
properties.setNavigatorPlatform(navigatorPlatform);
properties.setNavigatorUserAgent(navigatorUserAgent);
http://git-wip-us.apache.org/repos/asf/wicket/blob/7c6066a3/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 653c9eb..ab40dfa 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,18 +16,17 @@
*/
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.Panel;
import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.IModel;
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;
import org.apache.wicket.request.resource.JavaScriptResourceReference;
-import org.apache.wicket.util.io.IClusterable;
/**
* Form for posting JavaScript properties.
@@ -39,7 +38,7 @@ public class BrowserInfoForm extends Panel
/**
* The special form that submits the client/browser info
*/
- private final Form<? extends ClientPropertiesBean> form;
+ private final Form<ClientProperties> form;
/**
* Constructor.
@@ -47,11 +46,11 @@ public class BrowserInfoForm extends Panel
* @param id
* component id
*/
- public BrowserInfoForm(String id)
+ public BrowserInfoForm(String id, IModel<ClientProperties> properties)
{
super(id);
- this.form = createForm("postback");
+ this.form = createForm("postback", properties);
form.setOutputMarkupId(true);
add(form);
}
@@ -63,50 +62,35 @@ public class BrowserInfoForm extends Panel
* the id for the Form component
* @return the Form that will submit the data
*/
- protected Form<? extends ClientPropertiesBean> createForm(String componentId)
+ protected Form<ClientProperties> createForm(String componentId, IModel<ClientProperties> properties)
{
- Form<ClientPropertiesBean> form = new Form<ClientPropertiesBean>(componentId,
- new CompoundPropertyModel<ClientPropertiesBean>(new ClientPropertiesBean()))
+ Form<ClientProperties> form = new Form<ClientProperties>(componentId,
+ new CompoundPropertyModel<ClientProperties>(properties))
{
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit()
{
- ClientPropertiesBean propertiesBean = getModelObject();
-
- RequestCycle requestCycle = getRequestCycle();
- WebSession session = getWebSession();
- WebClientInfo clientInfo = session.getClientInfo();
-
- if (clientInfo == null)
- {
- clientInfo = new WebClientInfo(requestCycle);
- getSession().setClientInfo(clientInfo);
- }
-
- ClientProperties properties = clientInfo.getProperties();
- propertiesBean.merge(properties);
-
afterSubmit();
}
};
- form.add(new TextField<String>("navigatorAppName"));
- form.add(new TextField<String>("navigatorAppVersion"));
- form.add(new TextField<String>("navigatorAppCodeName"));
- form.add(new TextField<Boolean>("navigatorCookieEnabled"));
- form.add(new TextField<Boolean>("navigatorJavaEnabled"));
- form.add(new TextField<String>("navigatorLanguage"));
- form.add(new TextField<String>("navigatorPlatform"));
- form.add(new TextField<String>("navigatorUserAgent"));
- form.add(new TextField<String>("screenWidth"));
- form.add(new TextField<String>("screenHeight"));
- form.add(new TextField<String>("screenColorDepth"));
- form.add(new TextField<String>("utcOffset"));
- form.add(new TextField<String>("utcDSTOffset"));
- form.add(new TextField<String>("browserWidth"));
- form.add(new TextField<String>("browserHeight"));
- form.add(new TextField<String>("hostname"));
+ 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;
}
@@ -130,403 +114,24 @@ public class BrowserInfoForm extends Panel
{
return form.getMarkupId();
}
+
+ private static final class ReadOnlyTextField<T> extends TextField<T> {
- /**
- * Holds properties of the client.
- */
- public static class ClientPropertiesBean implements IClusterable
- {
- private static final long serialVersionUID = 1L;
-
- private String navigatorAppCodeName;
- private String navigatorAppName;
- private String navigatorAppVersion;
- private Boolean navigatorCookieEnabled = Boolean.FALSE;
- private Boolean navigatorJavaEnabled = Boolean.FALSE;
- private String navigatorLanguage;
- private String navigatorPlatform;
- private String navigatorUserAgent;
- private String screenColorDepth;
- private String screenHeight;
- private String screenWidth;
- private String utcOffset;
- private String utcDSTOffset;
- private String browserWidth;
- private String browserHeight;
- private String hostname;
-
- /**
- * Gets browserHeight.
- *
- * @return browserHeight
- */
- public String getBrowserHeight()
- {
- return browserHeight;
- }
-
- /**
- * Gets browserWidth.
- *
- * @return browserWidth
- */
- public String getBrowserWidth()
- {
- return browserWidth;
- }
-
- /**
- * Gets navigatorAppCodeName.
- *
- * @return navigatorAppCodeName
- */
- public String getNavigatorAppCodeName()
- {
- return navigatorAppCodeName;
- }
-
- /**
- * Gets navigatorAppName.
- *
- * @return navigatorAppName
- */
- public String getNavigatorAppName()
- {
- return navigatorAppName;
- }
-
- /**
- * Gets navigatorAppVersion.
- *
- * @return navigatorAppVersion
- */
- public String getNavigatorAppVersion()
+ public ReadOnlyTextField(String id)
{
- return navigatorAppVersion;
+ super(id);
}
- /**
- * Gets navigatorCookieEnabled.
- *
- * @return navigatorCookieEnabled
- */
- public Boolean getNavigatorCookieEnabled()
+ @Override
+ protected String getModelValue()
{
- return navigatorCookieEnabled;
+ return "";
}
-
- /**
- * Gets navigatorJavaEnabled.
- *
- * @return navigatorJavaEnabled
- */
- public Boolean getNavigatorJavaEnabled()
+
+ @Override
+ public Locale getLocale()
{
- return navigatorJavaEnabled;
+ return Locale.ENGLISH;
}
-
- /**
- * Gets navigatorLanguage.
- *
- * @return navigatorLanguage
- */
- public String getNavigatorLanguage()
- {
- return navigatorLanguage;
- }
-
- /**
- * Gets navigatorPlatform.
- *
- * @return navigatorPlatform
- */
- public String getNavigatorPlatform()
- {
- return navigatorPlatform;
- }
-
- /**
- * Gets navigatorUserAgent.
- *
- * @return navigatorUserAgent
- */
- public String getNavigatorUserAgent()
- {
- return navigatorUserAgent;
- }
-
- /**
- * Gets screenColorDepth.
- *
- * @return screenColorDepth
- */
- public String getScreenColorDepth()
- {
- return screenColorDepth;
- }
-
- /**
- * Gets screenHeight.
- *
- * @return screenHeight
- */
- public String getScreenHeight()
- {
- return screenHeight;
- }
-
- /**
- * Gets screenWidth.
- *
- * @return screenWidth
- */
- public String getScreenWidth()
- {
- return screenWidth;
- }
-
- /**
- * Gets utcOffset.
- *
- * @return utcOffset
- */
- public String getUtcOffset()
- {
- return utcOffset;
- }
-
- /**
- * Gets utcDSTOffset.
- *
- * @return utcOffset
- */
- public String getUtcDSTOffset()
- {
- return utcDSTOffset;
- }
-
- /**
- * Merge this with the given properties object.
- *
- * @param properties
- * the properties object to merge with
- */
- public void merge(ClientProperties properties)
- {
- properties.setNavigatorAppName(navigatorAppName);
- properties.setNavigatorAppVersion(navigatorAppVersion);
- properties.setNavigatorAppCodeName(navigatorAppCodeName);
- properties.setCookiesEnabled((navigatorCookieEnabled != null) ? navigatorCookieEnabled
- : false);
- properties.setJavaEnabled((navigatorJavaEnabled != null) ? navigatorJavaEnabled : false);
- properties.setNavigatorLanguage(navigatorLanguage);
- properties.setNavigatorPlatform(navigatorPlatform);
- properties.setNavigatorUserAgent(navigatorUserAgent);
- properties.setScreenWidth(getInt(screenWidth));
- properties.setScreenHeight(getInt(screenHeight));
- properties.setBrowserWidth(getInt(browserWidth));
- properties.setBrowserHeight(getInt(browserHeight));
- properties.setScreenColorDepth(getInt(screenColorDepth));
- properties.setUtcOffset(utcOffset);
- properties.setUtcDSTOffset(utcDSTOffset);
- properties.setHostname(hostname);
- }
-
- /**
- * Sets browserHeight.
- *
- * @param browserHeight
- * browserHeight
- */
- public void setBrowserHeight(String browserHeight)
- {
- this.browserHeight = browserHeight;
- }
-
- /**
- * Sets browserWidth.
- *
- * @param browserWidth
- * browserWidth
- */
- public void setBrowserWidth(String browserWidth)
- {
- this.browserWidth = browserWidth;
- }
-
- /**
- * Sets navigatorAppCodeName.
- *
- * @param navigatorAppCodeName
- * navigatorAppCodeName
- */
- public void setNavigatorAppCodeName(String navigatorAppCodeName)
- {
- this.navigatorAppCodeName = navigatorAppCodeName;
- }
-
- /**
- * Sets navigatorAppName.
- *
- * @param navigatorAppName
- * navigatorAppName
- */
- public void setNavigatorAppName(String navigatorAppName)
- {
- this.navigatorAppName = navigatorAppName;
- }
-
- /**
- * Sets navigatorAppVersion.
- *
- * @param navigatorAppVersion
- * navigatorAppVersion
- */
- public void setNavigatorAppVersion(String navigatorAppVersion)
- {
- this.navigatorAppVersion = navigatorAppVersion;
- }
-
- /**
- * Sets navigatorCookieEnabled.
- *
- * @param navigatorCookieEnabled
- * navigatorCookieEnabled
- */
- public void setNavigatorCookieEnabled(Boolean navigatorCookieEnabled)
- {
- this.navigatorCookieEnabled = navigatorCookieEnabled;
- }
-
- /**
- * Sets navigatorJavaEnabled.
- *
- * @param navigatorJavaEnabled
- * navigatorJavaEnabled
- */
- public void setNavigatorJavaEnabled(Boolean navigatorJavaEnabled)
- {
- this.navigatorJavaEnabled = navigatorJavaEnabled;
- }
-
- /**
- * Sets navigatorLanguage.
- *
- * @param navigatorLanguage
- * navigatorLanguage
- */
- public void setNavigatorLanguage(String navigatorLanguage)
- {
- this.navigatorLanguage = navigatorLanguage;
- }
-
- /**
- * Sets navigatorPlatform.
- *
- * @param navigatorPlatform
- * navigatorPlatform
- */
- public void setNavigatorPlatform(String navigatorPlatform)
- {
- this.navigatorPlatform = navigatorPlatform;
- }
-
- /**
- * Sets navigatorUserAgent.
- *
- * @param navigatorUserAgent
- * navigatorUserAgent
- */
- public void setNavigatorUserAgent(String navigatorUserAgent)
- {
- this.navigatorUserAgent = navigatorUserAgent;
- }
-
- /**
- * Sets screenColorDepth.
- *
- * @param screenColorDepth
- * screenColorDepth
- */
- public void setScreenColorDepth(String screenColorDepth)
- {
- this.screenColorDepth = screenColorDepth;
- }
-
- /**
- * Sets screenHeight.
- *
- * @param screenHeight
- * screenHeight
- */
- public void setScreenHeight(String screenHeight)
- {
- this.screenHeight = screenHeight;
- }
-
- /**
- * Sets screenWidth.
- *
- * @param screenWidth
- * screenWidth
- */
- public void setScreenWidth(String screenWidth)
- {
- this.screenWidth = screenWidth;
- }
-
- /**
- * @param hostname
- * the hostname shown in the browser.
- */
- public void setHostname(String hostname)
- {
- this.hostname = hostname;
- }
-
- /**
- * @return The clients hostname shown in the browser
- */
- public String getHostname()
- {
- return hostname;
- }
-
- /**
- * Sets utcOffset.
- *
- * @param utcOffset
- * utcOffset
- */
- public void setUtcOffset(String utcOffset)
- {
- this.utcOffset = utcOffset;
- }
-
- /**
- * Sets utcDSTOffset.
- *
- * @param utcDSTOffset
- * utcDSTOffset
- */
- public void setUtcDSTOffset(String utcDSTOffset)
- {
- this.utcDSTOffset = utcDSTOffset;
- }
-
- private int getInt(String value)
- {
- int intValue = -1;
- try
- {
- intValue = Integer.parseInt(value);
- }
- catch (NumberFormatException e)
- {
- // Do nothing
- }
- return intValue;
- }
-
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/7c6066a3/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 f6574e9..21ad364 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
@@ -71,7 +71,7 @@ public class BrowserInfoPage extends WebPage
else
{
ClientProperties properties = clientInfo.getProperties();
- properties.setJavaEnabled(false);
+ properties.setNavigatorJavaEnabled(false);
}
continueToOriginalDestination();
@@ -127,7 +127,16 @@ public class BrowserInfoPage extends WebPage
link.add(AttributeModifier.replace("href", urlModel));
add(link);
- browserInfoForm = new BrowserInfoForm("postback")
+ IModel<ClientProperties> properties = new AbstractReadOnlyModel<ClientProperties>()
+ {
+ @Override
+ public ClientProperties getObject()
+ {
+ return WebSession.get().getClientInfo().getProperties();
+ }
+ };
+
+ browserInfoForm = new BrowserInfoForm("postback", properties)
{
private static final long serialVersionUID = 1L;
http://git-wip-us.apache.org/repos/asf/wicket/blob/7c6066a3/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 6c72cf4..3153e32 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
@@ -65,8 +65,8 @@ public class ClientProperties implements IClusterable
private int browserVersionMajor = -1;
private int browserVersionMinor = -1;
private int browserWidth = -1;
- private boolean cookiesEnabled;
- private boolean javaEnabled;
+ private boolean navigatorCookieEnabled;
+ private boolean navigatorJavaEnabled;
private String navigatorAppCodeName;
private String navigatorAppName;
private String navigatorAppVersion;
@@ -424,26 +424,42 @@ public class ClientProperties implements IClusterable
}
/**
+ * @deprecated use {@link #isNavigatorCookieEnabled()} instead
+ */
+ public boolean isCookiesEnabled()
+ {
+ return isNavigatorCookieEnabled();
+ }
+
+ /**
+ * @deprecated use {@link #isNavigatorJavaEnabled()} instead
+ */
+ public boolean isJavaEnabled()
+ {
+ return isNavigatorJavaEnabled();
+ }
+
+ /**
*
*
* @return The client's navigator.cookieEnabled property.
*/
- public boolean isCookiesEnabled()
+ public boolean isNavigatorCookieEnabled()
{
- if (!cookiesEnabled && RequestCycle.get() != null)
+ if (!navigatorCookieEnabled && RequestCycle.get() != null)
{
Collection<Cookie> cookies = ((WebRequest)RequestCycle.get().getRequest()).getCookies();
- cookiesEnabled = cookies != null && cookies.size() > 0;
+ navigatorCookieEnabled = cookies != null && cookies.size() > 0;
}
- return cookiesEnabled;
+ return navigatorCookieEnabled;
}
/**
* @return The client's navigator.javaEnabled property.
*/
- public boolean isJavaEnabled()
+ public boolean isNavigatorJavaEnabled()
{
- return javaEnabled;
+ return navigatorJavaEnabled;
}
/**
@@ -565,18 +581,18 @@ public class ClientProperties implements IClusterable
* @param cookiesEnabled
* The client's navigator.cookieEnabled property.
*/
- public void setCookiesEnabled(boolean cookiesEnabled)
+ public void setNavigatorCookieEnabled(boolean cookiesEnabled)
{
- this.cookiesEnabled = cookiesEnabled;
+ this.navigatorCookieEnabled = cookiesEnabled;
}
/**
* @param navigatorJavaEnabled
* The client's navigator.javaEnabled property.
*/
- public void setJavaEnabled(boolean navigatorJavaEnabled)
+ public void setNavigatorJavaEnabled(boolean navigatorJavaEnabled)
{
- javaEnabled = navigatorJavaEnabled;
+ this.navigatorJavaEnabled = navigatorJavaEnabled;
}
/**
http://git-wip-us.apache.org/repos/asf/wicket/blob/7c6066a3/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 85e751e..9fc4700 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
@@ -46,7 +46,7 @@ public class WebClientInfo extends ClientInfo
/**
* The user agent string from the User-Agent header, app. Theoretically, this might differ from
- * {@link org.apache.wicket.protocol.http.ClientProperties#isJavaEnabled()} property, which is
+ * {@link org.apache.wicket.protocol.http.ClientProperties#isNavigatorJavaEnabled()} property, which is
* not set until an actual reply from a browser (e.g. using {@link BrowserInfoPage} is set.
*/
private final String userAgent;
[2/4] wicket git commit: declare reference for js
Posted by sv...@apache.org.
declare reference for js
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/16311e84
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/16311e84
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/16311e84
Branch: refs/heads/master
Commit: 16311e84a32cfe8c4124d013df3b0b520be36b39
Parents: 7c6066a
Author: Sven Meier <sv...@apache.org>
Authored: Fri Apr 24 10:31:34 2015 +0200
Committer: Sven Meier <sv...@apache.org>
Committed: Fri Apr 24 10:31:34 2015 +0200
----------------------------------------------------------------------
.../java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java | 4 +---
.../org/apache/wicket/markup/html/pages/BrowserInfoForm.java | 6 ++++--
2 files changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/16311e84/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 30b2714..cbe18fc 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
@@ -26,7 +26,6 @@ import org.apache.wicket.protocol.http.ClientProperties;
import org.apache.wicket.protocol.http.request.WebClientInfo;
import org.apache.wicket.request.IRequestParameters;
import org.apache.wicket.request.cycle.RequestCycle;
-import org.apache.wicket.request.resource.JavaScriptResourceReference;
import org.apache.wicket.util.time.Duration;
/**
@@ -130,7 +129,6 @@ public class AjaxClientInfoBehavior extends AbstractAjaxTimerBehavior
{
super.renderHead(component, response);
- response.render(JavaScriptHeaderItem.forReference(
- new JavaScriptResourceReference(BrowserInfoForm.class, "wicket-browser-info.js")));
+ response.render(JavaScriptHeaderItem.forReference(BrowserInfoForm.JS));
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/16311e84/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 ab40dfa..b1852d0 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
@@ -27,6 +27,7 @@ import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.protocol.http.ClientProperties;
import org.apache.wicket.request.resource.JavaScriptResourceReference;
+import org.apache.wicket.request.resource.ResourceReference;
/**
* Form for posting JavaScript properties.
@@ -34,6 +35,8 @@ import org.apache.wicket.request.resource.JavaScriptResourceReference;
public class BrowserInfoForm extends Panel
{
private static final long serialVersionUID = 1L;
+
+ public static final ResourceReference JS = new JavaScriptResourceReference(BrowserInfoForm.class, "wicket-browser-info.js");
/**
* The special form that submits the client/browser info
@@ -103,8 +106,7 @@ public class BrowserInfoForm extends Panel
{
super.renderHead(response);
- response.render(JavaScriptHeaderItem.forReference(
- new JavaScriptResourceReference(BrowserInfoForm.class, "wicket-browser-info.js")));
+ response.render(JavaScriptHeaderItem.forReference(JS));
}
/**
[3/4] wicket git commit: simplified with meta refresh to the link
Posted by sv...@apache.org.
simplified with meta refresh to the link
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b4aec3a4
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b4aec3a4
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b4aec3a4
Branch: refs/heads/master
Commit: b4aec3a494d23a3e88192ff597092f1fa940ca52
Parents: 16311e8
Author: Sven Meier <sv...@apache.org>
Authored: Fri Apr 24 11:27:50 2015 +0200
Committer: Sven Meier <sv...@apache.org>
Committed: Fri Apr 24 11:27:50 2015 +0200
----------------------------------------------------------------------
.../markup/html/pages/BrowserInfoPage.java | 71 ++++++++------------
.../apache/wicket/protocol/http/WebSession.java | 23 +------
2 files changed, 31 insertions(+), 63 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/b4aec3a4/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 21ad364..c089f89 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
@@ -20,29 +20,26 @@ import org.apache.wicket.AttributeModifier;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.OnLoadHeaderItem;
import org.apache.wicket.markup.html.WebComponent;
-import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.model.AbstractReadOnlyModel;
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;
/**
- * <p>
* This page uses a form post right after the page has loaded in the browser, using JavaScript or
* alternative means to detect and pass on settings to the embedded form. The form submit method
* updates this session's {@link org.apache.wicket.core.request.ClientInfo} object and then redirects to
* the original location as was passed in as a URL argument in the constructor.
- * </p>
+ * <p>
+ * If JavaScript is not enabled in the browser, a "refresh" meta-header will initiate a get on this page to
+ * continue with the original destination. As a fallback the user can click a link to do the same.
* <p>
* This page is being used by the default implementation of {@link org.apache.wicket.Session#getClientInfo()},
* which in turn uses
* {@link org.apache.wicket.settings.RequestCycleSettings#getGatherExtendedBrowserInfo() a setting} to
* determine whether this page should be redirected to (it does when it is true).
- * </p>
*
* @author Eelco Hillenius
*/
@@ -53,28 +50,11 @@ public class BrowserInfoPage extends WebPage
private BrowserInfoForm browserInfoForm;
/**
- * Bookmarkable constructor. This is not for normal framework client use. It will be called
- * whenever JavaScript is not supported, and the browser info page's meta refresh fires to this
- * page. Prior to this, the other constructor should already have been called.
+ * Bookmarkable constructor.
*/
public BrowserInfoPage()
{
initComps();
- RequestCycle requestCycle = getRequestCycle();
- WebSession session = (WebSession)getSession();
- WebClientInfo clientInfo = session.getClientInfo();
- if (clientInfo == null)
- {
- clientInfo = new WebClientInfo(requestCycle);
- getSession().setClientInfo(clientInfo);
- }
- else
- {
- ClientProperties properties = clientInfo.getProperties();
- properties.setNavigatorJavaEnabled(false);
- }
-
- continueToOriginalDestination();
}
@Override
@@ -97,20 +77,10 @@ public class BrowserInfoPage extends WebPage
*/
private void initComps()
{
- WebComponent meta = new WebComponent("meta");
-
- final IModel<String> urlModel = new LoadableDetachableModel<String>()
- {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected String load()
- {
- CharSequence url = urlFor(BrowserInfoPage.class, null);
- return url.toString();
- }
- };
+ final ContinueLink link = new ContinueLink("link");
+ add(link);
+ WebComponent meta = new WebComponent("meta");
meta.add(AttributeModifier.replace("content", new AbstractReadOnlyModel<String>()
{
private static final long serialVersionUID = 1L;
@@ -118,14 +88,10 @@ public class BrowserInfoPage extends WebPage
@Override
public String getObject()
{
- return "0; url=" + urlModel.getObject();
+ return "0; url=" + link.getURL();
}
-
}));
add(meta);
- WebMarkupContainer link = new WebMarkupContainer("link");
- link.add(AttributeModifier.replace("href", urlModel));
- add(link);
IModel<ClientProperties> properties = new AbstractReadOnlyModel<ClientProperties>()
{
@@ -148,4 +114,23 @@ public class BrowserInfoPage extends WebPage
};
add(browserInfoForm);
}
+
+ private class ContinueLink extends Link<Void> {
+ public ContinueLink(String id)
+ {
+ super(id);
+ }
+
+ @Override
+ public CharSequence getURL()
+ {
+ return super.getURL();
+ }
+
+ @Override
+ public void onClick()
+ {
+ continueToOriginalDestination();
+ }
+ };
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/b4aec3a4/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebSession.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebSession.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebSession.java
index 590c31e..ef70e0a 100644
--- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebSession.java
+++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebSession.java
@@ -16,7 +16,6 @@
*/
package org.apache.wicket.protocol.http;
-import org.apache.wicket.MetaDataKey;
import org.apache.wicket.RestartResponseAtInterceptPageException;
import org.apache.wicket.Session;
import org.apache.wicket.markup.html.WebPage;
@@ -39,11 +38,6 @@ public class WebSession extends Session
return (WebSession)Session.get();
}
- private static final MetaDataKey<Boolean> BROWSER_WAS_POLLED_KEY = new MetaDataKey<Boolean>()
- {
- private static final long serialVersionUID = 1L;
- };
-
/**
* Constructor. Note that {@link RequestCycle} is not available until this constructor returns.
*
@@ -91,24 +85,13 @@ public class WebSession extends Session
if (clientInfo == null)
{
RequestCycle requestCycle = RequestCycle.get();
+ clientInfo = new WebClientInfo(requestCycle);
if (getApplication().getRequestCycleSettings().getGatherExtendedBrowserInfo())
{
- if (getMetaData(BROWSER_WAS_POLLED_KEY) == null)
- {
- // we haven't done the redirect yet; record that we will be
- // doing that now and redirect
- setMetaData(BROWSER_WAS_POLLED_KEY, Boolean.TRUE);
-
- WebPage browserInfoPage = newBrowserInfoPage();
- throw new RestartResponseAtInterceptPageException(browserInfoPage);
- }
- // if we get here, the redirect already has been done; clear
- // the meta data entry; we don't need it any longer is the client
- // info object will be cached too
- setMetaData(BROWSER_WAS_POLLED_KEY, null);
+ WebPage browserInfoPage = newBrowserInfoPage();
+ throw new RestartResponseAtInterceptPageException(browserInfoPage);
}
- clientInfo = new WebClientInfo(requestCycle);
}
return (WebClientInfo)clientInfo;
}
[4/4] wicket git commit: WICKET-5892
ClientProperties#isJavaScriptEnabled()
Posted by sv...@apache.org.
WICKET-5892 ClientProperties#isJavaScriptEnabled()
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/ca8aba72
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/ca8aba72
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/ca8aba72
Branch: refs/heads/master
Commit: ca8aba7246e8d0944d96de6a78d619f613343981
Parents: b4aec3a
Author: Sven Meier <sv...@apache.org>
Authored: Fri Apr 24 12:09:01 2015 +0200
Committer: Sven Meier <sv...@apache.org>
Committed: Fri Apr 24 12:09:01 2015 +0200
----------------------------------------------------------------------
.../wicket/ajax/AjaxClientInfoBehavior.java | 2 ++
.../markup/html/pages/BrowserInfoForm.java | 6 ++--
.../markup/html/pages/BrowserInfoPage.java | 30 +++++++++++---------
.../wicket/protocol/http/ClientProperties.java | 19 +++++++++++++
4 files changed, 41 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/ca8aba72/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 cbe18fc..a2fc41a 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
@@ -84,6 +84,8 @@ public class AjaxClientInfoBehavior extends AbstractAjaxTimerBehavior
Session.get().setClientInfo(clientInfo);
ClientProperties properties = clientInfo.getProperties();
+ properties.setJavaScriptEnabled(true);
+
properties.setNavigatorAppCodeName(navigatorAppCodeName);
properties.setNavigatorAppName(navigatorAppName);
properties.setNavigatorAppVersion(navigatorAppVersion);
http://git-wip-us.apache.org/repos/asf/wicket/blob/ca8aba72/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 b1852d0..8164c1b 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
@@ -22,7 +22,7 @@ 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.Panel;
+import org.apache.wicket.markup.html.panel.GenericPanel;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.protocol.http.ClientProperties;
@@ -32,7 +32,7 @@ import org.apache.wicket.request.resource.ResourceReference;
/**
* Form for posting JavaScript properties.
*/
-public class BrowserInfoForm extends Panel
+public class BrowserInfoForm extends GenericPanel<ClientProperties>
{
private static final long serialVersionUID = 1L;
@@ -51,7 +51,7 @@ public class BrowserInfoForm extends Panel
*/
public BrowserInfoForm(String id, IModel<ClientProperties> properties)
{
- super(id);
+ super(id, properties);
this.form = createForm("postback", properties);
form.setOutputMarkupId(true);
http://git-wip-us.apache.org/repos/asf/wicket/blob/ca8aba72/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 c089f89..6b63972 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
@@ -77,7 +77,16 @@ public class BrowserInfoPage extends WebPage
*/
private void initComps()
{
- final ContinueLink link = new ContinueLink("link");
+ IModel<ClientProperties> properties = new AbstractReadOnlyModel<ClientProperties>()
+ {
+ @Override
+ public ClientProperties getObject()
+ {
+ return WebSession.get().getClientInfo().getProperties();
+ }
+ };
+
+ final ContinueLink link = new ContinueLink("link", properties);
add(link);
WebComponent meta = new WebComponent("meta");
@@ -93,15 +102,6 @@ public class BrowserInfoPage extends WebPage
}));
add(meta);
- IModel<ClientProperties> properties = new AbstractReadOnlyModel<ClientProperties>()
- {
- @Override
- public ClientProperties getObject()
- {
- return WebSession.get().getClientInfo().getProperties();
- }
- };
-
browserInfoForm = new BrowserInfoForm("postback", properties)
{
private static final long serialVersionUID = 1L;
@@ -109,16 +109,18 @@ public class BrowserInfoPage extends WebPage
@Override
protected void afterSubmit()
{
+ getModelObject().setJavaScriptEnabled(true);
+
continueToOriginalDestination();
}
};
add(browserInfoForm);
}
- private class ContinueLink extends Link<Void> {
- public ContinueLink(String id)
+ private class ContinueLink extends Link<ClientProperties> {
+ public ContinueLink(String id, IModel<ClientProperties> properties)
{
- super(id);
+ super(id, properties);
}
@Override
@@ -130,6 +132,8 @@ public class BrowserInfoPage extends WebPage
@Override
public void onClick()
{
+ getModelObject().setJavaScriptEnabled(false);
+
continueToOriginalDestination();
}
};
http://git-wip-us.apache.org/repos/asf/wicket/blob/ca8aba72/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 3153e32..f8bb40b 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
@@ -85,6 +85,8 @@ public class ClientProperties implements IClusterable
private String hostname;
+ private boolean javaScriptEnabled;
+
/**
* @return The browser height at the time it was measured
*/
@@ -352,6 +354,15 @@ public class ClientProperties implements IClusterable
}
/**
+ * Flag indicating support of JavaScript in the browser.
+ *
+ * @return True if JavaScript is enabled
+ */
+ public boolean isJavaScriptEnabled() {
+ return javaScriptEnabled;
+ }
+
+ /**
* Flag indicating that the browser is a derivative of the Microsoft Internet Explorer browser
* platform.
*
@@ -722,6 +733,14 @@ public class ClientProperties implements IClusterable
this.utcOffset = utcOffset;
}
+ /**
+ * @param javaScriptEnabled
+ * is JavaScript supported in the browser
+ */
+ public void setJavaScriptEnabled(boolean javaScriptEnabled) {
+ this.javaScriptEnabled = javaScriptEnabled;
+ }
+
@Override
public String toString()
{