< 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 >