Author: jmorliaguet
Date: Fri Jan  6 17:58:17 2006
New Revision: 2164

Modified:
   cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js
Log:

- more generic registration of views / widgets /perspectives



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 Fri Jan  6 
17:58:17 2006
@@ -32,30 +32,36 @@
 
   parse: function(node) {
     var elements = node.getElementsByTagName("cpsskins:view");
+    var view = null;
+
     $A(elements).each(function(e, index) {
+
+      // TODO make this more generic
       switch (e.getAttribute("widget").toLowerCase()) {
         case "contextmenu": {
-          Renderers.contextmenu(e);
+          view = Widgets.contextmenu(e, index);
           break;
         }
         case "tooltip": {
-          Renderers.tooltip(e);
+          view = Widgets.tooltip(e, index);
           break;
         }
         case "panel": {
-          var perspectives = (e.getAttribute("perspectives")
-                              || "default").split(",");
-          var panel = new Renderers.panel(e);
-          panel.id = 'cpsskins-panel' + index;
-          $A(perspectives).each(function(p) {
-            if (!(p in CPSSkins.Perspectives)) {
-              CPSSkins.Perspectives[p] = $A([]);
-            }
-            CPSSkins.Perspectives[p].push(panel);
-          });
+          view = Widgets.panel(e, index);
           break;
         }
       }
+
+      if (view) {
+        var perspectives = (e.getAttribute("perspectives") || "").split(",");
+        $A(perspectives).each(function(p) {
+          if (!(p in CPSSkins.Perspectives)) {
+            CPSSkins.Perspectives[p] = $A([]);
+          }
+          CPSSkins.Perspectives[p].push(view);
+        });
+      }
+
     });
   },
 
@@ -74,6 +80,8 @@
     }
   },
 
+  /* Perspectives */
+
   _resolvePerspective: function(perspective) {
     var path = CPSSkins.CurrentPerspective.split("/");
     var base = perspective;
@@ -402,10 +410,10 @@
 }
 
 // Renderer: instanciate a widget.
-if (!window.Renderers) { var Renderers = new Object(); }
-Object.extend(Renderers, {
+if (!window.Widgets) { var Widgets = new Object(); }
+Object.extend(Widgets, {
 
-  contextmenu: function(view) {
+  contextmenu: function(view, index) {
     var widget = Canvas.addNode(document.body, {
       tag: "div",
       class: ["contextMenu", view.getAttribute("class")],
@@ -414,7 +422,7 @@
     return new CPSSkins.ContextualMenu(widget, view);
   },
 
-  tooltip: function(view) {
+  tooltip: function(view, index) {
     var widget = Canvas.addNode(document.body, {
       tag: "div",
       class: "tooltip",
@@ -423,12 +431,15 @@
     return new CPSSkins.Tooltip(widget, view);
   },
 
-  panel: function(view) {
+  panel: function(view, index) {
     var widget = Canvas.addNode(view.parentNode, {
       tag: "div",
-      style: {display: "none"}
+      style: {display: "none"},
+      attributes: {id: "cpsskins-panel" + index}
     });
+
     return new CPSSkins.Panel(widget, view);
+
   }
 
 });
-- 
http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins

Reply via email to