Author: jmorliaguet Date: Sun Jan 1 15:49:32 2006 New Revision: 2105 Added: cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.css (contents, props changed) Modified: cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js cpsskins/branches/jmo-perspectives/ui/framework/tests/functional/cpsskins_contextualmenu_test.html Log:
- converted quotes (') to double quotes (") - added cpsskins.css for defining widget styles - fixed Canvas.addNode Added: cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.css ============================================================================== --- (empty file) +++ cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.css Sun Jan 1 15:49:32 2006 @@ -0,0 +1,36 @@ + +/* Contextual menu */ + +.contextMenu { + white-space: nowrap; + font: 11px Verdana, Arial, Helvetica, sans-serif; + border-width: 1px 2px 2px 1px; + border-style: solid; + border-color: #666; + background-color: #eeeeec; + color: #000; + width: 120px; +} + +.contextMenu a { + text-decoration: none; + vertical-align: top; + background-repeat: no-repeat; + background-position: 6px center; + color: #000; + padding: 4px 5px 4px 29px; + width: 86px; +} + +.contextMenu a:hover { + background-color: #3465a4; + color: #fff; +} + +.contextMenu .submenu { + border-width: 1px 2px 2px 1px; + border-style: solid; + border-color: #333; + margin-top: -2px; +} + 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 Sun Jan 1 15:49:32 2006 @@ -17,20 +17,20 @@ */ var CPSSkins = { - Version: '0.1', + Version: "0.1", init: function() { - var elements = document.getElementsByTagName('*'); + var elements = document.getElementsByTagName("*"); for (var i=0;i<elements.length;i++) { - var tag = elements[i].tagName; - if (!tag.match(/^cpsskins:/i)) continue; var element = elements[i]; + var tag = element.tagName; + if (!tag.match(/^cpsskins:/i)) continue; switch (tag.toLowerCase()) { - case 'cpsskins:contextmenu': { + case "cpsskins:contextmenu": { Renderer.contextmenu(element); break; } - case 'cpsskins:tooltip': { + case "cpsskins:tooltip": { Renderer.tooltip(element); break; } @@ -39,7 +39,7 @@ } } -Event.observe(window, 'load', CPSSkins.init); +Event.observe(window, "load", CPSSkins.init); // Controller var controllers = new Object(); @@ -122,7 +122,7 @@ isEmpty: function(element) { var node = $(element); - var nodes = node.getElementsByTagName('*'); + var nodes = node.getElementsByTagName("*"); for (var i=0;i<nodes.length;i++) { if (this.isIdentifiable(nodes[i])) { return false; } } @@ -155,7 +155,7 @@ getNodeData: function(element) { var comment = this._getCommentNode(element); if (comment) { - comment = comment.replace(this.json_regexp, ''); + comment = comment.replace(this.json_regexp, ""); try { return JSON.parse(comment); } catch(e) { @@ -167,7 +167,7 @@ setNodeData: function(element, data) { var node = $(element); - var comment = ' json-data: ' + JSON.stringify(data); + var comment = " json-data: " + JSON.stringify(data); comment = document.createComment(comment); var old = this._getCommentNode(element); if (old) { @@ -187,17 +187,17 @@ var node = document.createElement(options.tag); Element.addClassName(node, options.class); Element.setStyle(node, options.style); - $A(options.attributes).each(function(attr) { - node.setAttribute(node, attr) + $H(options.attributes).each(function(attr) { + node.setAttribute(attr[0], attr[1]) }); - node.innerHTML = options.content || ''; + node.innerHTML = options.content || ""; container.appendChild(node); return node; }, setOpacity: function(element, opacity) { - if (element.style.display == 'none') { - element.style.display = ''; + if (element.style.display == "none") { + element.style.display = ""; } if (window.ActiveXObject) { element.style.filter = "alpha(opacity=" + opacity*100 + ")"; @@ -251,18 +251,18 @@ contextmenu: function(view) { var widget = Canvas.addNode(document.body, { - tag: 'div', - class: ['contextMenu', view.getAttribute('class')], - style: {position:'absolute'} + tag: "div", + class: ["contextMenu", view.getAttribute("class")], + style: {position:"absolute", display:"none", cursor:"default"} }); new CPSSkins.ContextualMenu(widget, view); }, tooltip: function(view) { var widget = Canvas.addNode(document.body, { - tag: 'div', - class: 'tooltip', - style: {position:'absolute', display:'none'} + tag: "div", + class: "tooltip", + style: {position:"absolute", display:"none"} }); new CPSSkins.Tooltip(widget, view); } @@ -280,11 +280,11 @@ this.active = false; - var controller = view.getAttribute('controller'); + var controller = view.getAttribute("controller"); this.handlers = controllers[controller].handlers; this.clickEvent = this.clickEvent.bindAsEventListener(this); - Event.observe(document, 'click', this.clickEvent); + Event.observe(document, "click", this.clickEvent); }, clickEvent: function(e) { @@ -294,13 +294,13 @@ if (this.active) { if (Position.within(this.widget, x, y)) { - var action = element.getAttribute('action'); + var action = element.getAttribute("action"); if (!action) return; var confirm = element.getAttribute("confirm"); if (confirm) { if (!window.confirm(confirm)) return; } - var choice = element.getAttribute('choice') || action; + var choice = element.getAttribute("choice") || action; var handler = this.handlers[action]; if (handler) { handler(this.selected, choice); @@ -318,7 +318,7 @@ }, _getSubmenu: function(e) { - var nodes = document.getElementsByClassName('submenu', Event.element(e)) + var nodes = document.getElementsByClassName("submenu", Event.element(e)) return (nodes.length > 0) ? nodes[0] : null; }, @@ -336,54 +336,56 @@ var menuX = (x + menuWidth > page_w) ? x - menuWidth -1 : x + 1; var menuY = (y + menuHeight > page_h) ? y - menuHeight -1 : y + 1; // menu position - widget.style.left = menuX + 'px'; - widget.style.top = menuY + 'px'; + widget.style.left = menuX + "px"; + widget.style.top = menuY + "px"; // submenu relative position this.submenuLeft = Element.getDimensions(this.widget).width -5; if (!document.all) this.submenuLeft += parseInt(widget.style.left); // reset the menu - $A(widget.getElementsByTagName('*')).each(function(v) { + $A(widget.getElementsByTagName("*")).each(function(v) { v.parentNode.removeChild(v); }); var data = Canvas.getNodeData(this.selected); - var tags = view.getElementsByTagName('*'); + var tags = view.getElementsByTagName("*"); var parent = widget; for (var i=0;i<tags.length;i++) { var tag = tags[i]; - var visible = tag.getAttribute('visible'); + var visible = tag.getAttribute("visible"); if (data && visible) { if (!data[visible]) continue; } switch (tag.tagName.toLowerCase()) { - case 'item': { + case "item": { Canvas.addNode(widget, { - tag: 'a', - content: tag.getAttribute('label'), + tag: "a", + content: tag.getAttribute("label"), + style: {display: "block"}, attributes: { - action: tag.getAttribute('action'), + action: tag.getAttribute("action"), href: "#" } }); break; }; - case 'items': { + case "items": { if (!data) return; - var choices = tag.getAttribute('choices'); + var choices = tag.getAttribute("choices"); var items = data[choices] || []; for (var j=0;j<items.length;j++) { Canvas.addNode(parent, { - tag: 'a', + tag: "a", content: items[j].label, + style: {display: "block"}, attributes: { - action: tag.getAttribute('action'), + action: tag.getAttribute("action"), choice: items[j].choice, href: "#" } @@ -393,17 +395,18 @@ break; }; - case 'submenu': { + case "submenu": { var item = Canvas.addNode(parent, { - tag: 'a', - content: tag.getAttribute('label'), + tag: "a", + content: tag.getAttribute("label"), + style: {display: "block"}, attributes: {href:"#"} }); var submenu = Canvas.addNode(item, { - tag: 'div', - class: 'submenu', - style: {left:this.submenuLeft + 'px'} + tag: "div", + class: "submenu", + style: {left:this.submenuLeft + "px", display: "none"} }); parent = submenu; @@ -412,7 +415,7 @@ var menu = this._getSubmenu(e); if (menu) Element.show(menu); }.bindAsEventListener(this); - Event.observe(item, 'mouseover', mouseOverEvent); + Event.observe(item, "mouseover", mouseOverEvent); var mouseOutEvent = function(e) { var menu = this._getSubmenu(e); @@ -420,7 +423,7 @@ Element.hide(menu); } }.bindAsEventListener(this); - Event.observe(item, 'mouseout', mouseOutEvent); + Event.observe(item, "mouseout", mouseOutEvent); break; }; @@ -441,15 +444,15 @@ this.widget = widget; this.area = view.parentNode; this.options = { - showdelay: view.getAttribute('showdelay') || 1000, - hidedelay: view.getAttribute('hidedelay') || 100 + showdelay: view.getAttribute("showdelay") || 1000, + hidedelay: view.getAttribute("hidedelay") || 100 } this.hint = null; this.effect = null; this.setupEvent = this.setup.bindAsEventListener(this); this.hideEvent = this.hide.bindAsEventListener(this); - Event.observe(this.area || document, 'mouseover', this.setupEvent); + Event.observe(this.area || document, "mouseover", this.setupEvent); }, setup: function(e) { @@ -458,7 +461,7 @@ if (!data) return; this.hint = { selected: selected, - text: data['hint'], + text: data["hint"], x: Event.pointerX(e), y: Event.pointerY(e) } @@ -467,8 +470,8 @@ show: function() { var widget = this.widget; - widget.style.top = this.hint.y + 20 + 'px'; - widget.style.left = this.hint.x + 'px'; + widget.style.top = this.hint.y + 20 + "px"; + widget.style.left = this.hint.x + "px"; widget.innerHTML = this.hint.text; if (this.effect) { @@ -485,7 +488,7 @@ }.bind(this) }); - Event.observe(this.hint.selected, 'mouseout', this.hideEvent); + Event.observe(this.hint.selected, "mouseout", this.hideEvent); }, hide: function(e) { @@ -503,7 +506,7 @@ onComplete: function() { Element.hide(widget); if (this.hint) { - Event.stopObserving(this.hint.selected, 'mouseout', this.hideEvent); + Event.stopObserving(this.hint.selected, "mouseout", this.hideEvent); } }.bind(this) }); Modified: cpsskins/branches/jmo-perspectives/ui/framework/tests/functional/cpsskins_contextualmenu_test.html ============================================================================== --- cpsskins/branches/jmo-perspectives/ui/framework/tests/functional/cpsskins_contextualmenu_test.html (original) +++ cpsskins/branches/jmo-perspectives/ui/framework/tests/functional/cpsskins_contextualmenu_test.html Sun Jan 1 15:49:32 2006 @@ -10,6 +10,7 @@ <script src="../../prototype.js" type="text/javascript"></script> <script src="../../json.js" type="text/javascript"></script> <script src="../../cpsskins.js" type="text/javascript"></script> + <link rel="stylesheet" href="../../cpsskins.css" type="text/css" /> <link rel="stylesheet" href="contextualmenus.css" type="text/css" /> </head> @@ -24,7 +25,7 @@ <div id="testArea1"> <!-- Contextual menu widget --> - <cpsskins:contextmenu controller="controller" class="large"> + <cpsskins:contextmenu controller="controller"> <item label="Edit" action="edit" visible="editable"></item> <item label="Copy" action="copy"></item> <item label="Paste" action="paste" visible="editable"></item> @@ -64,7 +65,7 @@ <div id="testArea2"> <!-- Contextual menu widget --> - <cpsskins:contextmenu controller="controller" class="large"> + <cpsskins:contextmenu controller="controller"> <item label="Edit" action="edit" visible="editable"></item> <item label="Copy" action="copy"></item> <item label="Paste" action="paste" visible="editable"></item> -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins