use of com.google.security.zynamics.zylib.gui.zygraph.nodes.ZyNodeData in project binnavi by google.
the class ProximityNodeCreator method createProximityNode.
/**
* Creates a proximity browsing node.
*
* @param graph The graph where the proximity node is added to.
* @param attachedNode The graph node the proximity node is attached to.
* @param degree The edge degree of the attached node (this is the number shown in the proximity
* node).
* @param isIncoming True, to signal that the proximity node is incoming. False, if it is
* outcoming.
*
* @param <NodeType> Raw node type of the real (e.g. not proximity nodes) nodes in the graph.
*
* @return The created proximity node.
*/
public static <NodeType extends IViewNode<?>> ZyProximityNode<?> createProximityNode(final Graph2D graph, final ZyGraphNode<?> attachedNode, final int degree, final boolean isIncoming) {
Preconditions.checkNotNull(graph, "Graph argument can not be null");
Preconditions.checkNotNull(attachedNode, "Target node argument can not be null");
final ZyLabelContent labelcontent = new ZyLabelContent(null);
labelcontent.addLineContent(new ZyLineContent(String.valueOf(degree), new Font("New Courier", Font.PLAIN, 12), null));
final ZyProximityNodeRealizer<NodeType> r = new ZyProximityNodeRealizer<NodeType>(labelcontent);
final Node node = graph.createNode(r);
@SuppressWarnings("unchecked") final ZyProximityNode<NodeType> infoNode = new ZyProximityNode<NodeType>(node, r, (ZyGraphNode<NodeType>) attachedNode, isIncoming);
final ZyNodeData<ZyProximityNode<NodeType>> data = new ZyNodeData<ZyProximityNode<NodeType>>(infoNode);
r.setUserData(data);
return infoNode;
}
Aggregations