< prev index next >

application/org.openjdk.jmc.ui/src/main/java/org/openjdk/jmc/ui/misc/ChartCanvas.java

Print this page

        

*** 75,84 **** --- 75,85 ---- public class ChartCanvas extends Canvas { private int lastMouseX = -1; private int lastMouseY = -1; private List<Rectangle2D> highlightRects; + private Object hoveredItemData; private class Selector extends MouseAdapter implements MouseMoveListener, MouseTrackListener { int selectionStartX = -1; int selectionStartY = -1;
*** 150,159 **** --- 151,161 ---- public void mouseEnter(MouseEvent e) { } @Override public void mouseExit(MouseEvent e) { + resetHoveredItemData(); clearHighlightRects(); } @Override public void mouseHover(MouseEvent e) {
*** 389,398 **** --- 391,412 ---- */ private int translateDisplayToImageXCoordinates(int x) { return (int) Math.round(x / xScale); } + public Object getHoveredItemData() { + return this.hoveredItemData; + } + + public void setHoveredItemData(Object data) { + this.hoveredItemData = data; + } + + public void resetHoveredItemData() { + this.hoveredItemData = null; + } + private void updateHighlightRects() { List<Rectangle2D> newRects = new ArrayList<>(); infoAt(new IChartInfoVisitor.Adapter() { @Override public void visit(IBucket bucket) {
*** 418,427 **** --- 432,448 ---- @Override public void visit(ILane lane) { // FIXME: Do we want this highlighted? } + + @Override + public void hover(Object data) { + if (data != null) { + setHoveredItemData(data); + } + } }, lastMouseX, lastMouseY); // Attempt to reduce flicker by avoiding unnecessary updates. if (!newRects.equals(highlightRects)) { highlightRects = newRects; redraw();
< prev index next >