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

Reply via email to