/** * Returns the model region that corresponds to the given region in the * viewer's text widget. * * @param offset the offset in the viewer's widget * @param length the length in the viewer's widget * @return the corresponding document region * @since 3.2 */ private IRegion getModelRange(int offset, int length) { if (offset == Integer.MAX_VALUE) return null; if (fSourceViewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension= (ITextViewerExtension5) fSourceViewer; return extension.widgetRange2ModelRange(new Region(offset, length)); } IRegion region= fSourceViewer.getVisibleRegion(); return new Region(region.getOffset() + offset, length); }
/** * Returns the model region that corresponds to the given region in the * viewer's text widget. * * @param offset the offset in the viewer's widget * @param length the length in the viewer's widget * @return the corresponding document region * @since 3.2 */ private IRegion getModelRange(int offset, int length) { if (offset == Integer.MAX_VALUE) return null; if (fSourceViewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension= (ITextViewerExtension5) fSourceViewer; return extension.widgetRange2ModelRange(new Region(offset, length)); } IRegion region= fSourceViewer.getVisibleRegion(); return new Region(region.getOffset() + offset, length); }
/** * Translates the given text event into the corresponding range of the viewer's document. * * @param e the text event * @return the widget region corresponding the region of the given event or * <code>null</code> if none * @since 2.1 */ protected IRegion widgetRegion2ModelRegion(TextEvent e) { String text= e.getText(); int length= text == null ? 0 : text.length(); if (fViewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension= (ITextViewerExtension5) fViewer; return extension.widgetRange2ModelRange(new Region(e.getOffset(), length)); } IRegion visible= fViewer.getVisibleRegion(); IRegion region= new Region(e.getOffset() + visible.getOffset(), length); return region; } }
/** * Translates the given text event into the corresponding range of the viewer's document. * * @param e the text event * @return the widget region corresponding the region of the given event or * <code>null</code> if none * @since 2.1 */ protected IRegion widgetRegion2ModelRegion(TextEvent e) { String text= e.getText(); int length= text == null ? 0 : text.length(); if (fViewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension= (ITextViewerExtension5) fViewer; return extension.widgetRange2ModelRange(new Region(e.getOffset(), length)); } IRegion visible= fViewer.getVisibleRegion(); IRegion region= new Region(e.getOffset() + visible.getOffset(), length); return region; } }
private void repairPresentation(ITextViewer viewer) { if (fRememberedStyleRange != null) { if (viewer instanceof ITextViewerExtension2) { // attempts to reduce the redraw area ITextViewerExtension2 viewer2= (ITextViewerExtension2) viewer; if (viewer instanceof ITextViewerExtension5) { ITextViewerExtension5 extension= (ITextViewerExtension5) viewer; IRegion modelRange= extension.widgetRange2ModelRange(new Region(fRememberedStyleRange.start, fRememberedStyleRange.length)); if (modelRange != null) viewer2.invalidateTextPresentation(modelRange.getOffset(), modelRange.getLength()); } else { viewer2.invalidateTextPresentation(fRememberedStyleRange.start + viewer.getVisibleRegion().getOffset(), fRememberedStyleRange.length); } } else viewer.invalidateTextPresentation(); } }