You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2012/09/17 13:28:08 UTC
svn commit: r1386560 - in
/myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script:
tobago-menu.js tobago.js
Author: lofwyr
Date: Mon Sep 17 11:28:08 2012
New Revision: 1386560
URL: http://svn.apache.org/viewvc?rev=1386560&view=rev
Log:
TOBAGO-1197: Tobago.registerListener() needs to support an "order" parameter
Modified:
myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-menu.js
myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago.js
Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-menu.js
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-menu.js?rev=1386560&r1=1386559&r2=1386560&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-menu.js (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-menu.js Mon Sep 17 11:28:08 2012
@@ -315,5 +315,5 @@ jQuery.tobagoMenuParent = function(eleme
});
})(jQuery);
-Tobago.registerListener(Tobago.Menu.init, Tobago.Phase.DOCUMENT_READY);
-Tobago.registerListener(Tobago.Menu.init, Tobago.Phase.AFTER_UPDATE);
+Tobago.registerListener(Tobago.Menu.init, Tobago.Phase.DOCUMENT_READY, Tobago.Phase.Order.LATE);
+Tobago.registerListener(Tobago.Menu.init, Tobago.Phase.AFTER_UPDATE, Tobago.Phase.Order.LATE);
Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago.js
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago.js?rev=1386560&r1=1386559&r2=1386560&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago.js (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago.js Mon Sep 17 11:28:08 2012
@@ -235,27 +235,41 @@ var Tobago = {
initMarker: false,
listeners: {
- documentReady: [],
- windowLoad: [],
- beforeSubmit: [],
- afterUpdate: []
+ documentReady: [[], [], []],
+ windowLoad: [[], [], []],
+ beforeSubmit: [[], [], []],
+ afterUpdate: [[], [], []]
},
// -------- Functions -------------------------------------------------------
- registerListener: function(listener, phase) {
+ /**
+ * Register a function to be excecuted on certain events.
+ * @param listener Function to be executed.
+ * @param phase The phase when code should be excecuted (e. g. Tobago.Phase.DOCUMENT_READY).
+ * @param order An optinal order to sort function they depent on others (default: Tobago.Phase.Order.NORMAL).
+ */
+ registerListener: function(listener, phase, order) {
+
+ if (order == undefined) {
+ order = Tobago.Phase.Order.NORMAL;
+ }
+ var phaseMap;
if (Tobago.Phase.DOCUMENT_READY == phase) {
- Tobago.listeners.documentReady.push(listener);
+ phaseMap = Tobago.listeners.documentReady;
} else if (Tobago.Phase.WINDOW_LOAD == phase) {
- Tobago.listeners.windowLoad.push(listener);
+ phaseMap = Tobago.listeners.windowLoad;
} else if (Tobago.Phase.BEFORE_SUBMIT == phase) {
- Tobago.listeners.beforeSubmit.push(listener);
+ phaseMap = Tobago.listeners.beforeSubmit;
} else if (Tobago.Phase.AFTER_UPDATE == phase) {
- Tobago.listeners.afterUpdate.push(listener);
+ phaseMap = Tobago.listeners.afterUpdate;
} else {
LOG.error("Unknown phase: " + phase); // @DEV_ONLY
+ return;
}
+
+ phaseMap[order].push(listener);
},
/**
@@ -286,8 +300,11 @@ var Tobago = {
this.addBindEventListener(window, 'unload', this, 'onUnload');
- for (var i = 0; i < Tobago.listeners.documentReady.length; i++) {
- Tobago.listeners.documentReady[i]();
+ for (var order = 0; order < Tobago.listeners.documentReady.length; order++) {
+ var list = Tobago.listeners.documentReady[order];
+ for (var i = 0; i < list.length; i++) {
+ list[i]();
+ }
}
if (TbgTimer.endBody) { // @DEV_ONLY
@@ -338,10 +355,13 @@ var Tobago = {
onSubmit: function() {
var result = true; // Do not continue if any function returns false
- for (var i = 0; i < Tobago.listeners.beforeSubmit.length; i++) {
- result = Tobago.listeners.beforeSubmit[i]();
- if (result == false) {
- break;
+ for (var order = 0; order < Tobago.listeners.beforeSubmit.length; order++) {
+ var list = Tobago.listeners.beforeSubmit[order];
+ for (var i = 0; i < list.length; i++) {
+ result = list[i]();
+ if (result == false) {
+ break;
+ }
}
}
if (result != false && jQuery.isFunction(Tobago.applicationOnsubmit)) {
@@ -1617,8 +1637,11 @@ jQuery(document).ready(function() {
});
jQuery(window).load(function() {
- for (var i = 0; i < Tobago.listeners.windowLoad.length; i++) {
- Tobago.listeners.windowLoad[i]();
+ for (var order = 0; order < Tobago.listeners.windowLoad.length; order++) {
+ var list = Tobago.listeners.windowLoad[order];
+ for (var i = 0; i < list.length; i++) {
+ list[i]();
+ }
}
});
@@ -1630,7 +1653,13 @@ Tobago.Phase = {
/** before sending a normal submit action (TBD: also AJAX?) */
BEFORE_SUBMIT:{},
/** after an AJAX call */
- AFTER_UPDATE:{}
+ AFTER_UPDATE:{},
+
+ Order:{
+ EARLY:0,
+ NORMAL:1,
+ LATE:2
+ }
};
Tobago.Config = {
@@ -2275,8 +2304,11 @@ Tobago.Updater = {
}
if (data.html.length > 0) {
- for (var i = 0; i < Tobago.listeners.afterUpdate.length; i++) {
- Tobago.listeners.afterUpdate[i](newElement);
+ for (var order = 0; order < Tobago.listeners.afterUpdate.length; order++) {
+ var list = Tobago.listeners.afterUpdate[order];
+ for (var i = 0; i < list.length; i++) {
+ list[i](newElement);
+ }
}
}
} catch (e) {