Java 类org.eclipse.jface.text.CursorLinePainter 实例源码

项目:APICloud-Studio    文件:CommonMergeViewer.java   
@Override
protected void configureTextViewer(final TextViewer textViewer)
{
    ThemePlugin.getDefault().getControlThemerFactory().apply(textViewer);

    // Force line highlight color. We need to perform this after the line painter is attached, which happens after
    // the return of this method. Scheduling async seems to work.
    UIUtils.getDisplay().asyncExec(new Runnable()
    {

        public void run()
        {
            CursorLinePainter p = getCursorLinePainterInstalled(textViewer);
            if (p != null)
            {
                p.setHighlightColor(getColorManager().getColor(getCurrentTheme().getLineHighlightAgainstBG()));
            }
        }
    });
}
项目:APICloud-Studio    文件:CommonMergeViewer.java   
private CursorLinePainter getCursorLinePainterInstalled(TextViewer viewer)
{
    Listener[] listeners = viewer.getTextWidget().getListeners(3001/* StyledText.LineGetBackground */);
    for (Listener listener : listeners)
    {
        if (listener instanceof TypedListener)
        {
            TypedListener typedListener = (TypedListener) listener;
            if (typedListener.getEventListener() instanceof CursorLinePainter)
            {
                return (CursorLinePainter) typedListener.getEventListener();
            }
        }
    }
    return null;
}
项目:tm4e    文件:TMPresentationReconciler.java   
/**
 * Initialize foreground, background color, current line highlight from the
 * current theme if needed.
 * 
 */
private void applyThemeEditorIfNeeded() {
    if (!initializeViewerColors) {
        StyledText styledText = viewer.getTextWidget();
        ((ITheme) tokenProvider).initializeViewerColors(styledText);
        initializeViewerColors = true;
    }
    if (!updateTextDecorations) {
        try {
            // Ugly code to update "current line highlight" :
            // - get the PaintManager from the ITextViewer with reflection.
            // - get the list of IPainter of PaintManager with reflection
            // - loop for IPainter to retrieve CursorLinePainter which manages "current line
            // highlight".
            PaintManager paintManager = ClassHelper.getFieldValue(viewer, "fPaintManager", TextViewer.class);
            if (paintManager != null) {
                List<IPainter> painters = ClassHelper.getFieldValue(paintManager, "fPainters", PaintManager.class);
                if (painters != null) {
                    for (IPainter painter : painters) {
                        if (painter instanceof CursorLinePainter) {
                            // Update current line highlight
                            Color background = tokenProvider.getEditorCurrentLineHighlight();
                            if (background != null) {
                                ((CursorLinePainter) painter).setHighlightColor(background);
                            }
                            updateTextDecorations = true;
                        }
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
项目:LogViewer    文件:LogFileViewer.java   
private void createCursorLinePainter() {
    cursorLinePainter = new CursorLinePainter(txtViewer);
    Color color = new Color(Display.getCurrent(),PreferenceConverter.getColor(store,ILogViewerConstants.PREF_CURSORLINE_COLOR));
    cursorLinePainter.setHighlightColor(color);
    ITextViewerExtension2 extension = (ITextViewerExtension2)txtViewer;
    extension.addPainter(cursorLinePainter);
}