17 import scala.swing.{Panel, ScrollPane} |
17 import scala.swing.{Panel, ScrollPane} |
18 import scala.swing.event.{Event, Key, KeyTyped, MousePressed, MouseDragged, |
18 import scala.swing.event.{Event, Key, KeyTyped, MousePressed, MouseDragged, |
19 MouseMoved, MouseClicked, MouseWheelMoved, MouseEvent} |
19 MouseMoved, MouseClicked, MouseWheelMoved, MouseEvent} |
20 |
20 |
21 |
21 |
22 class Graph_Panel( |
22 class Graph_Panel(val visualizer: Visualizer) extends ScrollPane |
23 val visualizer: Visualizer, |
|
24 make_tooltip: (JComponent, Int, Int, XML.Body) => String) |
|
25 extends ScrollPane |
|
26 { |
23 { |
27 panel => |
24 panel => |
28 |
25 |
29 override lazy val peer: JScrollPane = new JScrollPane with SuperMixin { |
26 override lazy val peer: JScrollPane = new JScrollPane with SuperMixin { |
30 override def getToolTipText(event: java.awt.event.MouseEvent): String = |
27 override def getToolTipText(event: java.awt.event.MouseEvent): String = |
31 node(Transform.pane_to_graph_coordinates(event.getPoint)) match { |
28 node(Transform.pane_to_graph_coordinates(event.getPoint)) match { |
32 case Some(name) => |
29 case Some(name) => |
33 visualizer.model.complete_graph.get_node(name).content match { |
30 visualizer.model.complete_graph.get_node(name).content match { |
34 case Nil => null |
31 case Nil => null |
35 case content => make_tooltip(panel.peer, event.getX, event.getY, content) |
32 case content => visualizer.make_tooltip(panel.peer, event.getX, event.getY, content) |
36 } |
33 } |
37 case None => null |
34 case None => null |
38 } |
35 } |
39 } |
36 } |
40 |
37 |