You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2013/05/30 09:09:06 UTC
[08/10] git commit: WICKET-5208 Contribute jQuery 1.x or 2.x
depending on the user agent
WICKET-5208 Contribute jQuery 1.x or 2.x depending on the user agent
Introduce DynamicJQueryResourceReference - a res ref that decides which version of jQuery to contribute depending on the user agent.
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/2de7d93f
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/2de7d93f
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/2de7d93f
Branch: refs/heads/wicket-6.x
Commit: 2de7d93ff0ae0ba971369db9cb9eb82b453ee7f3
Parents: 2047c4e
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Tue May 28 09:13:42 2013 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Thu May 30 10:02:49 2013 +0300
----------------------------------------------------------------------
.../resource/DynamicJQueryResourceReference.java | 108 +
.../wicket/resource/JQueryResourceReference.java | 2 +-
.../apache/wicket/resource/jquery/jquery-1.10.0.js | 9800 +++++++++++++++
.../wicket/resource/jquery/jquery-1.10.0.min.js | 6 +
.../apache/wicket/resource/jquery/jquery-2.0.1.js | 8837 +++++++++++++
.../wicket/resource/jquery/jquery-2.0.1.min.js | 6 +
.../org/apache/wicket/resource/jquery/jquery.js | 9472 --------------
.../apache/wicket/resource/jquery/jquery.min.js | 2 -
wicket-core/src/test/js/all.html | 2 +-
9 files changed, 18759 insertions(+), 9476 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/2de7d93f/wicket-core/src/main/java/org/apache/wicket/resource/DynamicJQueryResourceReference.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/resource/DynamicJQueryResourceReference.java b/wicket-core/src/main/java/org/apache/wicket/resource/DynamicJQueryResourceReference.java
new file mode 100644
index 0000000..674cbc5
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/resource/DynamicJQueryResourceReference.java
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.resource;
+
+import org.apache.wicket.MetaDataKey;
+import org.apache.wicket.Session;
+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.settings.IJavaScriptLibrarySettings;
+
+
+/**
+ * A resource reference that calculates which version of jQuery JavaScript library to use depending
+ * on the user agent. For IE 6/7/8 jQuery ver. 1.x will be used, for any other browser - ver. 2.x.
+ *
+ * To use this resource reference do:
+ * <code>
+ * app.getJavaScriptLibrarySettings().setJQueryReference(DynamicJQueryResourceReference.INSTANCE)
+ * </code>
+ *
+ * @since 7.0.0
+ */
+public class DynamicJQueryResourceReference extends JavaScriptResourceReference
+{
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * The key for the metadata that is used as a cache to calculate the name
+ * only once
+ */
+ private static final MetaDataKey<String> KEY = new MetaDataKey<String>()
+ {
+ };
+
+ /**
+ * jQuery ver. 1.x - works on modern browsers and IE 6/7/8
+ */
+ private static final String VERSION_1 = "jquery/jquery-1.10.0.js";
+
+ /**
+ * jQuery ver. 2.x - works only on modern browsers
+ */
+ private static final String VERSION_2 = "jquery/jquery-2.0.1.js";
+
+ private static final DynamicJQueryResourceReference INSTANCE = new DynamicJQueryResourceReference();
+
+ /**
+ * Normally you should not use this method, but use
+ * {@link IJavaScriptLibrarySettings#getJQueryReference()} to prevent version conflicts.
+ *
+ * @return the single instance of the resource reference
+ */
+ public static DynamicJQueryResourceReference get()
+ {
+ return INSTANCE;
+ }
+
+ private DynamicJQueryResourceReference()
+ {
+ super(DynamicJQueryResourceReference.class, VERSION_1);
+ }
+
+ @Override
+ public String getName()
+ {
+ RequestCycle requestCycle = RequestCycle.get();
+ String name = requestCycle.getMetaData(KEY);
+ if (name == null)
+ {
+ WebClientInfo clientInfo;
+ name = VERSION_2;
+ if (Session.exists())
+ {
+ WebSession session = WebSession.get();
+ clientInfo = session.getClientInfo();
+ }
+ else
+ {
+ clientInfo = new WebClientInfo(requestCycle);
+ }
+ ClientProperties clientProperties = clientInfo.getProperties();
+ if (clientProperties.isBrowserInternetExplorer() && clientProperties.getBrowserVersionMajor() < 9)
+ {
+ name = VERSION_1;
+ }
+
+ requestCycle.setMetaData(KEY, name);
+ }
+ return name;
+ }
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/2de7d93f/wicket-core/src/main/java/org/apache/wicket/resource/JQueryResourceReference.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/resource/JQueryResourceReference.java b/wicket-core/src/main/java/org/apache/wicket/resource/JQueryResourceReference.java
index 1afc797..c9bbcf8 100644
--- a/wicket-core/src/main/java/org/apache/wicket/resource/JQueryResourceReference.java
+++ b/wicket-core/src/main/java/org/apache/wicket/resource/JQueryResourceReference.java
@@ -46,6 +46,6 @@ public class JQueryResourceReference extends JavaScriptResourceReference
private JQueryResourceReference()
{
- super(JQueryResourceReference.class, "jquery/jquery.js");
+ super(JQueryResourceReference.class, "jquery/jquery-1.10.0.js");
}
}