package timeflow.vis.timeline; import java.awt.*; import java.util.*; import timeflow.data.time.Interval; import timeflow.data.time.TimeUtils; import timeflow.model.*; import timeflow.vis.Mouseover; import timeflow.vis.TimeScale; public class AxisRenderer { TimelineVisuals visuals; public AxisRenderer(TimelineVisuals visuals) { this.visuals=visuals; } public void render(Graphics2D g, Collection objectLocations) { TFModel model=visuals.getModel(); g.setColor(model.getDisplay().getColor("chart.background")); Rectangle bounds=visuals.getBounds(); TimeScale scale=visuals.getTimeScale(); java.util.List t=AxisTicMarks.allRelevant(scale.getInterval()); int dateLabelH=model.getDisplay().getInt("timeline.datelabel.height"); int y=bounds.y+bounds.height-dateLabelH; // draw in reverse order so bigger granularity at top. int n=t.size(); for (int i=0; i objectLocations) { TFModel model=visuals.getModel(); int n=t.tics.size(); for (int i=0; i0) { label=label.substring(0,c); sw=model.getDisplay().timeLabelFontMetrics().stringWidth(label); if (sw