I have been using JGraphX to display some data (simple discrete graphs) and I would like to know how to do the following things with the JGraphX library:
- Make all edges unmovable but开发者_运维问答 still allow the user to create an edge between two vertices
- Make all vertices and edges uneditable (they cannot edit what is displayed on them)
- How do I get the selected vertex or edge at any given time?
- Make all vertex boxes unresizable to the user
- How do I modify the colour of each vertex's box?
Thanks, ExtremeCoder
Here is an example:
mxGraph graph = new mxGraph()
{
// Make all edges unmovable
public boolean isCellMovable(Object cell)
{
return !getModel().isEdge(cell);
}
// Make all vertex boxes unresizable
public boolean isCellResizable(Object cell)
{
return !getModel().isVertex(cell);
}
};
// Make all vertices and edges uneditable
graph.setCellsEditable(false);
// Make all edges unbendable
graph.setCellsBendable(false);
// Get the selected vertex or edge
System.out.println(graph.getSelectionCell());
// To insert a vertex with a given color:
Object v1 = graph.insertVertex(parent, null, "Hello",
20, 20, 80, 30, "fillColor=#FF0000;");
// To modify the color of a vertex:
graph.setCellStyles(mxConstants.STYLE_FILLCOLOR, "#00FF00", new Object[]{v1});
精彩评论