3 class animhighlight(java
.lang
.Object
):
5 # so we can "unhighlight" nodes
10 graphevents
.mouseEnterNode
= self
.mouseEnter
11 graphevents
.mouseLeaveNode
= self
.mouseLeave
12 graphevents
.clickNode
= self
.mouseClick
14 # remove default behaviors
15 vf
.defaultNodeHighlights(false
)
16 vf
.defaultNodeZooming(false
)
18 def mouseEnter(self
,_node
):
19 self
._toFix
[_node
] = _node
.color
20 StatusBar
.setStatus(str(_node
))
23 for _e
in _node
.getOutEdges():
24 if not (_e
in self
._toFix
.keys()):
25 self
._toFix
[_e
] = _e
.color
29 for _e
in _node
.getInEdges():
30 if not (_e
in self
._toFix
.keys()):
31 self
._toFix
[_e
] = _e
.color
35 for _n
in _node
.getPredecessors():
37 self
._toFix
[_n
] = _n
.color
41 for _n
in _node
.getSuccessors():
43 self
._toFix
[_n
] = _n
.color
49 def mouseLeave(self
,_node
):
50 # put back all the original colors
52 for _elem
in self
._toFix
.keys():
53 _elem
.color
= self
._toFix
[_elem
]
54 _elem
.animationStopAll()
57 def mouseClick(self
,_node
):
58 # zoom to the node AND its neighbors
60 _toCenter
+= _node
.getNeighbors()