root / trunk / web / dojo / dojox / drawing / annotations / Label.js @ 11
History | View | Annotate | Download (1.81 KB)
1 | 9 | andrej.cim | /*
|
---|---|---|---|
2 | Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
|
||
3 | Available via Academic Free License >= 2.1 OR the modified BSD license.
|
||
4 | see: http://dojotoolkit.org/license for details
|
||
5 | */
|
||
6 | |||
7 | |||
8 | if(!dojo._hasResource["dojox.drawing.annotations.Label"]){ |
||
9 | dojo._hasResource["dojox.drawing.annotations.Label"]=true; |
||
10 | dojo.provide("dojox.drawing.annotations.Label");
|
||
11 | dojo.require("dojox.drawing.stencil.Text");
|
||
12 | dojox.drawing.annotations.Label=dojox.drawing.util.oo.declare(dojox.drawing.stencil.Text,function(_1){
|
||
13 | this.master=_1.stencil;
|
||
14 | this.labelPosition=_1.labelPosition||"BR"; |
||
15 | if(dojo.isFunction(this.labelPosition)){ |
||
16 | this.setLabel=this.setLabelCustom; |
||
17 | } |
||
18 | this.setLabel(_1.text||""); |
||
19 | this.connect(this.master,"onTransform",this,"setLabel"); |
||
20 | this.connect(this.master,"destroy",this,"destroy"); |
||
21 | if(this.style.labelSameColor){ |
||
22 | this.connect(this.master,"attr",this,"beforeAttr"); |
||
23 | } |
||
24 | },{_align:"start",setLabelCustom:function(_2){ |
||
25 | var d=dojo.hitch(this.master,this.labelPosition)(); |
||
26 | this.setData({x:d.x,y:d.y,width:d.w||this.style.text.minWidth,height:d.h||this._lineHeight}); |
||
27 | if(_2&&!_2.split){
|
||
28 | _2=null;
|
||
29 | } |
||
30 | this.render(this.typesetter(_2)); |
||
31 | },setLabel:function(_3){ |
||
32 | var x,y,_4=this.master.getBounds(); |
||
33 | if(/B/.test(this.labelPosition)){ |
||
34 | y=_4.y2-this._lineHeight;
|
||
35 | }else{
|
||
36 | y=_4.y1; |
||
37 | } |
||
38 | if(/R/.test(this.labelPosition)){ |
||
39 | x=_4.x2; |
||
40 | }else{
|
||
41 | y=_4.y1; |
||
42 | this._align="end"; |
||
43 | } |
||
44 | if(!this.labelWidth||(_3&&_3.split&&_3!=this.getText())){ |
||
45 | this.setData({x:x,y:y,height:this._lineHeight,width:this.style.text.minWidth}); |
||
46 | this.labelWidth=this.style.text.minWidth; |
||
47 | this.render(this.typesetter(_3)); |
||
48 | }else{
|
||
49 | this.setData({x:x,y:y,height:this.data.height,width:this.data.width}); |
||
50 | this.render();
|
||
51 | } |
||
52 | },beforeAttr:function(_5,_6){ |
||
53 | if(_6!==undefined){ |
||
54 | var k=_5;
|
||
55 | _5={}; |
||
56 | _5[k]=_6; |
||
57 | } |
||
58 | delete _5.x;
|
||
59 | delete _5.y;
|
||
60 | delete _5.width;
|
||
61 | delete _5.height;
|
||
62 | this.attr(_5);
|
||
63 | !this.created&&this.render(); |
||
64 | }}); |
||
65 | } |