Author: reebalazs
Date: Tue Dec 25 12:59:14 2007
New Revision: 50086
Modified:
kukit/kukit.js/branch/ree-service-layer-and-refactoring/ (props changed)
kukit/kukit.js/branch/ree-service-layer-and-refactoring/kukit/eventreg.js
kukit/kukit.js/branch/ree-service-layer-and-refactoring/kukit/oper.js
kukit/kukit.js/branch/ree-service-layer-and-refactoring/kukit/plugin.js
kukit/kukit.js/branch/ree-service-layer-and-refactoring/kukit/resourcedata.js
Log:
Fix binding on given binder id-s.
Now the more_selectors test is working.
All tests GREEN!
Modified:
kukit/kukit.js/branch/ree-service-layer-and-refactoring/kukit/eventreg.js
==============================================================================
--- kukit/kukit.js/branch/ree-service-layer-and-refactoring/kukit/eventreg.js
(original)
+++ kukit/kukit.js/branch/ree-service-layer-and-refactoring/kukit/eventreg.js
Tue Dec 25 12:59:14 2007
@@ -190,11 +190,14 @@
var oper = new kukit.op.Oper();
oper.node = node;
if (node) {
- // if we found the binding, just use that
- // XXX XXX
- var info = kukit.engine.binderInfoRegistry.getBinderInfoById(
- this.__binderId__);
- var newOper = info.bound.getBoundOperForNode(name, node);
+
+ // XXX the global registry is use
+ var binderInfoRegistry = kukit.engine.binderInfoRegistry;
+ // Get the binder info.
+ var key = this.__bindKey__;
+ var binderInfo = binderInfoRegistry.info[key];
+
+ var newOper = binderInfo.bound.getBoundOperForNode(name, node);
if (newOper) {
oper = newOper;
}
@@ -241,9 +244,15 @@
// Normal rules. If any of those match, execute them too
// each on the node that it selects - not on the original node.
var oper = new kukit.op.Oper();
- var info = kukit.engine.binderInfoRegistry.getBinderInfoById(
- this.__binderId__);
- var opers = info.bound.getBoundOpers(name);
+
+ // XXX the global registry is use
+ var binderInfoRegistry = kukit.engine.binderInfoRegistry;
+ // Get the binder info.
+ var key = this.__bindKey__;
+ var binderInfo = binderInfoRegistry.info[key];
+
+ // Get opers and trigger the event on each
+ var opers = binderInfo.bound.getBoundOpers(name);
for (var i=0; i<opers.length; i++) {
var oper = opers[i];
var newOper = oper.clone();
@@ -411,7 +420,6 @@
//
// The creation of binder instances happens from here.
//
- //kukit.logWarning(kssSelector.getBindIteration());
var binderClass = kssSelector.getBindIteration().binderClass;
;;; var msg = 'Instantiating event binder with id [' +
kssSelector.getId(node) + '], className [';
@@ -421,10 +429,16 @@
// Create the binder instance and the binder info
var binder = new binderClass();
binderInfo = this.info[key] = new _BinderInfo(binder);
+ // Annotate the bind key on the binder instance
+ // the bind key consists of the (generated) classname, and the kss id
+ // of the binder.
+ binder.__bindKey__ = kssSelector.getBindKey();
}
return binderInfo;
};
+
+/*
er.BinderInfoRegistry.prototype.getBinderInfoById = function (id) {
// Get an event.
var binderInfo = this.info[id];
@@ -434,6 +448,7 @@
}
return binderInfo;
};
+*/
/* Not used from kukit actually */
/*
Modified: kukit/kukit.js/branch/ree-service-layer-and-refactoring/kukit/oper.js
==============================================================================
--- kukit/kukit.js/branch/ree-service-layer-and-refactoring/kukit/oper.js
(original)
+++ kukit/kukit.js/branch/ree-service-layer-and-refactoring/kukit/oper.js
Tue Dec 25 12:59:14 2007
@@ -176,10 +176,18 @@
;;; }
//
var interface = kukit.interfaces.global;
- var methodName = interface.events[name].defaultActionMethodName;
+ var eventInfo = interface.events[name];
+ var methodName = eventInfo && eventInfo.defaultActionMethodName;
var success = false;
- if (! methodName) {
+ if (! eventInfo) {
+;;; if (! optional) {
+;;; kukit.E = 'Could not trigger event [' + name;
+;;; kukit.E += '], because this';
+;;; kukit.E += ' event does not exist.';
+;;; throw new Error(kukit.E);
+;;; }
+ } else if (! methodName) {
;;; if (! optional) {
;;; kukit.E = 'Could not trigger event [' + name;
;;; kukit.E += '], because this';
Modified:
kukit/kukit.js/branch/ree-service-layer-and-refactoring/kukit/plugin.js
==============================================================================
--- kukit/kukit.js/branch/ree-service-layer-and-refactoring/kukit/plugin.js
(original)
+++ kukit/kukit.js/branch/ree-service-layer-and-refactoring/kukit/plugin.js
Tue Dec 25 12:59:14 2007
@@ -186,7 +186,9 @@
throw new Error(kukit.E);
}
}
- kukit.pl.registerBrowserEvent(oper);
+ // we give the name parameter to the registration, so we
+ // really bind to the event name we want.
+ kukit.pl.registerBrowserEvent(oper, null, name);
//
// XXX Safari hack
// necessary since Safari does not prevent the <a href...> following
Modified:
kukit/kukit.js/branch/ree-service-layer-and-refactoring/kukit/resourcedata.js
==============================================================================
---
kukit/kukit.js/branch/ree-service-layer-and-refactoring/kukit/resourcedata.js
(original)
+++
kukit/kukit.js/branch/ree-service-layer-and-refactoring/kukit/resourcedata.js
Tue Dec 25 12:59:14 2007
@@ -877,9 +877,11 @@
;;; throw new Error('Unknown method rule category [' + category + '].');
;;; }
// look up the rule
- // XXX XXX XXX
- var id = binder.__binderId__;
- var mergeId = kukit.er.makeMergeId(id, name);
+ //
+ // Generate its merge id from the bindkey and event name
+ var bindKey = binder.__bindKey__;
+ // XXX TODO refactor this with kssSelector
+ var mergeId = name + '@' + bindKey;
var mergedRule = dict[mergeId];
if (typeof(mergedRule) == 'undefined') {
// no error, just return null.
_______________________________________________
Kukit-checkins mailing list
[email protected]
http://codespeak.net/mailman/listinfo/kukit-checkins