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