1 # adds a slider that controls the visibility of edges based on
5 # load up the sample.gdf
6 # execfile("scripts/dockexample2.py")
13 class dockexample2(com
.hp
.hpl
.guess
.ui
.DockableAdapter
):
15 testSlider
= JSlider()
16 label
= JLabel("Frequency threshold (0) ")
19 # set up the slider limits
20 self
.testSlider
.setMinimum(freq
.min)
21 self
.testSlider
.setMaximum(freq
.max + 1)
23 # set up the slider visual properties
24 self
.testSlider
.setMajorTickSpacing(50)
25 self
.testSlider
.setMinorTickSpacing(10)
26 self
.testSlider
.setPaintTicks(true
)
27 self
.testSlider
.setPaintLabels(true
)
28 self
.testSlider
.setValue(freq
.min) # default value
30 # every time the mouse is released call the "sc" event
31 self
.testSlider
.mouseReleased
= self
.sc
33 # add the label and slider to the UI
35 self
.add(self
.testSlider
)
37 # dock the new panel into the UI
40 # call the event function once so that the
41 # display matches the slider value
45 return("dockexample2")
49 val
= self
.testSlider
.getValue()
54 # hide all edges under value and show all over
55 (freq
< val
).visible
= 0
56 (freq
>= val
).visible
= 1
58 # hide nodes not connected to visible edges
59 self
.hideDisconnectedNodes()
62 self
.label
.setText("Frequency threshold ("+str(val
)+")")
64 def hideDisconnectedNodes(self
):
65 # keep a list of nodes to hide
69 for nod
in g
.nodes
: # for all nodes
70 vis
= 0 # default to invisble
72 # for all edges connected to this node
73 # if there is any visible edge
74 # keep this node visible
75 for ed
in nod
.getOutEdges():
80 if (vis
== 0): # should we hide the node?
83 # hide all the nodes we put in our list