Author: jmorliaguet
Date: Thu Mar  2 16:24:31 2006
New Revision: 2511

Modified:
   cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js
   cpsskins/branches/jmo-perspectives/ui/framework/tests/unit/cpsskins_test.html
Log:

- using Sets instead of hashes

- test / code fixes



Modified: cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js
==============================================================================
--- cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js (original)
+++ cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js Thu Mar  2 
16:24:31 2006
@@ -281,7 +281,7 @@
               var evt_id = "registered controller " + c;
               CPSSkins.registerEventHandler(evt_id, view, function(event) {
                 var controller = event.publisher;
-                controller.views[id] = id;
+                controller.views.add(id);
                 controller.register(view);
                 CPSSkins.unsubscribe(evt_id);
               });
@@ -318,18 +318,21 @@
 
   initialize: function(x) {
     this._elements = $H({});
+    if (typeof x == 'string') { x = [x] };
     $A(x).each(function(e) {
       this.add(e);
     }.bind(this));
   },
 
   add: function(x) {
+    if (typeof x == 'string') { x = [x] };
     $A(x).each(function(e) {
       this._elements[e] = true;
     }.bind(this));
   },
 
   remove: function(x) {
+    if (typeof x == 'string') { x = [x] };
     $A(x).each(function(e) {
       delete this._elements[e];
     }.bind(this));
@@ -341,7 +344,13 @@
 
   entries: function() {
     return this._elements.keys();
-  }
+  },
+
+  _each: function(iterator) {
+    this.elements._each(iterator);
+  },
+
+  each: Enumerable.each
 
 }
 
@@ -354,7 +363,7 @@
   initialize: function(node, def) {
     this.node = this.node;
     this.def = def;
-    this.views = $H({});
+    this.views = new CPSSkins.Set();
   },
 
   setup: function() {
@@ -593,7 +602,7 @@
 
   switchTo: function(perspective) {
     var to_show = this._visible_views[perspective] || [];
-    var to_hide = this.views.keys().select(function(el) {
+    var to_hide = this.views.entries().select(function(el) {
       return to_show.indexOf(el) < 0;
     });
     to_hide.each(function(el) { CPSSkins.getViewById(el).hide(); });

Modified: 
cpsskins/branches/jmo-perspectives/ui/framework/tests/unit/cpsskins_test.html
==============================================================================
--- 
cpsskins/branches/jmo-perspectives/ui/framework/tests/unit/cpsskins_test.html   
    (original)
+++ 
cpsskins/branches/jmo-perspectives/ui/framework/tests/unit/cpsskins_test.html   
    Thu Mar  2 16:24:31 2006
@@ -243,38 +243,42 @@
     /* CPSSkins */
 
     testSetCreate: function() { with(this) {
-      var s = new CPSSkins.Set(["1", "2", "3"]);
-      assertEqual(inspect(["1", "2", "3"]), inspect(s.entries()));
+      var s = new CPSSkins.Set();
+      assertEqual(inspect([]), inspect(s.entries()));
+      var s = new CPSSkins.Set("1a");
+      assertEqual(inspect(["1a"]), inspect(s.entries()));
+      var s = new CPSSkins.Set(["1", "2", "3a"]);
+      assertEqual(inspect(["1", "2", "3a"]), inspect(s.entries()));
     }},
 
     testSetAdd: function() { with(this) {
       var s = new CPSSkins.Set(["1", "2"]);
-      s.add("4");
-      assertEqual(inspect(["1", "2", "4"]), inspect(s.entries()));
-      s.add("4");
-      assertEqual(inspect(["1", "2", "4"]), inspect(s.entries()));
+      s.add("4a");
+      assertEqual(inspect(["1", "2", "4a"]), inspect(s.entries()));
+      s.add("4a");
+      assertEqual(inspect(["1", "2", "4a"]), inspect(s.entries()));
       s.add("1");
-      assertEqual(inspect(["1", "2", "4"]), inspect(s.entries()));
-      s.add(["5", "6"]);
-      assertEqual(inspect(["1", "2", "4", "5", "6"]), inspect(s.entries()));
+      assertEqual(inspect(["1", "2", "4a"]), inspect(s.entries()));
+      s.add(["5a", "6a"]);
+      assertEqual(inspect(["1", "2", "4a", "5a", "6a"]), inspect(s.entries()));
     }},
 
     testSetRemove: function() { with(this) {
-      var s = new CPSSkins.Set(["1", "2", "4", "5"]);
-      s.remove("4");
+      var s = new CPSSkins.Set(["1", "2", "4a", "5"]);
+      s.remove("4a");
       assertEqual(inspect(["1", "2", "5"]), inspect(s.entries()));
-      s.remove("4");
+      s.remove("4a");
       assertEqual(inspect(["1", "2", "5"]), inspect(s.entries()));
       s.remove("2");
       assertEqual(inspect(["1", "5"]), inspect(s.entries()));
-      s.remove(["5", "6"]);
+      s.remove(["5", "6a"]);
       assertEqual(inspect(["1"]), inspect(s.entries()));
     }},
 
     testSetContains: function() { with(this) {
-      var s = new CPSSkins.Set(["1", "2", "4", "5"]);
+      var s = new CPSSkins.Set(["1", "2a", "4", "5"]);
       assert(s.contains("1"));
-      assert(s.contains("2"));
+      assert(s.contains("2a"));
       assert(!s.contains("3"));
       assert(s.contains("4"));
       assert(s.contains("5"));
-- 
http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins

Reply via email to