diff options
Diffstat (limited to 'includes/js/dojox/charting/axis2d/common.js')
-rw-r--r-- | includes/js/dojox/charting/axis2d/common.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/includes/js/dojox/charting/axis2d/common.js b/includes/js/dojox/charting/axis2d/common.js new file mode 100644 index 0000000..dd8ceb3 --- /dev/null +++ b/includes/js/dojox/charting/axis2d/common.js @@ -0,0 +1,75 @@ +if(!dojo._hasResource["dojox.charting.axis2d.common"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojox.charting.axis2d.common"] = true; +dojo.provide("dojox.charting.axis2d.common"); + +dojo.require("dojox.gfx"); + +(function(){ + var g = dojox.gfx; + + function clearNode(s){ + s.marginLeft = "0px"; + s.marginTop = "0px"; + s.marginRight = "0px"; + s.marginBottom = "0px"; + s.paddingLeft = "0px"; + s.paddingTop = "0px"; + s.paddingRight = "0px"; + s.paddingBottom = "0px"; + s.borderLeftWidth = "0px"; + s.borderTopWidth = "0px"; + s.borderRightWidth = "0px"; + s.borderBottomWidth = "0px"; + } + + dojo.mixin(dojox.charting.axis2d.common, { + createText: { + gfx: function(chart, creator, x, y, align, text, font, fontColor){ + return creator.createText({ + x: x, y: y, text: text, align: align + }).setFont(font).setFill(fontColor); + }, + html: function(chart, creator, x, y, align, text, font, fontColor){ + // setup the text node + var p = dojo.doc.createElement("div"), s = p.style; + clearNode(s); + s.font = font; + p.innerHTML = text; + s.color = fontColor; + // measure the size + s.position = "absolute"; + s.left = "-10000px"; + dojo.body().appendChild(p); + var size = g.normalizedLength(g.splitFontString(font).size), + box = dojo.marginBox(p); + // new settings for the text node + dojo.body().removeChild(p); + s.position = "relative"; + switch(align){ + case "middle": + s.left = Math.floor(x - box.w / 2) + "px"; + break; + case "end": + s.left = Math.floor(x - box.w) + "px"; + break; + //case "start": + default: + s.left = Math.floor(x) + "px"; + break; + } + s.top = Math.floor(y - size) + "px"; + // setup the wrapper node + var wrap = dojo.doc.createElement("div"), w = wrap.style; + clearNode(w); + w.width = "0px"; + w.height = "0px"; + // insert nodes + wrap.appendChild(p) + chart.node.insertBefore(wrap, chart.node.firstChild); + return p; + } + } + }); +})(); + +} |