I have a problem where sometimes the edges are not affected by ui.hide.
1. remove the ui.hide from ALL nodes and edges
2. set ui.hide on ALL edges and nodes.
Some times the edges are still visible. I suspect there is a bug in the redrawing.
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import org.graphstream.graph.*;
import org.graphstream.graph.implementations.*;
import org.graphstream.ui.view.View;
import org.graphstream.ui.view.Viewer;
public class Test {
public static void main(String args[])
{
final Graph graph = new SingleGraph("Tutorial 1");
graph.addNode("A");
graph.addNode("B");
graph.addNode("C");
graph.addEdge("AB", "A", "B");
graph.addEdge("BC", "B", "C");
graph.addEdge("CA", "C", "A");
Viewer viewer = new Viewer(graph, Viewer.ThreadingModel.GRAPH_IN_GUI_THREAD);
viewer.enableAutoLayout();
View view = viewer.addDefaultView(false); // false indicates "no JFrame".
JButton button = new JButton();
button.setText("Clear");
JFrame myJFrame = new JFrame();
myJFrame.setSize(300,300);
myJFrame.setVisible(true);
myJFrame.setLayout(new BorderLayout());
myJFrame.add((Component) view);
myJFrame.add((Component) button,BorderLayout.SOUTH);
button.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent arg0) {}
public void mouseEntered(MouseEvent arg0) {}
public void mouseExited(MouseEvent arg0) {}
public void mousePressed(MouseEvent arg0) {}
public void mouseReleased(MouseEvent arg0) {
//
for(int i=0;i<graph.getNodeCount();i++)
{
graph.getNode(i).removeAttribute("ui.hide");
}
for(int i=0;i<graph.getEdgeCount();i++)
{
graph.getEdge(i).removeAttribute("ui.hide");
}
for(int i=0;i<graph.getEdgeCount();i++)
{
graph.getEdge(i).setAttribute("ui.hide","true");
}
for(int i=0;i<graph.getNodeCount();i++)
{
graph.getNode(i).setAttribute("ui.hide","true");
}
}
});
}
}