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