You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by li...@apache.org on 2010/08/19 09:18:54 UTC
svn commit: r987045 - in
/shindig/trunk/features/src/main/javascript/features: core.util/util.js
rpc/wpm.transport.js tabs/tabs.js views/views.js
Author: lindner
Date: Thu Aug 19 07:18:54 2010
New Revision: 987045
URL: http://svn.apache.org/viewvc?rev=987045&view=rev
Log:
Patch from Javier Pedemonte | add gadgets.util.attachBrowserEvent() and gadgets.util.removeBrowserEvent()
Modified:
shindig/trunk/features/src/main/javascript/features/core.util/util.js
shindig/trunk/features/src/main/javascript/features/rpc/wpm.transport.js
shindig/trunk/features/src/main/javascript/features/tabs/tabs.js
shindig/trunk/features/src/main/javascript/features/views/views.js
Modified: shindig/trunk/features/src/main/javascript/features/core.util/util.js
URL: http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/core.util/util.js?rev=987045&r1=987044&r2=987045&view=diff
==============================================================================
--- shindig/trunk/features/src/main/javascript/features/core.util/util.js (original)
+++ shindig/trunk/features/src/main/javascript/features/core.util/util.js Thu Aug 19 07:18:54 2010
@@ -326,6 +326,44 @@ gadgets['util'] = function() {
'unescapeString' : function(str) {
if (!str) return str;
return str.replace(/&#([0-9]+);/g, unescapeEntity);
+ },
+
+
+ /**
+ * Attach an event listener to given DOM element (Not a gadget standard)
+ *
+ * @param {object} elem DOM element on which to attach event.
+ * @param {string} eventName Event type to listen for.
+ * @param {function} callback Invoked when specified event occurs.
+ * @param {boolean} useCapture If true, initiates capture.
+ */
+ 'attachBrowserEvent': function(elem, eventName, callback, useCapture) {
+ if (typeof elem.addEventListener != 'undefined') {
+ elem.addEventListener(eventName, callback, useCapture);
+ } else if (typeof elem.attachEvent != 'undefined') {
+ elem.attachEvent('on' + eventName, callback);
+ } else {
+ gadgets.warn("cannot attachBrowserEvent: " + eventName);
+ }
+ },
+
+ /**
+ * Remove event listener. (Shindig internal implementation only)
+ *
+ * @param {object} elem DOM element from which to remove event.
+ * @param {string} eventName Event type to remove.
+ * @param {function} callback Listener to remove.
+ * @param {boolean} useCapture Specifies whether listener being removed was added with
+ * capture enabled.
+ */
+ 'removeBrowserEvent': function(elem, eventName, callback, useCapture) {
+ if (elem.removeEventListener) {
+ elem.removeEventListener(eventName, callback, useCapture);
+ } else if (elem.detachEvent){
+ elem.detachEvent('on' + eventName, callback);
+ } else {
+ gadgets.warn("cannot removeBrowserEvent: " + eventName);
+ }
}
};
}();
Modified: shindig/trunk/features/src/main/javascript/features/rpc/wpm.transport.js
URL: http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/rpc/wpm.transport.js?rev=987045&r1=987044&r2=987045&view=diff
==============================================================================
--- shindig/trunk/features/src/main/javascript/features/rpc/wpm.transport.js (original)
+++ shindig/trunk/features/src/main/javascript/features/rpc/wpm.transport.js Thu Aug 19 07:18:54 2010
@@ -63,13 +63,7 @@ gadgets.rpctx.wpm = function() {
};
// Set up native postMessage handler.
- if (typeof window.addEventListener != 'undefined') {
- window.addEventListener('message', onmessage, false);
- } else if (typeof window.attachEvent != 'undefined') {
- window.attachEvent('onmessage', onmessage);
- } else {
- gadgets.warn("wpm init failure");
- }
+ gadgets.util.attachBrowserEvent(window, 'message', onmessage, false);
ready('..', true); // Immediately ready to send to parent.
return true;
Modified: shindig/trunk/features/src/main/javascript/features/tabs/tabs.js
URL: http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/tabs/tabs.js?rev=987045&r1=987044&r2=987045&view=diff
==============================================================================
--- shindig/trunk/features/src/main/javascript/features/tabs/tabs.js (original)
+++ shindig/trunk/features/src/main/javascript/features/tabs/tabs.js Thu Aug 19 07:18:54 2010
@@ -448,11 +448,7 @@ gadgets.TabSet.prototype.createTabTable_
var adjustNavigationFn = function() {
me.adjustNavigation_();
};
- if (window.addEventListener) {
- window.addEventListener('resize', adjustNavigationFn, false);
- } else if (window.attachEvent) {
- window.attachEvent('onresize', adjustNavigationFn);
- }
+ gadgets.util.attachBrowserEvent(window, "resize", adjustNavigationFn, false);
}
this.navTable_ = navTable;
Modified: shindig/trunk/features/src/main/javascript/features/views/views.js
URL: http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/views/views.js?rev=987045&r1=987044&r2=987045&view=diff
==============================================================================
--- shindig/trunk/features/src/main/javascript/features/views/views.js (original)
+++ shindig/trunk/features/src/main/javascript/features/views/views.js Thu Aug 19 07:18:54 2010
@@ -115,11 +115,7 @@ gadgets.views = function() {
currentView = supportedViews[urlParams.view] || supportedViews["default"];
if (conf.rewriteLinks) {
- if (document.attachEvent) {
- document.attachEvent("onclick", forceNavigate);
- } else {
- document.addEventListener("click", forceNavigate, false);
- }
+ gadgets.util.attachBrowserEvent(document, "click", forceNavigate, false);
}
}