StyleRange getStyleRange(StyleRange style) { if (style.underline && style.underlineStyle == SWT.UNDERLINE_LINK) hasLinks = true; if (style.start == 0 && style.length == 0 && style.fontStyle == SWT.NORMAL) return style; StyleRange clone = (StyleRange)style.clone(); clone.start = clone.length = 0; clone.fontStyle = SWT.NORMAL; if (clone.font == null) clone.font = getFont(style.fontStyle); return clone; } TextLayout getTextLayout(int lineIndex) {
StyleRange getStyleRange(StyleRange style) { if (style.underline && style.underlineStyle == SWT.UNDERLINE_LINK) hasLinks = true; if (style.start == 0 && style.length == 0 && style.fontStyle == SWT.NORMAL) return style; StyleRange clone = (StyleRange)style.clone(); clone.start = clone.length = 0; clone.fontStyle = SWT.NORMAL; if (clone.font == null) clone.font = getFont(style.fontStyle); return clone; } TextLayout getTextLayout(int lineIndex) {
StyleRange getStyleRange(StyleRange style) { if (style.underline && style.underlineStyle == SWT.UNDERLINE_LINK) hasLinks = true; if (style.start == 0 && style.length == 0 && style.fontStyle == SWT.NORMAL) return style; StyleRange clone = (StyleRange)style.clone(); clone.start = clone.length = 0; clone.fontStyle = SWT.NORMAL; if (clone.font == null) clone.font = getFont(style.fontStyle); return clone; } TextLayout getTextLayout(int lineIndex) {
StyleRange getStyleRange(StyleRange style) { if (style.underline && style.underlineStyle == SWT.UNDERLINE_LINK) hasLinks = true; if (style.start == 0 && style.length == 0 && style.fontStyle == SWT.NORMAL) return style; StyleRange clone = (StyleRange)style.clone(); clone.start = clone.length = 0; clone.fontStyle = SWT.NORMAL; if (clone.font == null) clone.font = getFont(style.fontStyle); return clone; } TextLayout getTextLayout(int lineIndex) {
StyleRange getStyleRange(StyleRange style) { if (style.underline && style.underlineStyle == SWT.UNDERLINE_LINK) hasLinks = true; if (style.start == 0 && style.length == 0 && style.fontStyle == SWT.NORMAL) return style; StyleRange clone = (StyleRange)style.clone(); clone.start = clone.length = 0; clone.fontStyle = SWT.NORMAL; if (clone.font == null) clone.font = getFont(style.fontStyle); return clone; } TextLayout getTextLayout(int lineIndex) {
/** * Returns this presentation's default style range. The returned <code>StyleRange</code> * is relative to the start of the result window. * * @return this presentation's default style range */ public StyleRange getDefaultStyleRange() { StyleRange range= createWindowRelativeRange(fResultWindow, fDefaultRange); if (range == null) return null; return (StyleRange)range.clone(); }
/** * Returns this presentation's default style range. The returned <code>StyleRange</code> * is relative to the start of the result window. * * @return this presentation's default style range */ public StyleRange getDefaultStyleRange() { StyleRange range= createWindowRelativeRange(fResultWindow, fDefaultRange); if (range == null) return null; return (StyleRange)range.clone(); }
void copyInto(StyledTextRenderer renderer) { if (ranges != null) { int[] newRanges = renderer.ranges = new int[styleCount << 1]; System.arraycopy(ranges, 0, newRanges, 0, newRanges.length); } if (styles != null) { StyleRange[] newStyles = renderer.styles = new StyleRange[styleCount]; for (int i = 0; i < newStyles.length; i++) { newStyles[i] = (StyleRange)styles[i].clone(); } renderer.styleCount = styleCount; } if (lines != null) { LineInfo[] newLines = renderer.lines = new LineInfo[lineCount]; for (int i = 0; i < newLines.length; i++) { newLines[i] = new LineInfo(lines[i]); } renderer.lineCount = lineCount; } } void dispose() {
void copyInto(StyledTextRenderer renderer) { if (ranges != null) { int[] newRanges = renderer.ranges = new int[styleCount << 1]; System.arraycopy(ranges, 0, newRanges, 0, newRanges.length); } if (styles != null) { StyleRange[] newStyles = renderer.styles = new StyleRange[styleCount]; for (int i = 0; i < newStyles.length; i++) { newStyles[i] = (StyleRange)styles[i].clone(); } renderer.styleCount = styleCount; } if (lines != null) { LineInfo[] newLines = renderer.lines = new LineInfo[lineCount]; for (int i = 0; i < newLines.length; i++) { newLines[i] = new LineInfo(lines[i]); } renderer.lineCount = lineCount; } } void dispose() {
void copyInto(StyledTextRenderer renderer) { if (ranges != null) { int[] newRanges = renderer.ranges = new int[styleCount << 1]; System.arraycopy(ranges, 0, newRanges, 0, newRanges.length); } if (styles != null) { StyleRange[] newStyles = renderer.styles = new StyleRange[styleCount]; for (int i = 0; i < newStyles.length; i++) { newStyles[i] = (StyleRange)styles[i].clone(); } renderer.styleCount = styleCount; } if (lines != null) { LineInfo[] newLines = renderer.lines = new LineInfo[lineCount]; for (int i = 0; i < newLines.length; i++) { newLines[i] = new LineInfo(lines[i]); } renderer.lineCount = lineCount; } } void dispose() {
void copyInto(StyledTextRenderer renderer) { if (ranges != null) { int[] newRanges = renderer.ranges = new int[styleCount << 1]; System.arraycopy(ranges, 0, newRanges, 0, newRanges.length); } if (styles != null) { StyleRange[] newStyles = renderer.styles = new StyleRange[styleCount]; for (int i = 0; i < newStyles.length; i++) { newStyles[i] = (StyleRange)styles[i].clone(); } renderer.styleCount = styleCount; } if (lines != null) { LineInfo[] newLines = renderer.lines = new LineInfo[lineCount]; for (int i = 0; i < newLines.length; i++) { newLines[i] = new LineInfo(lines[i]); } renderer.lineCount = lineCount; } } void dispose() {
void copyInto(StyledTextRenderer renderer) { if (ranges != null) { int[] newRanges = renderer.ranges = new int[styleCount << 1]; System.arraycopy(ranges, 0, newRanges, 0, newRanges.length); } if (styles != null) { StyleRange[] newStyles = renderer.styles = new StyleRange[styleCount]; for (int i = 0; i < newStyles.length; i++) { newStyles[i] = (StyleRange)styles[i].clone(); } renderer.styleCount = styleCount; } if (lines != null) { LineInfo[] newLines = renderer.lines = new LineInfo[lineCount]; for (int i = 0; i < newLines.length; i++) { newLines[i] = new LineInfo(lines[i]); } renderer.lineCount = lineCount; } } void dispose() {
private void finishAndReinitializeCurrentStyle(int offset) { if (fTextPresentation != null && offset != fCurrentStyleRange.start && !isDefaultStyleRange(fCurrentStyleRange)) { fCurrentStyleRange.length= offset - fCurrentStyleRange.start; fTextPresentation.addStyleRange(fCurrentStyleRange); } fCurrentStyleRange= (StyleRange)fCurrentStyleRange.clone(); fCurrentStyleRange.start= offset; fCurrentStyleRange.length= 0; }
@SuppressWarnings("unchecked") public void setTextPresentation(TextPresentation textPresentation) { if (textPresentation != null) { TextPresentation textPresentationCopy = new TextPresentation(); textPresentationCopy.setDefaultStyleRange((StyleRange) (textPresentation.getDefaultStyleRange() == null ? null : textPresentation.getDefaultStyleRange().clone())); Iterator<StyleRange> iterator = textPresentation.getAllStyleRangeIterator(); while (iterator.hasNext()) { StyleRange styleRange = iterator.next(); textPresentationCopy.addStyleRange((StyleRange) styleRange.clone()); } textPresentation = textPresentationCopy; } this.textPresentation = textPresentation; }
private StyleRange modelStyleRange2WidgetStyleRange(StyleRange range) { IRegion region = modelRange2WidgetRange(new Region(range.start, range.length)); if (region != null) { StyleRange result = (StyleRange) range.clone(); result.start = region.getOffset(); result.length = region.getLength(); return result; } return null; }
/** * Translates a style range given relative to the viewer's document into style * ranges relative to the viewer's widget or <code>null</code>. * * @param range the style range in the coordinates of the viewer's document * @return the style range in the coordinates of the viewer's widget or <code>null</code> * @since 2.1 */ protected StyleRange modelStyleRange2WidgetStyleRange(StyleRange range) { IRegion region= modelRange2WidgetRange(new Region(range.start, range.length)); if (region != null) { StyleRange result= (StyleRange) range.clone(); result.start= region.getOffset(); result.length= region.getLength(); return result; } return null; }
/** * Translates a style range given relative to the viewer's document into style * ranges relative to the viewer's widget or <code>null</code>. * * @param range the style range in the coordinates of the viewer's document * @return the style range in the coordinates of the viewer's widget or <code>null</code> * @since 2.1 */ protected StyleRange modelStyleRange2WidgetStyleRange(StyleRange range) { IRegion region= modelRange2WidgetRange(new Region(range.start, range.length)); if (region != null) { StyleRange result= (StyleRange) range.clone(); result.start= region.getOffset(); result.length= region.getLength(); return result; } return null; }
/** * Returns a style range which is relative to the specified window and * appropriately clipped if necessary. The original style range is not * modified. * * @param window the reference window * @param range the absolute range * @return the window relative range based on the absolute range */ private StyleRange createWindowRelativeRange(IRegion window, StyleRange range) { if (window == null || range == null) return range; int start= range.start - window.getOffset(); if (start < 0) start= 0; int rangeEnd= range.start + range.length; int windowEnd= window.getOffset() + window.getLength(); int end= (rangeEnd > windowEnd ? windowEnd : rangeEnd); end -= window.getOffset(); StyleRange newRange= (StyleRange) range.clone(); newRange.start= start; newRange.length= end - start; return newRange; }
private int updateTextLayout(TableItem item, int index, boolean isSelected) { fSharedLayout.setFont(item.getFont(index)); // XXX: needed to clear the style info, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=226090 fSharedLayout.setText(""); //$NON-NLS-1$ fSharedLayout.setText(item.getText(index)); int originalTextWidth= fSharedLayout.getBounds().width; // text width without any styles StyleRange[] ranges= getStyledRanges(item, index); if (ranges != null) { for (StyleRange range : ranges) { StyleRange curr= range; if (isSelected) { curr= (StyleRange) curr.clone(); curr.foreground= null; curr.background= null; } fSharedLayout.setStyle(curr, curr.start, curr.start + curr.length - 1); } } return fSharedLayout.getBounds().width - originalTextWidth; }
private int updateTextLayout(TableItem item, int index, boolean isSelected) { fSharedLayout.setFont(item.getFont(index)); // XXX: needed to clear the style info, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=226090 fSharedLayout.setText(""); //$NON-NLS-1$ fSharedLayout.setText(item.getText(index)); int originalTextWidth= fSharedLayout.getBounds().width; // text width without any styles StyleRange[] ranges= getStyledRanges(item, index); if (ranges != null) { for (int i= 0; i < ranges.length; i++) { StyleRange curr= ranges[i]; if (isSelected) { curr= (StyleRange) curr.clone(); curr.foreground= null; curr.background= null; } fSharedLayout.setStyle(curr, curr.start, curr.start + curr.length - 1); } } return fSharedLayout.getBounds().width - originalTextWidth; }