[7849] | 1 | package charts {
|
---|
| 2 | import charts.series.Element;
|
---|
| 3 | import charts.series.bars.Horizontal;
|
---|
| 4 | import string.Utils;
|
---|
| 5 | import global.Global;
|
---|
| 6 |
|
---|
| 7 | public class HBar extends Base {
|
---|
| 8 |
|
---|
| 9 | protected var group:Number;
|
---|
| 10 | protected var style:Object;
|
---|
| 11 |
|
---|
| 12 | public function HBar( json:Object ) {
|
---|
| 13 |
|
---|
| 14 | this.style = {
|
---|
| 15 | values: [],
|
---|
| 16 | colour: '#3030d0',
|
---|
| 17 | text: '', // <-- default not display a key
|
---|
| 18 | 'font-size': 12,
|
---|
| 19 | tip: '#val#'
|
---|
| 20 | };
|
---|
| 21 |
|
---|
| 22 | object_helper.merge_2( json, style );
|
---|
| 23 |
|
---|
| 24 | //this.alpha = Number( vals[0] );
|
---|
| 25 | this.colour = string.Utils.get_colour( style.colour );
|
---|
| 26 | this.key = json.text;
|
---|
| 27 | this.font_size = json['font-size'];
|
---|
| 28 |
|
---|
| 29 | //
|
---|
| 30 | // bars are grouped, so 3 bar sets on one chart
|
---|
| 31 | // will arrange them selves next to each other
|
---|
| 32 | // at each value of X, this.group tell the bar
|
---|
| 33 | // where it is in that grouping
|
---|
| 34 | //
|
---|
| 35 | this.group = 0;
|
---|
| 36 |
|
---|
| 37 | this.values = json['values'];
|
---|
| 38 |
|
---|
| 39 | this.style['on-click'] = json['on-click'];
|
---|
| 40 |
|
---|
| 41 | this.add_values();
|
---|
| 42 | }
|
---|
| 43 |
|
---|
| 44 | //
|
---|
| 45 | // called from the base object, in this case the
|
---|
| 46 | // value is the X value of the bar and the index
|
---|
| 47 | // is the Y positiont
|
---|
| 48 | //
|
---|
| 49 | protected override function get_element( index:Number, value:Object ): Element {
|
---|
| 50 |
|
---|
| 51 | var default_style:Object = {
|
---|
| 52 | colour: this.style.colour,
|
---|
| 53 | tip: this.style.tip,
|
---|
| 54 | 'on-click': this.style['on-click']
|
---|
| 55 | };
|
---|
| 56 |
|
---|
| 57 | if( value is Number )
|
---|
| 58 | default_style.top = value;
|
---|
| 59 | else
|
---|
| 60 | object_helper.merge_2( value, default_style );
|
---|
| 61 |
|
---|
| 62 | // our parent colour is a number, but
|
---|
| 63 | // we may have our own colour:
|
---|
| 64 | if( default_style.colour is String )
|
---|
| 65 | default_style.colour = Utils.get_colour( default_style.colour );
|
---|
| 66 |
|
---|
| 67 | return new Horizontal( index, default_style, this.group );
|
---|
| 68 | }
|
---|
| 69 |
|
---|
| 70 | public override function resize( sc:ScreenCoordsBase ): void {
|
---|
| 71 |
|
---|
| 72 | for ( var i:Number = 0; i < this.numChildren; i++ )
|
---|
| 73 | {
|
---|
| 74 | var p:Horizontal = this.getChildAt(i) as Horizontal;
|
---|
| 75 | p.resize( sc );
|
---|
| 76 | }
|
---|
| 77 | }
|
---|
| 78 |
|
---|
| 79 | public override function get_max_x():Number {
|
---|
| 80 |
|
---|
| 81 | var x:Number = 0;
|
---|
| 82 | //
|
---|
| 83 | // count the non-mask items:
|
---|
| 84 | //
|
---|
| 85 | for ( var i:Number = 0; i < this.numChildren; i++ )
|
---|
| 86 | if( this.getChildAt(i) is Horizontal ) {
|
---|
| 87 |
|
---|
| 88 | var h:Horizontal = this.getChildAt(i) as Horizontal;
|
---|
| 89 | x = Math.max( x, h.get_max_x() );
|
---|
| 90 |
|
---|
| 91 | }
|
---|
| 92 |
|
---|
| 93 | return x;
|
---|
| 94 | }
|
---|
| 95 |
|
---|
| 96 | public override function get_min_x():Number {
|
---|
| 97 | return 0;
|
---|
| 98 | }
|
---|
| 99 |
|
---|
| 100 | }
|
---|
| 101 | }
|
---|