コード例 #1
0
  private void drawDurationItem(
      final GanttRenderingData data, final IDuration d, final GanttDraw ganttDrawData) {
    final TaskLaneEntry taskFigure = lanes.get(d.getOwner().getName());

    // if task is filtered out
    if (taskFigure == null) {
      return;
    }
    final int y = LANE_START + taskFigure.getLane() * LANE_HEIGHT + DURATION_MARGIN;

    int xStart = ruler.toScreen(d.getStartTime()) - data.getBounds().x / 2;

    final Rectangle dataArea = getDataArea(data);
    dataArea.x = 0;
    if (xStart < dataArea.x) {
      xStart = dataArea.x;
    }
    int xEnd = ruler.toScreen(d.getStartTime() + d.getDurationTime()) - data.getBounds().x / 2;
    if (xEnd < dataArea.x) {
      return;
    }
    if (xEnd - xStart < 1) {
      xEnd = xStart + 1;
    }

    final Rectangle rect = new Rectangle(xStart, y, (xEnd - xStart), DURATION_HEIGHT);

    // If the rectangle width is enormous (when zooming a lot) the clipping
    // mechanism is not working, therefore limit the width below manually
    if (rect.width > dataArea.width) {
      rect.width = dataArea.width;
    }

    final ObjectFigure exec = new TaskExecution(d, rect);
    exec.setBackgroundColor(taskFigure.getBackgroundColor());

    doDrawEvents =
        SeUiPlugin.getDefault()
            .getPreferenceStore()
            .getBoolean(GanttPreferencePage.TAG_SHOW_EVENTS);
    if (doDrawEvents) {
      String idz =
          SeUiPlugin.getDefault()
              .getPreferenceStore()
              .getString(GanttPreferencePage.TAG_SHOW_EVENTS_IDS);
      if (typeReg != null && idz.length() > 0) {
        this.typeArray = idz.split(GanttPreferencePage.SEPARATOR);
      }
      if (typeArray != null && typeArray.length > 0) {
        drawLogEvents(data, d, ganttDrawData, y);
      }
    }
    ganttDrawData.add(exec);
  }
コード例 #2
0
  private void drawColumnNames(
      final GanttRenderingData data, final Map<String, TaskLaneEntry> lanes, final GanttDraw draw) {
    for (final Entry<String, TaskLaneEntry> entry : lanes.entrySet()) {
      final TaskLaneEntry taskEntry = entry.getValue();

      final RGB rgb = data.getColorMap().getColor(taskEntry.getUser());
      final Color resourceUserColor = new Color(data.getGraphics().getDevice(), rgb);
      taskEntry.setBackgroundColor(resourceUserColor);
      final int laneYStart = LANE_START + taskEntry.getLane() * LANE_HEIGHT;
      final Rectangle resourceBoundingBox =
          new Rectangle(0, laneYStart - data.getScrollOffset(), data.getSashXPos(), LANE_HEIGHT);
      taskEntry.setBounds(resourceBoundingBox);
      draw.add(taskEntry);
    }
  }