private void drawMarker(final GanttRenderingData data) { final int markerX = ruler.toScreen(data.getMarker()) + data.getBounds().x / 2; if (markerX < ruler.min()) { return; } data.getGraphics() .drawString( TimeFormat.format(data.getFormatString(), data.getMarker()), markerX + LABEL_OFFSET_X, (int) (LANE_HEIGHT * VERIFCAL_MARKER_ADJUST + LEGEND_HEIGHT), true); data.getGraphics() .drawLine( markerX, LANE_HEIGHT + LEGEND_HEIGHT, markerX, LANE_START + lanes.size() * LANE_HEIGHT); }
private void drawDurations(final GanttRenderingData data, final GanttDraw ganttDrawData) { colorByTypeMap.clear(); for (final IDuration d : data.getDurations()) { drawDurationItem(data, d, ganttDrawData); if (d.contains(data.getMarker())) { data.setMarkerAt(d); } } }
private IDrawableRuler computeScaler(final GanttRenderingData data) { final Rectangle dataScreenArea = getDataArea(data); if (data.isLog()) { List<Span> spans = new ArrayList<Span>(Span.valueOfDurations(data.getDurations())); if (data.getDurations().size() > 0) { ITaskDuration first = data.getDurations().get(0); ITaskDuration last = data.getDurations().get(data.getDurations().size() - 1); Span emptyBefore = Span.valueOf(data.getLogspan().getStart(), first.getStartTime()); spans.add(0, emptyBefore); Span emptyAfter = Span.valueOf(last.getStartTime() + last.getDurationTime(), data.getLogspan().getEnd()); spans.add(emptyAfter); } return new FixedMidPointRuler( dataScreenArea.x, dataScreenArea.width, data.getTransform(), data.getMarker(), spans); } else { long firstDuration = data.getLogspan().getStart(); long lastDuration = 0; if (data.getMarker() <= 0) { lastDuration = (long) (firstDuration + ((TIME_RANGE / data.getZoomLevel()) / 2)); } else { firstDuration = (long) (data.getMarker() - ((TIME_RANGE / data.getZoomLevel()) / 2)); if (firstDuration < 0) { firstDuration = data.getLogspan().getStart(); } lastDuration = (long) (data.getMarker() + ((TIME_RANGE / data.getZoomLevel()) / 2)); } return new SimpleLinearScaleRuler( data.getMarker(), Span.valueOf(firstDuration, lastDuration), Span.valueOf(dataScreenArea.x, dataScreenArea.width)); } }