Search in sources :

Example 1 with Gutter

use of org.fife.ui.rtextarea.Gutter in project jadx by skylot.

the class CodePanel method initLineNumbers.

private void initLineNumbers() {
    if (codeArea instanceof SmaliArea) {
        return;
    }
    LineNumbersMode mode = getSettings().getLineNumbersMode();
    boolean canShowDebugLines = canShowDebugLines();
    if (mode == LineNumbersMode.AUTO) {
        mode = canShowDebugLines ? LineNumbersMode.DEBUG : LineNumbersMode.NORMAL;
    } else if (mode == LineNumbersMode.DEBUG && !canShowDebugLines) {
        // nothing to show => hide lines view
        mode = LineNumbersMode.DISABLE;
    }
    switch(mode) {
        case DISABLE:
            codeScrollPane.setRowHeaderView(null);
            break;
        case NORMAL:
            Gutter gutter = new Gutter(codeArea);
            gutter.setLineNumberFont(getSettings().getFont());
            codeScrollPane.setRowHeaderView(gutter);
            break;
        case DEBUG:
            LineNumbers jadxGutter = new LineNumbers(codeArea);
            jadxGutter.setUseSourceLines(true);
            codeScrollPane.setRowHeaderView(jadxGutter);
            break;
    }
}
Also used : LineNumbersMode(jadx.gui.settings.LineNumbersMode) Gutter(org.fife.ui.rtextarea.Gutter)

Example 2 with Gutter

use of org.fife.ui.rtextarea.Gutter in project knime-core by knime.

the class RulePanel method setOutputMarkers.

/**
 * Sets the icon of output type markers in the {@link RSyntaxTextArea} according to the {@code outputTypes}
 * parameter. <br/>
 * <strong>Should be on EDT</strong>
 *
 * @param startDate When the computation of the output types started.
 * @param outputTypes The new output type.
 */
protected synchronized void setOutputMarkers(final long startDate, final DataType[] outputTypes) {
    final KnimeSyntaxTextArea textArea = m_mainPanel.getTextEditor();
    if (startDate - m_outputMarkersLastSet > 0 && !textArea.getText().isEmpty()) {
        final Gutter gutter = m_mainPanel.getGutter();
        gutter.removeAllTrackingIcons();
        textArea.removeAllLineHighlights();
        String[] lines = textArea.getText().split("\n", -1);
        for (int i = outputTypes.length; i-- > 0; ) {
            try {
                if (outputTypes[i] == null && !(i < lines.length && lines[i].trim().isEmpty())) {
                    // error
                    gutter.addLineTrackingIcon(i, RuleMainPanel.ERROR_ICON);
                    textArea.addLineHighlight(i, Color.PINK);
                } else if (m_nodeType.hasOutput() && outputTypes[i] != null) {
                    gutter.addLineTrackingIcon(i, outputTypes[i].getIcon());
                }
            } catch (BadLocationException e) {
            // Do nothing. This can happen when the text is not up-to-date with the rules.
            // Example config dialog closed with cancel after added some lines.
            // Next invocations will fix it.
            }
        }
        m_outputMarkersLastSet = startDate;
    }
}
Also used : Gutter(org.fife.ui.rtextarea.Gutter) KnimeSyntaxTextArea(org.knime.base.node.util.KnimeSyntaxTextArea) BadLocationException(javax.swing.text.BadLocationException)

Aggregations

Gutter (org.fife.ui.rtextarea.Gutter)2 LineNumbersMode (jadx.gui.settings.LineNumbersMode)1 BadLocationException (javax.swing.text.BadLocationException)1 KnimeSyntaxTextArea (org.knime.base.node.util.KnimeSyntaxTextArea)1