/** paints the DrawComponent into the Graphics of the BufferedImage */
  protected void paintDrawComponent() {
    long startTime = 0;
    if (debugPaint) startTime = System.currentTimeMillis();

    if (bufferedImage != null) {
      Graphics2D g2d = (Graphics2D) bufferedImage.getGraphics();
      g2d.setRenderingHints(renderingHintsManager.getRenderingHints());
      g2d.setBackground(bgColor);
      g2d.setPaint(bgColor);
      g2d.translate(-bufferBounds.x, -bufferBounds.y);
      g2d.setClip(bufferBounds);
      g2d.fillRect(bufferBounds.x, bufferBounds.y, bufferBounds.width, bufferBounds.height);

      if (debugPaint) {
        drawRealRectangle(g2d);
        drawBufferRectangle(g2d);
        drawViewRectangle(g2d);
      }

      g2d.scale(scale, scale);
      DrawComponentPaintable.paintDrawComponent(dc, g2d);
    }

    if (debugPaint) {
      long endTime = System.currentTimeMillis() - startTime;
      logger.debug("paintDrawComponent took " + endTime + " ms!"); // $NON-NLS-1$ //$NON-NLS-2$
    }
  }