diff --git a/tools/cooja/java/org/contikios/cooja/plugins/Visualizer.java b/tools/cooja/java/org/contikios/cooja/plugins/Visualizer.java index 5b6c513ba..56b20097b 100644 --- a/tools/cooja/java/org/contikios/cooja/plugins/Visualizer.java +++ b/tools/cooja/java/org/contikios/cooja/plugins/Visualizer.java @@ -88,6 +88,7 @@ import javax.swing.KeyStroke; import javax.swing.MenuElement; import javax.swing.SwingUtilities; import javax.swing.Timer; +import javax.swing.ToolTipManager; import javax.swing.event.MenuEvent; import javax.swing.event.MenuListener; import javax.swing.plaf.basic.BasicInternalFrameUI; @@ -324,6 +325,10 @@ public class Visualizer extends VisPlugin implements HasQuickHelp { canvas = new JPanel() { private static final long serialVersionUID = 1L; + { + ToolTipManager.sharedInstance().registerComponent(this); + } + @Override public void paintComponent(Graphics g) { super.paintComponent(g); @@ -343,6 +348,35 @@ public class Visualizer extends VisPlugin implements HasQuickHelp { } selection.drawSelection(g); } + + @Override + public String getToolTipText(MouseEvent event) { + Mote[] motes = findMotesAtPosition(event.getX(), event.getY()); + if (motes == null) { + return null; + } + File file = motes[0].getType().getContikiSourceFile(); + if (file == null) { + file = motes[0].getType().getContikiFirmwareFile(); + } + String fileName; + if (file == null) { + fileName = ""; + } else { + fileName = file.getName(); + } + StringBuilder sb = new StringBuilder() + .append("") + .append("") + .append("") + .append("
Type:") + .append(motes[0].getType().getIdentifier()) + .append("
Runs:") + .append(fileName) + .append("
"); + return sb.toString(); + } + }; canvas.setBackground(Color.WHITE); viewportTransform = new AffineTransform();