]> git.pond.sub.org Git - eow/blob - static/dojo-release-1.1.1/dojox/charting/axis2d/common.js
add Dojo 1.1.1
[eow] / static / dojo-release-1.1.1 / dojox / charting / axis2d / common.js
1 if(!dojo._hasResource["dojox.charting.axis2d.common"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
2 dojo._hasResource["dojox.charting.axis2d.common"] = true;
3 dojo.provide("dojox.charting.axis2d.common");
4
5 dojo.require("dojox.gfx");
6
7 (function(){
8         var g = dojox.gfx;
9         
10         function clearNode(s){
11                 s.marginLeft   = "0px";
12                 s.marginTop    = "0px";
13                 s.marginRight  = "0px";
14                 s.marginBottom = "0px";
15                 s.paddingLeft   = "0px";
16                 s.paddingTop    = "0px";
17                 s.paddingRight  = "0px";
18                 s.paddingBottom = "0px";
19                 s.borderLeftWidth   = "0px";
20                 s.borderTopWidth    = "0px";
21                 s.borderRightWidth  = "0px";
22                 s.borderBottomWidth = "0px";
23         }
24         
25         dojo.mixin(dojox.charting.axis2d.common, {
26                 createText: {
27                         gfx: function(chart, creator, x, y, align, text, font, fontColor){
28                                 return creator.createText({
29                                         x: x, y: y, text: text, align: align
30                                 }).setFont(font).setFill(fontColor);
31                         },
32                         html: function(chart, creator, x, y, align, text, font, fontColor){
33                                 // setup the text node
34                                 var p = dojo.doc.createElement("div"), s = p.style;
35                                 clearNode(s);
36                                 s.font = font;
37                                 p.innerHTML = text;
38                                 s.color = fontColor;
39                                 // measure the size
40                                 s.position = "absolute";
41                                 s.left = "-10000px";
42                                 dojo.body().appendChild(p);
43                                 var size = g.normalizedLength(g.splitFontString(font).size),
44                                         box = dojo.marginBox(p);
45                                 // new settings for the text node
46                                 dojo.body().removeChild(p);
47                                 s.position = "relative";
48                                 switch(align){
49                                         case "middle":
50                                                 s.left = Math.floor(x - box.w / 2) + "px";
51                                                 break;
52                                         case "end":
53                                                 s.left = Math.floor(x - box.w) + "px";
54                                                 break;
55                                         //case "start":
56                                         default:
57                                                 s.left = Math.floor(x) + "px";
58                                                 break;
59                                 }
60                                 s.top = Math.floor(y - size) + "px";
61                                 // setup the wrapper node
62                                 var wrap = dojo.doc.createElement("div"), w = wrap.style;
63                                 clearNode(w);
64                                 w.width = "0px";
65                                 w.height = "0px";
66                                 // insert nodes
67                                 wrap.appendChild(p)
68                                 chart.node.insertBefore(wrap, chart.node.firstChild);
69                                 return p;
70                         }
71                 }
72         });
73 })();
74
75 }