Explanations and such
here.
package tutorial;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import prefuse.*;
import prefuse.action.*;
import prefuse.controls.*;
import prefuse.data.*;
import prefuse.render.*;
import prefuse.action.assignment.ColorAction;
import prefuse.action.layout.graph.ForceDirectedLayout;
import prefuse.activity.Activity;
import prefuse.util.ColorLib;
import prefuse.visual.VisualItem;
public class BuildViz extends Visualization{
Visualization MyViz;
Graph MyGraph;
Display MyDisplay;
public BuildViz(){
//Build The Graph
MyGraph = new Graph();
Node n0 = MyGraph.addNode();
Node n1 = MyGraph.addNode();
Node n2 = MyGraph.addNode();
Node n3 = MyGraph.addNode();
Node n4 = MyGraph.addNode();
Node n5 = MyGraph.addNode();
Node n6 = MyGraph.addNode();
//Build the Visualization
MyViz = new Visualization();
MyViz.add("graph", MyGraph);
MyViz.setInteractive("graph.edges", null, false);
MyViz.setInteractive("graph.nodes", null, true);
MyViz.setValue("graph.nodes", null, VisualItem.SHAPE,
new Integer(Constants.SHAPE_HEXAGON));
//Set up the Renderer
ShapeRenderer myRenderer = new ShapeRenderer(20);
DefaultRendererFactory drf = new DefaultRendererFactory();
drf.setDefaultRenderer(myRenderer);
MyViz.setRendererFactory(drf);
//Node Coloring
ColorAction nStroke = new ColorAction("graph.nodes", VisualItem.STROKECOLOR);
nStroke.setDefaultColor(ColorLib.gray(0));
nStroke.add("_hover", ColorLib.gray(150));
ColorAction nFill = new ColorAction("graph.nodes", VisualItem.FILLCOLOR);
nFill.setDefaultColor(ColorLib.gray(255));
nFill.add("_hover", ColorLib.gray(150));
//Set the Edges
ColorAction eStroke = new ColorAction("graph.edges", VisualItem.STROKECOLOR);
eStroke.setDefaultColor(ColorLib.gray(150));
eStroke.add("_hover", ColorLib.gray(0));
//Bundle ColorActions
ActionList color = new ActionList();
color.add(nStroke);
color.add(nFill);
color.add(eStroke);
//Main Layout Routine
ActionList layout = new ActionList(Activity.INFINITY);
layout.add(color);
layout.add(new ForceDirectedLayout("graph", true));
layout.add(new RepaintAction());
MyViz.putAction("layout", layout);
//set up display
MyDisplay = new Display(MyViz);
MyDisplay.setSize(500,500);
MyDisplay.pan(250,250);
MyDisplay.addControlListener(new ZoomControl());
MyDisplay.addControlListener(new PanControl());
MyDisplay.addControlListener(new DragControl());
}
}