/** * Creates a new change ruler column for quick diff display independent of the * line number ruler column * * @return a new change ruler column * @deprecated as of 3.3. Not called any longer, replaced by {@link #createLineNumberRulerColumn()} */ @Deprecated protected IChangeRulerColumn createChangeRulerColumn() { /* * Left for compatibility. See LineNumberColumn. */ return new ChangeRulerColumn(getSharedColors()); }
@Override public int getLineOfLastMouseButtonActivity() { return getParentRuler().getLineOfLastMouseButtonActivity(); }
@Override public void widgetDisposed(DisposeEvent e) { handleDispose(); fCachedTextViewer= null; fCachedTextWidget= null; } });
@Override public Control createControl(CompositeRuler parentRuler, Composite parentControl) { fParentRuler= parentRuler; fCachedTextViewer= parentRuler.getTextViewer(); fCachedTextWidget= fCachedTextViewer.getTextWidget(); fCanvas= new Canvas(parentControl, SWT.NONE); fCanvas.setBackground(getBackground()); fCanvas.addPaintListener(event -> { if (fCachedTextViewer != null) doubleBufferPaint(event.gc); }); fCanvas.addDisposeListener(e -> { handleDispose(); fCachedTextViewer= null; fCachedTextWidget= null; }); fCanvas.addMouseListener(fMouseHandler); fCanvas.addMouseMoveListener(fMouseHandler); if (fCachedTextViewer != null) { fCachedTextViewer.addViewportListener(fInternalListener); fCachedTextViewer.addTextListener(fInternalListener); } fRevisionPainter.setParentRuler(parentRuler); fDiffPainter.setParentRuler(parentRuler); return fCanvas; }
/** * Draws the ruler column. * * @param gc the GC to draw into */ private void doPaint(GC gc) { ILineRange visibleModelLines= computeVisibleModelLines(); if (visibleModelLines == null) return; fSensitiveToTextChanges= isViewerCompletelyShown(); fScrollPos= fCachedTextWidget.getTopPixel(); fRevisionPainter.paint(gc, visibleModelLines); if (!fRevisionPainter.hasInformation()) // don't paint quick diff colors if revisions are painted fDiffPainter.paint(gc, visibleModelLines); }
/** * Double buffer drawing. * * @param dest the GC to draw into */ private void doubleBufferPaint(GC dest) { Point size= fCanvas.getSize(); if (size.x <= 0 || size.y <= 0) return; if (fBuffer != null) { Rectangle r= fBuffer.getBounds(); if (r.width != size.x || r.height != size.y) { fBuffer.dispose(); fBuffer= null; } } if (fBuffer == null) fBuffer= new Image(fCanvas.getDisplay(), size.x, size.y); GC gc= new GC(fBuffer); gc.setFont(fCanvas.getFont()); try { gc.setBackground(getBackground()); gc.fillRectangle(0, 0, size.x, size.y); doPaint(gc); } finally { gc.dispose(); } dest.drawImage(fBuffer, 0, 0); }
@Override public void setRevisionInformation(RevisionInformation info) { fRevisionPainter.setRevisionInformation(info); fRevisionPainter.setBackground(getBackground()); }
@Override public void run() { redraw(); } });
@Override public void redraw() { if (fCachedTextViewer != null && fCanvas != null && !fCanvas.isDisposed()) { if (VerticalRuler.AVOID_NEW_GC) { fCanvas.redraw(); } else { GC gc= new GC(fCanvas); doubleBufferPaint(gc); gc.dispose(); } } }
@Override public void textChanged(TextEvent event) { if (!event.getViewerRedrawState()) return; if (fSensitiveToTextChanges || event.getDocumentEvent() == null) postRedraw(); } }
/** * Draws the ruler column. * * @param gc the GC to draw into */ private void doPaint(GC gc) { ILineRange visibleModelLines= computeVisibleModelLines(); if (visibleModelLines == null) return; fSensitiveToTextChanges= isViewerCompletelyShown(); fScrollPos= fCachedTextWidget.getTopPixel(); fRevisionPainter.paint(gc, visibleModelLines); if (!fRevisionPainter.hasInformation()) // don't paint quick diff colors if revisions are painted fDiffPainter.paint(gc, visibleModelLines); }
/** * Double buffer drawing. * * @param dest the GC to draw into */ private void doubleBufferPaint(GC dest) { Point size= fCanvas.getSize(); if (size.x <= 0 || size.y <= 0) return; if (fBuffer != null) { Rectangle r= fBuffer.getBounds(); if (r.width != size.x || r.height != size.y) { fBuffer.dispose(); fBuffer= null; } } if (fBuffer == null) fBuffer= new Image(fCanvas.getDisplay(), size.x, size.y); GC gc= new GC(fBuffer); gc.setFont(fCanvas.getFont()); try { gc.setBackground(getBackground()); gc.fillRectangle(0, 0, size.x, size.y); doPaint(gc); } finally { gc.dispose(); } dest.drawImage(fBuffer, 0, 0); }
@Override public void setRevisionInformation(RevisionInformation info) { fRevisionPainter.setRevisionInformation(info); fRevisionPainter.setBackground(getBackground()); }
@Override public void viewportChanged(int verticalPosition) { if (verticalPosition != fScrollPos) redraw(); }
@Override public void redraw() { if (fCachedTextViewer != null && fCanvas != null && !fCanvas.isDisposed()) { if (VerticalRuler.AVOID_NEW_GC) { fCanvas.redraw(); fCanvas.update(); } else { GC gc= new GC(fCanvas); doubleBufferPaint(gc); gc.dispose(); } } }
@Override public void textChanged(TextEvent event) { if (!event.getViewerRedrawState()) return; if (fSensitiveToTextChanges || event.getDocumentEvent() == null) postRedraw(); } }
@Override public int getLineOfLastMouseButtonActivity() { return getParentRuler().getLineOfLastMouseButtonActivity(); }
@Override public void setBackground(Color background) { fBackground= background; if (fCanvas != null && !fCanvas.isDisposed()) fCanvas.setBackground(getBackground()); fRevisionPainter.setBackground(background); fDiffPainter.setBackground(background); }
@Override public void viewportChanged(int verticalPosition) { if (verticalPosition != fScrollPos) redraw(); }
/** * Creates a new change ruler column for quick diff display independent of the * line number ruler column * * @return a new change ruler column * @deprecated as of 3.3. Not called any longer, replaced by {@link #createLineNumberRulerColumn()} */ protected IChangeRulerColumn createChangeRulerColumn() { /* * Left for compatibility. See LineNumberColumn. */ return new ChangeRulerColumn(getSharedColors()); }