Recent Changes for "Example 2: A Threshold Slider" - Graph Exploration System (GUESS)http://guess.wikispot.org/Example_2:_A_Threshold_SliderRecent Changes of the page "Example 2: A Threshold Slider" on Graph Exploration System (GUESS).en-us Example 2: A Threshold Sliderhttp://guess.wikispot.org/Example_2:_A_Threshold_Slider2007-08-11 00:34:25EytanAdarUpload of image <a href="http://guess.wikispot.org/Example_2:_A_Threshold_Slider?action=Files&do=view&target=exampl2.jpg">exampl2.jpg</a>.Example 2: A Threshold Sliderhttp://guess.wikispot.org/Example_2:_A_Threshold_Slider2007-08-11 00:34:14EytanAdar <div id="content" class="wikipage content"> Differences for Example 2: A Threshold Slider<p><strong></strong></p><table> <tr> <td> <span> Deletions are marked with - . </span> </td> <td> <span> Additions are marked with +. </span> </td> </tr> <tr> <td> Line 1: </td> <td> Line 1: </td> </tr> <tr> <td> </td> <td> <span>+ = Example 2: A Threshold Slider =<br> + Let’s try for a slightly more interactive example. Recall that in our sample database we have an edge feature called freq. If we want the user to be able to control the frequency easily we can easily create a toolbar with a slider that hides and shows edges depending on the user controlled threshold. The code and screenshot for this included below:<br> + <br> + <br> + {{{<br> + import java<br> + import javax.swing<br> + import com<br> + <br> + class dockexample2(com.hp.hpl.guess.ui.DockableAdapter):<br> + <br> + testSlider = JSlider() # keep the label and slider<br> + label = JLabel("Frequency threshold (0) ")<br> + <br> + def __init__(self):<br> + # set up the slider limits<br> + self.testSlider.setMinimum(freq.min)<br> + self.testSlider.setMaximum(freq.max + 1)<br> + <br> + # set up the slider visual properties<br> + self.testSlider.setMajorTickSpacing(50)<br> + self.testSlider.setMinorTickSpacing(10)<br> + self.testSlider.setPaintTicks(true)<br> + self.testSlider.setPaintLabels(true)<br> + self.testSlider.setValue(freq.min) # default value<br> + <br> + # every time the mouse is released call the "sc" method<br> + self.testSlider.mouseReleased = self.sc<br> + <br> + # add the label and slider to the UI<br> + self.add(self.label)<br> + self.add(self.testSlider)<br> + <br> + # dock the new panel into the UI<br> + ui.dock(self)<br> + <br> + # call the event function once so that the<br> + # display matches the slider value<br> + self.sc(None)<br> + <br> + def getTitle(self):<br> + return("dockexample2")<br> + <br> + def sc(self,evt):<br> + # get the value<br> + val = self.testSlider.getValue()<br> + <br> + # show all the nodes<br> + g.nodes.visible = 1<br> + <br> + # hide all edges under value and show all over<br> + (freq &lt; val).visible = 0<br> + (freq &gt;= val).visible = 1<br> + <br> + # hide nodes not connected to visible edges<br> + self.hideDisconnectedNodes()<br> + <br> + # set the label text<br> + self.label.setText("Frequency threshold ("+str(val)+")")<br> + <br> + def hideDisconnectedNodes(self):<br> + # keep a list of nodes to hide, java doesn’t<br> + # like us to modify objects as we iterate over them<br> + toHide = []<br> + <br> + for nod in g.nodes: # for all nodes<br> + vis = 0 # default to invisble<br> + <br> + # for all edges connected to this node<br> + # if there is any visible edge<br> + # keep this node visible<br> + for ed in nod.getOutEdges():<br> + if (ed.visible == 1):<br> + vis = 1<br> + break<br> + <br> + if (vis == 0): # should we hide the node?<br> + toHide += [nod]<br> + <br> + # hide all the nodes we put in our list<br> + toHide.visible = 0<br> + }}}<br> + <br> + --&gt;<br> + [[Image(exampl2.jpg)]]&lt;--</span> </td> </tr> </table> </div>