private void drawDurations( List<MetricsDuration> durations, List<MetricsDrawArea> areas, double pixelsPerMs ) {
int y = 20;
for ( MetricsDuration duration : durations ) {
Long realDuration = duration.getEndDate().getTime() - duration.getDate().getTime();
int durationWidth = (int) ( realDuration * pixelsPerMs );
int x = 2 + (int) ( ( duration.getDate().getTime() - periodStart ) * pixelsPerMs );
getGc().setBackground( EColor.BACKGROUND );
getGc().setForeground( EColor.LIGHTBLUE );
getGc().fillGradientRectangle( x, y, durationWidth, barHeight, false );
getGc().setForeground( EColor.BLACK );
getGc().drawRectangle( x, y, durationWidth, barHeight );
areas.add( new MetricsDrawArea( new Rectangle( x, y, durationWidth, barHeight ), duration ) );
LoggingObjectInterface loggingObject =
LoggingRegistry.getInstance().getLoggingObject( duration.getLogChannelId() );
String message =
duration.getDescription() + " - " + loggingObject.getObjectName() + " : " + duration.getDuration() + "ms";
if ( duration.getCount() > 1 ) {
message += " " + duration.getCount() + " calls, avg=" + ( duration.getDuration() / duration.getCount() );
}
getGc().setFont( EFont.GRAPH );
getGc().textExtent( message );
getGc().drawText( message, x + 3, y + 4, true );
y += barHeight + 5;
}
}