Class BiModalRenderer<V,E>
- java.lang.Object
-
- org.jungrapht.visualization.renderers.BiModalRenderer<V,E>
-
- Type Parameters:
V
- the vertex typeE
- the edge type
- All Implemented Interfaces:
EventListener
,ChangeListener
,ModalRenderer<V,E>
,Renderer<V,E>
- Direct Known Subclasses:
BiModalSelectionRenderer
,DefaultModalRenderer
public class BiModalRenderer<V,E> extends Object implements ModalRenderer<V,E>, ChangeListener
ARenderer
that delegates to either aHeavyweightRenderer
or aLightweightRenderer
depending on the results of a count Predicate and a scale PredicateThe count predicate defaults to a comparison of the vertex count with the lightweightCountThreshold.
The scale predicate defaults to a comparison of the VIEW transform scale with the lightweightScaleThreshold. Note that the VIEW transform scale range is 0 < VIEW transform scale <= 1.0
The following conditions apply:
- vertex count <
lightweightCountThreshold
: Always draw withHeavyweightRenderer
lightweightScaleThreshold
> 1.0: Always draw withLightweightRenderer
(unless 1 is true)- If neither 1 nor 2 are true:
- the static graph will be rendered with the
HeavyweightRenderer
when VIEW transform scale >lightweightScaleThreshold
. Otherwise, the static graph will be rendered with theLightweightRenderer
- While the graph is being manipulated with mouse gestures (zoom/pan, etc) the graph
will be rendered with the
LightweightRenderer
- the static graph will be rendered with the
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
BiModalRenderer.Builder<V,E,T extends BiModalRenderer<V,E>,B extends BiModalRenderer.Builder<V,E,T,B>>
Builder to create a configured instance of a BiModalRenderer-
Nested classes/interfaces inherited from interface org.jungrapht.visualization.renderers.ModalRenderer
ModalRenderer.Mode
-
Nested classes/interfaces inherited from interface org.jungrapht.visualization.renderers.Renderer
Renderer.Edge<V,E>, Renderer.EdgeLabel<V,E>, Renderer.Vertex<V,E>, Renderer.VertexLabel<V,E>
-
-
Field Summary
Fields Modifier and Type Field Description protected Predicate<Supplier<Integer>>
countPredicate
protected Supplier<Integer>
countSupplier
static ModalRenderer.Mode
HEAVYWEIGHT
static ModalRenderer.Mode
LIGHTWEIGHT
protected int
lightweightRenderingCountThreshold
threshold for vertex count that affects rendering modeprotected double
lightweightRenderingScaleThreshold
scale that affects rendering modeprotected ModalRenderer.Mode
mode
protected Map<ModalRenderer.Mode,Renderer<V,E>>
rendererMap
protected Predicate<Supplier<Double>>
scalePredicate
protected Supplier<Double>
scaleSupplier
-
Constructor Summary
Constructors Modifier Constructor Description protected
BiModalRenderer(JComponent component, Map<ModalRenderer.Mode,Renderer<V,E>> rendererMap)
protected
BiModalRenderer(BiModalRenderer.Builder<V,E,?,?> builder)
-
Method Summary
-
-
-
Field Detail
-
LIGHTWEIGHT
public static final ModalRenderer.Mode LIGHTWEIGHT
-
HEAVYWEIGHT
public static final ModalRenderer.Mode HEAVYWEIGHT
-
lightweightRenderingCountThreshold
protected int lightweightRenderingCountThreshold
threshold for vertex count that affects rendering mode
-
lightweightRenderingScaleThreshold
protected double lightweightRenderingScaleThreshold
scale that affects rendering mode
-
mode
protected ModalRenderer.Mode mode
-
rendererMap
protected Map<ModalRenderer.Mode,Renderer<V,E>> rendererMap
-
-
Constructor Detail
-
BiModalRenderer
protected BiModalRenderer(BiModalRenderer.Builder<V,E,?,?> builder)
-
BiModalRenderer
protected BiModalRenderer(JComponent component, Map<ModalRenderer.Mode,Renderer<V,E>> rendererMap)
-
-
Method Detail
-
builder
public static <V,E> BiModalRenderer.Builder<V,E,?,?> builder()
- Type Parameters:
V
- vertex typeE
- edge type- Returns:
- a Builder to configure
-
setRenderer
public void setRenderer(ModalRenderer.Mode mode, Renderer<V,E> renderer)
- Specified by:
setRenderer
in interfaceModalRenderer<V,E>
-
getRenderer
public Renderer<V,E> getRenderer(ModalRenderer.Mode mode)
- Specified by:
getRenderer
in interfaceModalRenderer<V,E>
-
setMode
public void setMode(ModalRenderer.Mode mode)
- Specified by:
setMode
in interfaceModalRenderer<V,E>
-
getMode
public ModalRenderer.Mode getMode()
-
render
public void render(RenderContext<V,E> renderContext, LayoutModel<V> layoutModel, Spatial<V,V> vertexSpatial, Spatial<E,V> edgeSpatial)
-
render
public void render(RenderContext<V,E> renderContext, LayoutModel<V> layoutModel)
-
renderVertex
public void renderVertex(RenderContext<V,E> renderContext, LayoutModel<V> layoutModel, V v)
- Specified by:
renderVertex
in interfaceRenderer<V,E>
-
renderVertexLabel
public void renderVertexLabel(RenderContext<V,E> renderContext, LayoutModel<V> layoutModel, V v)
- Specified by:
renderVertexLabel
in interfaceRenderer<V,E>
-
renderEdge
public void renderEdge(RenderContext<V,E> renderContext, LayoutModel<V> layoutModel, E e)
- Specified by:
renderEdge
in interfaceRenderer<V,E>
-
renderEdgeLabel
public void renderEdgeLabel(RenderContext<V,E> renderContext, LayoutModel<V> layoutModel, E e)
- Specified by:
renderEdgeLabel
in interfaceRenderer<V,E>
-
setVertexRenderer
public void setVertexRenderer(Renderer.Vertex<V,E> r)
- Specified by:
setVertexRenderer
in interfaceRenderer<V,E>
-
setEdgeRenderer
public void setEdgeRenderer(Renderer.Edge<V,E> r)
- Specified by:
setEdgeRenderer
in interfaceRenderer<V,E>
-
setVertexLabelRenderer
public void setVertexLabelRenderer(Renderer.VertexLabel<V,E> r)
- Specified by:
setVertexLabelRenderer
in interfaceRenderer<V,E>
-
setEdgeLabelRenderer
public void setEdgeLabelRenderer(Renderer.EdgeLabel<V,E> r)
- Specified by:
setEdgeLabelRenderer
in interfaceRenderer<V,E>
-
getVertexLabelRenderer
public Renderer.VertexLabel<V,E> getVertexLabelRenderer()
- Specified by:
getVertexLabelRenderer
in interfaceRenderer<V,E>
-
getVertexRenderer
public Renderer.Vertex<V,E> getVertexRenderer()
- Specified by:
getVertexRenderer
in interfaceRenderer<V,E>
-
getEdgeRenderer
public Renderer.Edge<V,E> getEdgeRenderer()
- Specified by:
getEdgeRenderer
in interfaceRenderer<V,E>
-
getEdgeLabelRenderer
public Renderer.EdgeLabel<V,E> getEdgeLabelRenderer()
- Specified by:
getEdgeLabelRenderer
in interfaceRenderer<V,E>
-
setVertexRenderer
public void setVertexRenderer(ModalRenderer.Mode mode, Renderer.Vertex<V,E> r)
- Specified by:
setVertexRenderer
in interfaceModalRenderer<V,E>
-
setEdgeRenderer
public void setEdgeRenderer(ModalRenderer.Mode mode, Renderer.Edge<V,E> r)
- Specified by:
setEdgeRenderer
in interfaceModalRenderer<V,E>
-
setVertexLabelRenderer
public void setVertexLabelRenderer(ModalRenderer.Mode mode, Renderer.VertexLabel<V,E> r)
- Specified by:
setVertexLabelRenderer
in interfaceModalRenderer<V,E>
-
setEdgeLabelRenderer
public void setEdgeLabelRenderer(ModalRenderer.Mode mode, Renderer.EdgeLabel<V,E> r)
- Specified by:
setEdgeLabelRenderer
in interfaceModalRenderer<V,E>
-
getVertexLabelRenderer
public Renderer.VertexLabel<V,E> getVertexLabelRenderer(ModalRenderer.Mode mode)
- Specified by:
getVertexLabelRenderer
in interfaceModalRenderer<V,E>
-
getVertexRenderer
public Renderer.Vertex<V,E> getVertexRenderer(ModalRenderer.Mode mode)
- Specified by:
getVertexRenderer
in interfaceModalRenderer<V,E>
-
getEdgeRenderer
public Renderer.Edge<V,E> getEdgeRenderer(ModalRenderer.Mode mode)
- Specified by:
getEdgeRenderer
in interfaceModalRenderer<V,E>
-
getEdgeLabelRenderer
public Renderer.EdgeLabel<V,E> getEdgeLabelRenderer(ModalRenderer.Mode mode)
- Specified by:
getEdgeLabelRenderer
in interfaceModalRenderer<V,E>
-
getModeFor
protected ModalRenderer.Mode getModeFor(Supplier<Double> scaleSupplier)
-
manageMode
protected void manageMode()
-
stateChanged
public void stateChanged(ChangeEvent e)
- Specified by:
stateChanged
in interfaceChangeListener
-
-