Merge pull request #4113 from JakubValtar/various-fixes

Various editor fixes
This commit is contained in:
Ben Fry
2016-02-13 10:40:29 -05:00
4 changed files with 53 additions and 55 deletions

View File

@@ -155,15 +155,10 @@ public class MarkerColumn extends JPanel {
/** Find out which error/warning the user has clicked and scroll to it */
private void scrollToMarkerAt(final int y) {
try {
new SwingWorker() {
protected Object doInBackground() throws Exception {
LineMarker m = findClosestMarker(y);
if (m != null) {
editor.getErrorChecker().scrollToErrorLine(m.getProblem());
}
return null;
}
}.execute();
LineMarker m = findClosestMarker(y);
if (m != null) {
editor.getErrorChecker().scrollToErrorLine(m.getProblem());
}
} catch (Exception ex) {
ex.printStackTrace();
}
@@ -181,21 +176,16 @@ public class MarkerColumn extends JPanel {
/** Show tooltip on hover. */
private void showMarkerHover(final int y) {
try {
new SwingWorker() {
protected Object doInBackground() throws Exception {
LineMarker m = findClosestMarker(y);
if (m != null) {
Problem p = m.getProblem();
LineMarker m = findClosestMarker(y);
if (m != null) {
Problem p = m.getProblem();
// String kind = p.isError() ?
// Language.text("editor.status.error") :
// Language.text("editor.status.warning");
// setToolTipText(kind + ": " + p.getMessage());
editor.statusToolTip(MarkerColumn.this, p.getMessage(), p.isError());
setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
}
return null;
}
}.execute();
editor.statusToolTip(MarkerColumn.this, p.getMessage(), p.isError());
setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
}
} catch (Exception ex) {
ex.printStackTrace();
}

View File

@@ -26,6 +26,7 @@ import processing.mode.java.tweak.*;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
@@ -114,39 +115,6 @@ public class JavaTextAreaPainter extends TextAreaPainter
}
});
addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseMoved(final MouseEvent evt) {
int line = textArea.yToLine(evt.getY());
int x = evt.getX();
LineMarker marker = getJavaEditor().findError(line);
if (marker != null) {
Problem problem = marker.getProblem();
int lineOffset = textArea.getLineStartOffset(problem.getLineNumber());
int lineStart = textArea.getLineStartOffset(line);
int lineEnd = textArea.getLineStopOffset(line);
int errorStart = lineOffset + problem.getPDELineStartOffset();
int errorEnd = lineOffset + problem.getPDELineStopOffset() + 1;
int startOffset = Math.max(errorStart, lineStart) - lineStart;
int stopOffset = Math.min(errorEnd, lineEnd) - lineStart;
if (x >= getJavaTextArea().offsetToX(line, startOffset) &&
x <= getJavaTextArea().offsetToX(line, stopOffset)) {
//setToolTipText(problem.getMessage());
getJavaEditor().statusToolTip(JavaTextAreaPainter.this,
problem.getMessage(),
problem.isError());
evt.consume();
}
}
}
});
// TweakMode code
tweakMode = false;
cursorType = Cursor.DEFAULT_CURSOR;
@@ -476,6 +444,42 @@ public class JavaTextAreaPainter extends TextAreaPainter
}
@Override
public String getToolTipText(MouseEvent evt) {
int line = evt.getY() / getFontMetrics().getHeight() + textArea.getFirstLine();
if (line >= 0 || line < textArea.getLineCount()) {
LineMarker marker = getJavaEditor().findError(line);
if (marker != null) {
Problem problem = marker.getProblem();
int lineOffset = textArea.getLineStartOffset(problem.getLineNumber());
int lineStart = textArea.getLineStartOffset(line);
int lineEnd = textArea.getLineStopOffset(line);
int errorStart = lineOffset + problem.getPDELineStartOffset();
int errorEnd = lineOffset + problem.getPDELineStopOffset() + 1;
int startOffset = Math.max(errorStart, lineStart) - lineStart;
int stopOffset = Math.min(errorEnd, lineEnd) - lineStart;
int x = evt.getX();
if (x >= getJavaTextArea().offsetToX(line, startOffset) &&
x <= getJavaTextArea().offsetToX(line, stopOffset)) {
getJavaEditor().statusToolTip(JavaTextAreaPainter.this,
problem.getMessage(),
problem.isError());
return super.getToolTipText(evt);
}
}
}
setToolTipText(null);
return super.getToolTipText(evt);
}
/*
@Override
public String getToolTipText(MouseEvent event) {
if (!getJavaEditor().hasJavaTabs()) {
@@ -564,6 +568,7 @@ public class JavaTextAreaPainter extends TextAreaPainter
// setToolTipText(null);
return super.getToolTipText(event);
}
*/
// TweakMode code