@Override public void setTextColor(Color color, int start, int length, boolean controlRedraw) { if (fTextWidget != null) { StyleRange s= new StyleRange(); s.foreground= color; s.start= start; s.length= length; s= modelStyleRange2WidgetStyleRange(s); if (s != null) { if (controlRedraw) fTextWidget.setRedraw(false); try { fTextWidget.setStyleRange(s); } finally { if (controlRedraw) fTextWidget.setRedraw(true); } } } }
@Override public void setTextColor(Color color, int start, int length, boolean controlRedraw) { if (fTextWidget != null) { StyleRange s= new StyleRange(); s.foreground= color; s.start= start; s.length= length; s= modelStyleRange2WidgetStyleRange(s); if (s != null) { if (controlRedraw) fTextWidget.setRedraw(false); try { fTextWidget.setStyleRange(s); } finally { if (controlRedraw) fTextWidget.setRedraw(true); } } } }
private void doFind() { boolean hasUpperCase = false; for (int x = 0; x < findString.length(); ++x) { char c = findString.charAt(x); if (Character.isUpperCase(c) && Character.toLowerCase(c) != c) { hasUpperCase = true; break; } } searching = true; StyledText textWidget = textViewer.getTextWidget(); textWidget.setRedraw(false); int foundIndex = findReplaceTarget.findAndSelect(index, findString, true, hasUpperCase, false); textWidget.setRedraw(true); boolean findHit = foundIndex >= 0; if (findHit) { index = foundIndex; } else if (this.findHit) { textWidget.getDisplay().beep(); } this.findHit = findHit; searching = false; }
void replaceTextRange(TextChangingEvent event) { fTextChanging = true; int start = event.start; int length = event.replaceCharCount; String text = event.newText; if (event.newLineCount > 0 || event.replaceLineCount > 0) { Rectangle clientArea = fMinimapTextWidget.getClientArea(); fMinimapTextWidget.setRedraw(false); fMinimapTextWidget.replaceTextRange(start, length, text); fMinimapTextWidget.redraw(0, fTopIndexY, clientArea.width, clientArea.height, false); fMinimapTextWidget.setRedraw(true); } else { fMinimapTextWidget.replaceTextRange(start, length, text); } fTextChanging = false; }
@Override public void changeTextPresentation(TextPresentation presentation, boolean controlRedraw) { if (presentation == null || !redraws()) return; if (fTextWidget == null) return; /* * Call registered text presentation listeners * and let them apply their presentation. */ if (fTextPresentationListeners != null) { ArrayList<ITextPresentationListener> listeners= new ArrayList<>(fTextPresentationListeners); for (int i= 0, size= listeners.size(); i < size; i++) { ITextPresentationListener listener= listeners.get(i); listener.applyTextPresentation(presentation); } } if (presentation.isEmpty()) return; if (controlRedraw) fTextWidget.setRedraw(false); if (fReplaceTextPresentation) applyTextPresentation(presentation); else addPresentation(presentation); if (controlRedraw) fTextWidget.setRedraw(true); }
@Override public void changeTextPresentation(TextPresentation presentation, boolean controlRedraw) { if (presentation == null || !redraws()) return; if (fTextWidget == null) return; /* * Call registered text presentation listeners * and let them apply their presentation. */ if (fTextPresentationListeners != null) { ArrayList<ITextPresentationListener> listeners= new ArrayList<>(fTextPresentationListeners); for (int i= 0, size= listeners.size(); i < size; i++) { ITextPresentationListener listener= listeners.get(i); listener.applyTextPresentation(presentation); } } if (presentation.isEmpty()) return; if (controlRedraw) fTextWidget.setRedraw(false); if (fReplaceTextPresentation) applyTextPresentation(presentation); else addPresentation(presentation); if (controlRedraw) fTextWidget.setRedraw(true); }
/** * Disables the redrawing of this text viewer. Subclasses may extend. * @since 2.0 */ protected void disableRedrawing() { if (fViewerState == null) fViewerState= new ViewerState(); if (fDocumentAdapter instanceof IDocumentAdapterExtension) { IDocumentAdapterExtension extension= (IDocumentAdapterExtension) fDocumentAdapter; extension.stopForwardingDocumentChanges(); } if (fTextWidget != null && !fTextWidget.isDisposed()) fTextWidget.setRedraw(false); fireRedrawChanged(); }
/** * Copied from {@link org.eclipse.ui.texteditor.AbstractTextEditor#selectAndReveal(int, int)} and removed selection * functionality. */ public void reveal(int offset, int length) { if (getSourceViewer() == null) return; StyledText widget = getSourceViewer().getTextWidget(); widget.setRedraw(false); { adjustHighlightRange(offset, length); getSourceViewer().revealRange(offset, length); markInNavigationHistory(); } widget.setRedraw(true); }
/** * Disables the redrawing of this text viewer. Subclasses may extend. * @since 2.0 */ protected void disableRedrawing() { if (fViewerState == null) fViewerState= new ViewerState(); if (fDocumentAdapter instanceof IDocumentAdapterExtension) { IDocumentAdapterExtension extension= (IDocumentAdapterExtension) fDocumentAdapter; extension.stopForwardingDocumentChanges(); } if (fTextWidget != null && !fTextWidget.isDisposed()) fTextWidget.setRedraw(false); fireRedrawChanged(); }
private void executeReplaceVisibleDocument(IDocument visibleDocument) { StyledText textWidget= getTextWidget(); try { if (textWidget != null && !textWidget.isDisposed()) textWidget.setRedraw(false); int topIndex= getTopIndex(); Point selection= getSelectedRange(); setVisibleDocument(visibleDocument); Point currentSelection= getSelectedRange(); if (currentSelection.x != selection.x || currentSelection.y != selection.y) setSelectedRange(selection.x, selection.y); setTopIndex(topIndex); } finally { if (textWidget != null && !textWidget.isDisposed()) textWidget.setRedraw(true); } }
private void executeReplaceVisibleDocument(IDocument visibleDocument) { StyledText textWidget= getTextWidget(); try { if (textWidget != null && !textWidget.isDisposed()) textWidget.setRedraw(false); int topIndex= getTopIndex(); Point selection= getSelectedRange(); setVisibleDocument(visibleDocument); Point currentSelection= getSelectedRange(); if (currentSelection.x != selection.x || currentSelection.y != selection.y) setSelectedRange(selection.x, selection.y); setTopIndex(topIndex); } finally { if (textWidget != null && !textWidget.isDisposed()) textWidget.setRedraw(true); } }
/** * Sets the font for the given viewer sustaining selection and scroll position. * * @param font the font */ private void applyFont(Font font) { IDocument doc= getDocument(); if (doc != null && doc.getLength() > 0) { Point selection= getSelectedRange(); int topIndex= getTopIndex(); StyledText styledText= getTextWidget(); styledText.setRedraw(false); styledText.setFont(font); setSelectedRange(selection.x , selection.y); setTopIndex(topIndex); styledText.setRedraw(true); } else { getTextWidget().setFont(font); } }
/** * Selects and reveals the specified ranges in this text editor. * * @param selectionStart the offset of the selection * @param selectionLength the length of the selection * @param revealStart the offset of the revealed range * @param revealLength the length of the revealed range * @since 3.0 */ protected void selectAndReveal(int selectionStart, int selectionLength, int revealStart, int revealLength) { if (fSourceViewer == null) return; ISelection selection= getSelectionProvider().getSelection(); if (selection instanceof ITextSelection) { ITextSelection textSelection= (ITextSelection) selection; if (textSelection.getOffset() != 0 || textSelection.getLength() != 0) markInNavigationHistory(); } StyledText widget= fSourceViewer.getTextWidget(); widget.setRedraw(false); { adjustHighlightRange(revealStart, revealLength); fSourceViewer.revealRange(revealStart, revealLength); fSourceViewer.setSelectedRange(selectionStart, selectionLength); markInNavigationHistory(); } widget.setRedraw(true); }
private void selectAndReveal(int selectionStart, int selectionLength, int revealStart, int revealLength) { ISelection selection = getSelectionProvider().getSelection(); if (selection instanceof ITextSelection) { ITextSelection textSelection = (ITextSelection) selection; if (textSelection.getOffset() != 0 || textSelection.getLength() != 0) markInNavigationHistory(); } StyledText widget= MergeSourceViewer.this.getSourceViewer().getTextWidget(); widget.setRedraw(false); { adjustHighlightRange(revealStart, revealLength); MergeSourceViewer.this.getSourceViewer().revealRange(revealStart, revealLength); MergeSourceViewer.this.getSourceViewer().setSelectedRange(selectionStart, selectionLength); markInNavigationHistory(); } widget.setRedraw(true); }
public void update() { if (fWorkingValues == null) { fPreviewDocument.set(""); //$NON-NLS-1$ return; } // update the print margin final String value= fWorkingValues.get(DefaultCodeFormatterConstants.FORMATTER_LINE_SPLIT); final int lineWidth= getPositiveIntValue(value, 0); fMarginPainter.setMarginRulerColumn(lineWidth); // update the tab size final int tabSize= getPositiveIntValue(fWorkingValues.get(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE), 0); if (tabSize != fTabSize) fSourceViewer.getTextWidget().setTabs(tabSize); fTabSize= tabSize; final StyledText widget= (StyledText)fSourceViewer.getControl(); final int height= widget.getClientArea().height; final int top0= widget.getTopPixel(); final int totalPixels0= getHeightOfAllLines(widget); final int topPixelRange0= totalPixels0 > height ? totalPixels0 - height : 0; widget.setRedraw(false); doFormatPreview(); fSourceViewer.setSelection(null); final int totalPixels1= getHeightOfAllLines(widget); final int topPixelRange1= totalPixels1 > height ? totalPixels1 - height : 0; final int top1= topPixelRange0 > 0 ? (int)(topPixelRange1 * top0 / (double)topPixelRange0) : 0; widget.setTopPixel(top1); widget.setRedraw(true); }
/** * Selects and reveals the specified ranges in this text editor. * * @param selectionStart the offset of the selection * @param selectionLength the length of the selection * @param revealStart the offset of the revealed range * @param revealLength the length of the revealed range * @since 3.0 */ protected void selectAndReveal(int selectionStart, int selectionLength, int revealStart, int revealLength) { if (fSourceViewer == null) return; ISelection selection= getSelectionProvider().getSelection(); if (selection instanceof ITextSelection) { ITextSelection textSelection= (ITextSelection) selection; if (textSelection.getOffset() != 0 || textSelection.getLength() != 0) markInNavigationHistory(); } StyledText widget= fSourceViewer.getTextWidget(); widget.setRedraw(false); { adjustHighlightRange(revealStart, revealLength); fSourceViewer.revealRange(revealStart, revealLength); fSourceViewer.setSelectedRange(selectionStart, selectionLength); markInNavigationHistory(); } widget.setRedraw(true); }
@Override public void run() { ITextViewer viewer= getTextViewer(); if (viewer == null) return; if (!canModifyViewer()) return; IDocument document= viewer.getDocument(); if (document == null) return; ITextSelection selection= getSelection(viewer); if (selection == null) return; int startLine= selection.getStartLine(); int endLine= selection.getEndLine(); try { int caretOffset= joinLines(document, startLine, endLine); if (caretOffset > -1) { StyledText widget= viewer.getTextWidget(); widget.setRedraw(false); adjustHighlightRange(viewer, caretOffset, 0); viewer.revealRange(caretOffset, 0); viewer.setSelectedRange(caretOffset, 0); widget.setRedraw(true); } } catch (BadLocationException e) { // should not happen } }
/** * Enables the redrawing of this text viewer. * * @param topIndex the top index to be set or <code>-1</code> * @since 3.0 */ protected void enabledRedrawing(int topIndex) { if (fDocumentAdapter instanceof IDocumentAdapterExtension) { IDocumentAdapterExtension extension= (IDocumentAdapterExtension) fDocumentAdapter; StyledText textWidget= getTextWidget(); if (textWidget != null && !textWidget.isDisposed()) { extension.resumeForwardingDocumentChanges(); if (topIndex > -1) { try { setTopIndex(topIndex); } catch (IllegalArgumentException x) { // changes don't allow for the previous top pixel } } } } if (fViewerState != null) { fViewerState.restore(topIndex == -1); fViewerState= null; } if (fTextWidget != null && !fTextWidget.isDisposed()) fTextWidget.setRedraw(true); fireRedrawChanged(); }
/** * Enables the redrawing of this text viewer. * * @param topIndex the top index to be set or <code>-1</code> * @since 3.0 */ protected void enabledRedrawing(int topIndex) { if (fDocumentAdapter instanceof IDocumentAdapterExtension) { IDocumentAdapterExtension extension= (IDocumentAdapterExtension) fDocumentAdapter; StyledText textWidget= getTextWidget(); if (textWidget != null && !textWidget.isDisposed()) { extension.resumeForwardingDocumentChanges(); if (topIndex > -1) { try { setTopIndex(topIndex); } catch (IllegalArgumentException x) { // changes don't allow for the previous top pixel } } } } if (fViewerState != null) { fViewerState.restore(topIndex == -1); fViewerState= null; } if (fTextWidget != null && !fTextWidget.isDisposed()) fTextWidget.setRedraw(true); fireRedrawChanged(); }