+", debug="+temp+"]</font></center></html>");
+"]</font></center></html>");
  public String getToolTipText(MouseEvent ev) {    if(as!=null && as.nominalCounts!=null) {      float intervalWidth = this.getWidth()/(float)as.nominalCounts.length, heightRatio;      int barWidth, x=0, y=0;      if(intervalWidth>5)	barWidth = (int)Math.floor(intervalWidth*0.8F);      else	barWidth = 1;      x = x + (int)( (Math.floor(intervalWidth*0.1F))<1 ? 1:(Math.floor(intervalWidth*0.1F)) );      if(  this.getWidth() - 	   (x + as.nominalCounts.length*barWidth 	    +(int)( (Math.floor(intervalWidth*0.2F))<1 ? 1:(Math.floor(intervalWidth*0.2F)) )*as.nominalCounts.length) > 5 )	x += (this.getWidth() - 	      (x + as.nominalCounts.length*barWidth + 	       (int)( (Math.floor(intervalWidth*0.2F))<1 ? 1:(Math.floor(intervalWidth*0.2F)) )*as.nominalCounts.length))/2;      for(int i=0; i<as.nominalCounts.length; i++) {	heightRatio = (this.getHeight()-(float)fm.getHeight())/maxValue;	y = this.getHeight()-Math.round(as.nominalCounts[i]*heightRatio);	if(ev.getX()>=x && ev.getX()<=x+barWidth	   && ev.getY()>=this.getHeight()-Math.round(as.nominalCounts[i]*heightRatio) )	  return(m_data.attribute(attribIndex).value(i)+" ["+as.nominalCounts[i]+"]");	x = x+barWidth+(int)( (Math.floor(intervalWidth*0.2F))<1 ? 1:(Math.floor(intervalWidth*0.2F)) );      }    }    else if(threadRun==false && (histBarCounts!=null || histBarClassCounts!=null)) {      float heightRatio, intervalWidth;      int x=0, y=0,  barWidth;      double bar = as.numericStats.min;            if(m_data.attribute(classIndex).isNominal()) {	barWidth = ((this.getWidth()-6)/histBarClassCounts.length)<1 ? 1:((this.getWidth()-6)/histBarClassCounts.length);	  	x = 3;	if( (this.getWidth() - (x + histBarClassCounts.length*barWidth)) > 5 )	  x += (this.getWidth() - (x + histBarClassCounts.length*barWidth))/2;	  	heightRatio = (this.getHeight()-(float)fm.getHeight())/maxValue;	  	if( ev.getX()-x >= 0) {	  int temp = (int)((ev.getX()-x)/(barWidth+0.0000000001));	  if(temp == 0){	    int sum=0;	    for(int k=0; k<histBarClassCounts[0].length; k++)	      sum += histBarClassCounts[0][k];	    return ("<html><center><font face=Dialog size=-1>"		    +sum+"<br>["		    +Utils.doubleToString(bar+m_barRange*temp,3)+", "+Utils.doubleToString((bar+m_barRange*(temp+1)),3)		    +"]</font></center></html>");	  }	  else if( temp < histBarClassCounts.length ) {	    int sum=0;	    for(int k=0; k<histBarClassCounts[temp].length; k++)	      sum+=histBarClassCounts[temp][k];	    return ("<html><center><font face=Dialog size=-1>"		    +sum+"<br>("		    +Utils.doubleToString(bar+m_barRange*temp,3)+", "+Utils.doubleToString((bar+m_barRange*(temp+1)),3)		    +"]</font></center></html>"); 	  }	}	        }      else {	barWidth = ((this.getWidth()-6)/histBarCounts.length)<1 ? 1:((this.getWidth()-6)/histBarCounts.length);	  	x = 3;	if( (this.getWidth() - (x + histBarCounts.length*barWidth)) > 5 )	  x += (this.getWidth() - (x + histBarCounts.length*barWidth))/2;	  	heightRatio = (this.getHeight()-(float)fm.getHeight())/maxValue;	  	if( ev.getX()-x >= 0) {	  int temp = (int)((ev.getX()-x)/(barWidth+0.0000000001));	  if(temp == 0)	    return ("<html><center><font face=Dialog size=-1>"		    +histBarCounts[0]+"<br>["		    +Utils.doubleToString(bar+m_barRange*temp,3)+", "+Utils.doubleToString((bar+m_barRange*(temp+1)),3)		    +"]</font></center></html>");	  else if( temp < histBarCounts.length )	    return ("<html><center><font face=Dialog size=-1>"		    +histBarCounts[temp]+"<br>("		    +Utils.doubleToString(bar+m_barRange*temp,3)+", "+Utils.doubleToString((bar+m_barRange*(temp+1)),3)		    +", debug="+temp+"]</font></center></html>"); 	}      }    }    return "";   }