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;
}
}
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;
}
}
Aggregations