edu.uci.ics.jung.visualization.renderers.BasicRenderer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jung-visualization Show documentation
Show all versions of jung-visualization Show documentation
Core visualization support for the JUNG project
The newest version!
/*
* Copyright (c) 2003, The JUNG Authors
* All rights reserved.
*
* This software is open-source under the BSD license; see either "license.txt"
* or https://github.com/jrtom/jung/blob/master/LICENSE for a description.
*/
package edu.uci.ics.jung.visualization.renderers;
import java.util.ConcurrentModificationException;
import edu.uci.ics.jung.algorithms.layout.Layout;
import edu.uci.ics.jung.visualization.RenderContext;
/**
* The default implementation of the Renderer used by the
* VisualizationViewer. Default Vertex and Edge Renderers
* are supplied, or the user may set custom values. The
* Vertex and Edge renderers are used in the renderVertex
* and renderEdge methods, which are called in the render
* loop of the VisualizationViewer.
*
* @author Tom Nelson
*/
public class BasicRenderer implements Renderer {
Renderer.Vertex vertexRenderer = new BasicVertexRenderer();
Renderer.VertexLabel vertexLabelRenderer = new BasicVertexLabelRenderer();
Renderer.Edge edgeRenderer = new BasicEdgeRenderer();
Renderer.EdgeLabel edgeLabelRenderer = new BasicEdgeLabelRenderer();
public void render(RenderContext renderContext, Layout layout) {
// paint all the edges
try {
for(E e : layout.getGraph().getEdges()) {
renderEdge(
renderContext,
layout,
e);
renderEdgeLabel(
renderContext,
layout,
e);
}
} catch(ConcurrentModificationException cme) {
renderContext.getScreenDevice().repaint();
}
// paint all the vertices
try {
for(V v : layout.getGraph().getVertices()) {
renderVertex(
renderContext,
layout,
v);
renderVertexLabel(
renderContext,
layout,
v);
}
} catch(ConcurrentModificationException cme) {
renderContext.getScreenDevice().repaint();
}
}
public void renderVertex(RenderContext rc, Layout layout, V v) {
vertexRenderer.paintVertex(rc, layout, v);
}
public void renderVertexLabel(RenderContext rc, Layout layout, V v) {
vertexLabelRenderer.labelVertex(rc, layout, v, rc.getVertexLabelTransformer().apply(v));
}
public void renderEdge(RenderContext rc, Layout layout, E e) {
edgeRenderer.paintEdge(rc, layout, e);
}
public void renderEdgeLabel(RenderContext rc, Layout layout, E e) {
edgeLabelRenderer.labelEdge(rc, layout, e, rc.getEdgeLabelTransformer().apply(e));
}
public void setVertexRenderer(Renderer.Vertex r) {
this.vertexRenderer = r;
}
public void setEdgeRenderer(Renderer.Edge r) {
this.edgeRenderer = r;
}
/**
* @return the edgeLabelRenderer
*/
public Renderer.EdgeLabel getEdgeLabelRenderer() {
return edgeLabelRenderer;
}
/**
* @param edgeLabelRenderer the edgeLabelRenderer to set
*/
public void setEdgeLabelRenderer(Renderer.EdgeLabel edgeLabelRenderer) {
this.edgeLabelRenderer = edgeLabelRenderer;
}
/**
* @return the vertexLabelRenderer
*/
public Renderer.VertexLabel getVertexLabelRenderer() {
return vertexLabelRenderer;
}
/**
* @param vertexLabelRenderer the vertexLabelRenderer to set
*/
public void setVertexLabelRenderer(
Renderer.VertexLabel vertexLabelRenderer) {
this.vertexLabelRenderer = vertexLabelRenderer;
}
/**
* @return the edgeRenderer
*/
public Renderer.Edge getEdgeRenderer() {
return edgeRenderer;
}
/**
* @return the vertexRenderer
*/
public Renderer.Vertex getVertexRenderer() {
return vertexRenderer;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy