this.setAttribute('height', objStroke.strokeWidth); super.init(); 20 && style.label.fontangle < 45) this.titleView.setAttribute('x', this.titleView.x + this.titleView.width/4); else if ( style.label.fontangle > 45 && style.label.fontangle <= 270){ this.titleView.setAttribute('x', this.titleView.x + this.titleView.width/2); if ( style.label.fontangle > 90 && style.label.fontangle <= 180) this.titleView.setAttribute('y', this.titleView.y + this.titleView.height); else if ( style.label.fontangle > 180) this.titleView.setAttribute('y', this.titleView.y + this.titleView.width); } if ( style.label.fontangle > 0 ) this.titleView.setAttribute('height', this.titleView.width); } break; case "default": this.titleView.setAttribute('x', this.width + this.titleGap); this.titleView.setAttribute('y', -(this.titleView.height/2)); break; } } else { this.titleView.setAttribute('x', this.titleX); this.titleView.setAttribute('y', this.titleY); } ]]> 0) { var lLevels = 1; var lReposInProgress = false; var lInitalYMark = this.labelArray[0].y; do { lReposInProgress = false; var lMaxPosPerLevel = new Array(lLevels); for (var i=0; i < this.labelArray.length ; i++) { var lCL = i%lLevels // Find level, index to 0 var lL = this.labelArray[i]; //find label if ( i>=lLevels ) { if ( lL.x < lMaxPosPerLevel[lCL]) { //add one level lLevels*=2; //break the for loop lReposInProgress = true; break; } else { //update max in the level lMaxPosPerLevel[lCL] = this.labelArray[i].x + this.labelArray[i].getTextWidth(); } } else { //set inital pos for each level lMaxPosPerLevel[lCL] = lL.x + lL.getTextWidth(); } //Set label y lL.setAttribute('y', lInitalYMark + (lCL * (labelstyle.label.fontsize+2) )); } this.tickMarksView.setAttribute('height', (lLevels * (labelstyle.label.fontsize+3))); }while(lReposInProgress); } ]]> = this.tickMarksView.height ) this.tickMarksView.setAttribute('height', this.style.tickmajor.length + pLabel.getTextHeight()); ]]> a horizontal axis for a chart This component is of Beta quality and is subject to change.