Invisible Nodes with Gephi Toolkit 0.9.1
Posted: 12 Jun 2016 17:15
Hello,
I am having an issue where I am trying to create an display a graph manually (i.e. not importing from an external file) but the nodes are not showing up. They seem just entirely invisible. I have tried changing the background color to see if they were just white on a white background, but that does not appear to be the issue. The edges show up just fine, but the nodes just don't seem to appear. My code, shown below, is mostly just pieces of the demo code from the toolkit being put together to get my desired output. Also attached is a screenshot of my display. Any help would be much appreciated. Thank you!
I am having an issue where I am trying to create an display a graph manually (i.e. not importing from an external file) but the nodes are not showing up. They seem just entirely invisible. I have tried changing the background color to see if they were just white on a white background, but that does not appear to be the issue. The edges show up just fine, but the nodes just don't seem to appear. My code, shown below, is mostly just pieces of the demo code from the toolkit being put together to get my desired output. Also attached is a screenshot of my display. Any help would be much appreciated. Thank you!
Code: Select all
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JFrame;
import org.gephi.graph.api.DirectedGraph;
import org.gephi.graph.api.Edge;
import org.gephi.graph.api.GraphController;
import org.gephi.graph.api.GraphModel;
import org.gephi.graph.api.Node;
import org.gephi.preview.api.G2DTarget;
import org.gephi.preview.api.PreviewController;
import org.gephi.preview.api.PreviewModel;
import org.gephi.preview.api.PreviewProperty;
import org.gephi.preview.api.RenderTarget;
import org.gephi.preview.types.DependantColor;
import org.gephi.project.api.ProjectController;
import org.gephi.project.api.Workspace;
import org.gephi.toolkit.demos.plugins.preview.PreviewSketch;
import org.openide.util.Lookup;
/**
*
* @author JasonB
*
*/
public class BasicGraphBuild {
public static void main(String[] args) {
BasicGraphBuild bscGraphBuild = new BasicGraphBuild();
bscGraphBuild.script();
}
public void script() {
ProjectController pc =
Lookup.getDefault().lookup(ProjectController.class);
pc.newProject();
Workspace workspace = pc.getCurrentWorkspace();
GraphModel graphModel = Lookup.getDefault()
.lookup(GraphController.class).getGraphModel();
Node n0 = graphModel.factory().newNode("n0");
n0.setLabel("Node 0");
n0.setX((float) ((0.01 + Math.random()) * 1000) - 500);
n0.setY((float) ((0.01 + Math.random()) * 1000) - 500);
Node n1 = graphModel.factory().newNode("n1");
n1.setLabel("Node 1");
n1.setX((float) ((0.01 + Math.random()) * 1000) - 500);
n1.setY((float) ((0.01 + Math.random()) * 1000) - 500);
Node n2 = graphModel.factory().newNode("n2");
n2.setLabel("Node 2");
n2.setX((float) ((0.01 + Math.random()) * 100) - 50);
n2.setY((float) ((0.01 + Math.random()) * 100) - 50);
Edge e1 = graphModel.factory().newEdge(n0, n1, 0, 1.0, true);
Edge e2 = graphModel.factory().newEdge(n0, n2, 0, 1.0, true);
DirectedGraph directedGraph = graphModel.getDirectedGraph();
directedGraph.addNode(n0);
directedGraph.addNode(n1);
directedGraph.addNode(n2);
directedGraph.addEdge(e1);
directedGraph.addEdge(e2);
// Preview configuration
PreviewController previewController =
Lookup.getDefault().lookup(PreviewController.class);
PreviewModel previewModel = previewController.getModel();
previewModel.getProperties().putValue(PreviewProperty.EDGE_CURVED,
Boolean.FALSE);
previewModel.getProperties().putValue(PreviewProperty.DIRECTED,
Boolean.TRUE);
previewModel.getProperties().putValue(PreviewProperty.NODE_BORDER_COLOR,
new DependantColor(Color.BLACK));
previewModel.getProperties().putValue(PreviewProperty.SHOW_NODE_LABELS,
Boolean.TRUE);
previewModel.getProperties().putValue(PreviewProperty.NODE_OPACITY,
100);
previewModel.getProperties().putValue(PreviewProperty.EDGE_OPACITY, 50);
previewModel.getProperties().putValue(PreviewProperty.EDGE_RADIUS, 10f);
previewModel.getProperties().putValue(PreviewProperty.BACKGROUND_COLOR,
Color.WHITE);
// New Processing target, get the PApplet
G2DTarget target = (G2DTarget) previewController
.getRenderTarget(RenderTarget.G2D_TARGET);
PreviewSketch previewSketch = new PreviewSketch(target);
previewController.refreshPreview();
previewSketch.resetZoom();
// Add the applet to a JFrame and display
JFrame frame = new JFrame("Test Preview");
frame.setLayout(new BorderLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(previewSketch, BorderLayout.CENTER);
frame.setSize(1024, 768);
frame.setVisible(true);
}
}