/** * Returns the offset of the given source viewer's text widget that corresponds * to the given model offset or <code>-1</code> if there is no such offset. * * @param viewer the source viewer * @param modelOffset the model offset * @return the corresponding offset in the source viewer's text widget or <code>-1</code> * @since 3.0 */ protected final static int modelOffset2WidgetOffset(ISourceViewer viewer, int modelOffset) { if (viewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension= (ITextViewerExtension5) viewer; return extension.modelOffset2WidgetOffset(modelOffset); } return modelOffset - viewer.getVisibleRegion().getOffset(); }
/** * Returns the offset of the given source viewer's text widget that corresponds * to the given model offset or <code>-1</code> if there is no such offset. * * @param viewer the source viewer * @param modelOffset the model offset * @return the corresponding offset in the source viewer's text widget or <code>-1</code> * @since 3.0 */ protected static final int modelOffset2WidgetOffset(ISourceViewer viewer, int modelOffset) { if (viewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension= (ITextViewerExtension5) viewer; return extension.modelOffset2WidgetOffset(modelOffset); } return modelOffset - viewer.getVisibleRegion().getOffset(); }
/** * Returns the offset of the given source viewer's text widget that corresponds * to the given model offset or <code>-1</code> if there is no such offset. * * @param viewer the source viewer * @param modelOffset the model offset * @return the corresponding offset in the source viewer's text widget or <code>-1</code> * @since 3.0 */ protected static final int modelOffset2WidgetOffset(ISourceViewer viewer, int modelOffset) { if (viewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension= (ITextViewerExtension5) viewer; return extension.modelOffset2WidgetOffset(modelOffset); } return modelOffset - viewer.getVisibleRegion().getOffset(); }
/** * Tells whether the given offset is visible in the given text viewer. * * @param viewer the text viewer * @param offset the offset to check * @return <code>true</code> if the given offset is visible in the given text viewer * * @since 2.1 */ protected final static boolean isVisible(ITextViewer viewer, int offset) { if (viewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension= (ITextViewerExtension5) viewer; return extension.modelOffset2WidgetOffset(offset) >= 0; } IRegion region= viewer.getVisibleRegion(); int vOffset= region.getOffset(); return (vOffset <= offset && offset <= vOffset + region.getLength()); } }
/** * Tells whether the given offset is visible in the given text viewer. * * @param viewer the text viewer * @param offset the offset to check * @return <code>true</code> if the given offset is visible in the given text viewer * * @since 2.1 */ protected final static boolean isVisible(ITextViewer viewer, int offset) { if (viewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension= (ITextViewerExtension5) viewer; return extension.modelOffset2WidgetOffset(offset) >= 0; } IRegion region= viewer.getVisibleRegion(); int vOffset= region.getOffset(); return (vOffset <= offset && offset <= vOffset + region.getLength()); } }
/** * Convert a document offset to the corresponding widget offset. * * @param viewer the text viewer * @param documentOffset the document offset * @return widget offset * @since 3.6 */ private int getWidgetOffset(ITextViewer viewer, int documentOffset) { if (viewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension= (ITextViewerExtension5)viewer; return extension.modelOffset2WidgetOffset(documentOffset); } IRegion visible= viewer.getVisibleRegion(); int widgetOffset= documentOffset - visible.getOffset(); if (widgetOffset > visible.getLength()) { return -1; } return widgetOffset; }
/** * Tells whether the given offset is visible in the given text viewer. * * @param viewer the text viewer * @param offset the offset to check * @return <code>true</code> if the given offset is visible in the given text viewer * * @since 2.1 */ protected final static boolean isVisible(ITextViewer viewer, int offset) { if (viewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension= (ITextViewerExtension5) viewer; return extension.modelOffset2WidgetOffset(offset) >= 0; } IRegion region= viewer.getVisibleRegion(); int vOffset= region.getOffset(); return (vOffset <= offset && offset <= vOffset + region.getLength()); } }
/** * Tells whether the given offset is visible in the given text viewer. * * @param viewer * the text viewer * @param offset * the offset to check * @return <code>true</code> if the given offset is visible in the given text viewer */ protected boolean isVisible(ITextViewer viewer, int offset) { if (viewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension = (ITextViewerExtension5) viewer; return extension.modelOffset2WidgetOffset(offset) >= 0; } IRegion region = viewer.getVisibleRegion(); int vOffset = region.getOffset(); return (vOffset <= offset && offset <= vOffset + region.getLength()); } }
/** * Convert a document offset to the corresponding widget offset. * * @param viewer the text viewer * @param documentOffset the document offset * @return widget offset * @since 3.6 */ private int getWidgetOffset(ITextViewer viewer, int documentOffset) { if (viewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension= (ITextViewerExtension5)viewer; return extension.modelOffset2WidgetOffset(documentOffset); } IRegion visible= viewer.getVisibleRegion(); int widgetOffset= documentOffset - visible.getOffset(); if (widgetOffset > visible.getLength()) { return -1; } return widgetOffset; }
/** * Redraw the inlined annotation. */ public void redraw() { StyledText text= getTextWidget(); InlinedAnnotationSupport.runInUIThread(text, (t) -> { Position pos= getPosition(); int offset= pos.getOffset(); ISourceViewer viewer= getViewer(); if (viewer instanceof ITextViewerExtension5) { // adjust offset according folded content offset= ((ITextViewerExtension5) viewer).modelOffset2WidgetOffset(offset); } InlinedAnnotationDrawingStrategy.draw(this, null, t, offset, pos.getLength(), null); }); }
protected Point computePopupLocation() { if (popup == null || popup.isDisposed()) return null; LinkedPosition position = renameLinkedMode.getCurrentLinkedPosition(); if (position == null) return null; ISourceViewer viewer = editor.getInternalSourceViewer(); ITextViewerExtension5 viewer5 = (ITextViewerExtension5) viewer; int widgetOffset = viewer5.modelOffset2WidgetOffset(position.offset); StyledText textWidget = viewer.getTextWidget(); Point pos = textWidget.getLocationAtOffset(widgetOffset); Point pSize = getExtent(); pSize.y += HAH + 1; pos.x -= HAO; pos.y += textWidget.getLineHeight(widgetOffset); Point dPos = textWidget.toDisplay(pos); Rectangle displayBounds = textWidget.getDisplay().getClientArea(); Rectangle dPopupRect = Geometry.createRectangle(dPos, pSize); Geometry.moveInside(dPopupRect, displayBounds); return new Point(dPopupRect.x, dPopupRect.y); }
if (sourceViewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension= (ITextViewerExtension5) sourceViewer; visible= (extension.modelOffset2WidgetOffset(targetOffset) > -1); } else { IRegion visibleRegion= sourceViewer.getVisibleRegion();
ISourceViewer viewer= fEditor.getViewer(); ITextViewerExtension5 viewer5= (ITextViewerExtension5) viewer; int widgetOffset= viewer5.modelOffset2WidgetOffset(position.offset + position.length); ISourceViewer viewer= fEditor.getViewer(); ITextViewerExtension5 viewer5= (ITextViewerExtension5) viewer; int widgetOffset= viewer5.modelOffset2WidgetOffset(position.offset/* + position.length*/);
ISourceViewer viewer= fEditor.getViewer(); ITextViewerExtension5 viewer5= (ITextViewerExtension5) viewer; int widgetOffset= viewer5.modelOffset2WidgetOffset(position.offset + position.length); ISourceViewer viewer= fEditor.getViewer(); ITextViewerExtension5 viewer5= (ITextViewerExtension5) viewer; int widgetOffset= viewer5.modelOffset2WidgetOffset(position.offset/* + position.length*/);
if (fCachedTextViewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension= (ITextViewerExtension5)fCachedTextViewer; lineEndWidgetOffset= extension.modelOffset2WidgetOffset(lineEndOffset); } else lineEndWidgetOffset= lineEndOffset - fCachedTextViewer.getVisibleRegion().getOffset();
if (fCachedTextViewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension= (ITextViewerExtension5)fCachedTextViewer; lineEndWidgetOffset= extension.modelOffset2WidgetOffset(lineEndOffset); } else lineEndWidgetOffset= lineEndOffset - fCachedTextViewer.getVisibleRegion().getOffset();
widgetOffset= extension.modelOffset2WidgetOffset(position.getOffset()); if (widgetOffset == -1) return;
widgetOffset= extension.modelOffset2WidgetOffset(position.getOffset()); if (widgetOffset == -1) return;
if (sourceViewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension = (ITextViewerExtension5) sourceViewer; visible = (extension.modelOffset2WidgetOffset(targetOffset) > -1); } else { IRegion visibleRegion = sourceViewer.getVisibleRegion();
if (sourceViewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension= (ITextViewerExtension5) sourceViewer; visible= (extension.modelOffset2WidgetOffset(targetOffset) > -1); } else { IRegion visibleRegion= sourceViewer.getVisibleRegion();