/** */ public VisualizationImageServerDemo() { // create a simple graph for the demo graph = createGraph(); vv = new VisualizationImageServer<>(graph, new KKLayoutAlgorithm<>(), new Dimension(600, 600)); vv.getRenderer() .setNodeRenderer( new GradientNodeRenderer<>(vv, Color.white, Color.red, Color.white, Color.blue, false)); vv.getRenderContext().setEdgeDrawPaintFunction(e -> Color.lightGray); vv.getRenderContext().setArrowFillPaintFunction(e -> Color.lightGray); vv.getRenderContext().setArrowDrawPaintFunction(e -> Color.lightGray); vv.getRenderContext().setNodeLabelFunction(Object::toString); vv.getRenderer() .getNodeLabelRenderer() .setPositioner(new BasicNodeLabelRenderer.InsidePositioner()); vv.getRenderer().getNodeLabelRenderer().setPosition(Renderer.NodeLabel.Position.AUTO); // create a frome to hold the graph final JFrame frame = new JFrame(); Container content = frame.getContentPane(); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); Image im = vv.getImage(new Point2D.Double(300, 300), new Dimension(600, 600)); Icon icon = new ImageIcon(im); JLabel label = new JLabel(icon); content.add(label); frame.pack(); frame.setVisible(true); }
public void writeServerJPEGImage(File file) { VisualizationImageServer<Vertex, Edge> vis = new VisualizationImageServer<Vertex, Edge>(vv.getGraphLayout(), vv.getGraphLayout().getSize()); vis.setBackground(Color.WHITE); vis.getRenderContext().setEdgeDrawPaintTransformer(edgeColor); vis.getRenderContext().setVertexIconTransformer(vertexColor); BufferedImage image = (BufferedImage) vis.getImage( new Point2D.Double(vis.getWidth(), vis.getHeight()), new Dimension(vv.getGraphLayout().getSize())); try { ImageIO.write(image, "jpeg", file); } catch (Exception e) { e.printStackTrace(); } }
layout.setSize(new Dimension(1024,1024)); // Size of the layout VisualizationImageServer<GraphVertex, GraphEdge> vv = new VisualizationImageServer<GraphVertex, GraphEdge>(layout, layout.getSize()); vv.setPreferredSize(new Dimension(1200,1200)); // Viewing area size vv.getRenderContext().setVertexLabelTransformer(new Transformer<GraphVertex,String>() { @Override public String transform(GraphVertex vertex) { vv.getRenderContext().setEdgeLabelTransformer(new Transformer<GraphEdge,String>() { @Override public String transform(GraphEdge edge) { BufferedImage image = (BufferedImage) vv.getImage( new Point2D.Double(vv.getGraphLayout().getSize().getWidth() / 2, vv.getGraphLayout().getSize().getHeight() / 2), new Dimension(vv.getGraphLayout().getSize()));
public void export(final DirectedGraph<ElementName, Dependency> g) throws IOException { final Dimension d = new Dimension(this.width, this.height); final Layout<ElementName, Dependency> layout = pickLayout(g, d); final VisualizationImageServer<ElementName, Dependency> viz = new VisualizationImageServer<ElementName, Dependency>( layout, d); final RenderContext<ElementName, Dependency> context = viz .getRenderContext(); context.setEdgeLabelTransformer(new EdgeLabeller()); context.setVertexLabelTransformer(new VertexLabeller()); final VertexRenderer vertexRenderer = new VertexRenderer( viz.getRenderContext()); viz.getRenderContext().setVertexShapeTransformer(vertexRenderer); viz.getRenderer().setVertexLabelRenderer(vertexRenderer); context.setVertexFillPaintTransformer(fillVertex()); context.setEdgeDrawPaintTransformer(fillEdge(g)); context.setEdgeLabelClosenessTransformer(closenessTransformer()); context.setEdgeStrokeTransformer(edgeWeight()); context.setEdgeArrowStrokeTransformer(edgeWeight()); context.setArrowFillPaintTransformer(fillEdge(g)); context.setArrowDrawPaintTransformer(fillEdge(g)); viz.setPreferredSize(new Dimension(this.width, this.height)); viz.setBackground(new Color(1, 1, 1, 0)); final SVGGraphics2D svgGenerator = new SVGGraphics2D(this.out, d); svgGenerator.writeHeader(); viz.paintAll(svgGenerator); svgGenerator.writeTrailer(); svgGenerator.dispose(); }
VisualizationImageServer<V, E> vis = new VisualizationImageServer<V, E>(layout, layout.getSize()); vis.setBackground(Color.WHITE); vis.getRenderContext().setEdgeArrowPredicate(new NoArrowPredicate<V, E>()); vis.getRenderContext().setEdgeShapeTransformer(new EdgeShape.Line<V, E>()); vis.getRenderContext().setEdgeStrokeTransformer(new ConstantTransformer(new BasicStroke(linkThickness))); vis.getRenderContext().setVertexDrawPaintTransformer(new ConstantTransformer(Color.BLACK)); vis.getRenderContext().setVertexFillPaintTransformer(new ConstantTransformer(Color.BLACK)); vis.getRenderContext().setVertexFontTransformer(new ConstantTransformer(new Font("Helvetica", Font.BOLD, fontSize))); vis.getRenderContext().setVertexLabelRenderer(new MyDefaultVertexLabelRenderer<V>(Color.WHITE)); vis.getRenderContext().setVertexLabelTransformer(new ToStringLabeller<V>()); vis.getRenderContext().setVertexShapeTransformer(new Transformer<V, Shape>() vis.getRenderer().getVertexLabelRenderer().setPosition(Renderer.VertexLabel.Position.CNTR); Rectangle viewInLayoutUnits = vis.getRenderContext().getMultiLayerTransformer().inverseTransform(vis.getBounds()).getBounds(); float ratio_h = Math.abs(aux_xmax - aux_xmin) < PRECISION_FACTOR ? 1 : (float) (viewInLayoutUnits.getWidth() / (aux_xmax - aux_xmin)); float ratio_v = Math.abs(aux_ymax - aux_ymin) < PRECISION_FACTOR ? 1 : (float) (viewInLayoutUnits.getHeight() / (aux_ymax - aux_ymin)); float ratio = (float) (0.8 * Math.min(ratio_h, ratio_v)); LayoutScalingControl scalingControl = new LayoutScalingControl(); scalingControl.scale(vis, ratio, vis.getCenter()); Point2D lvc = vis.getCenter(); double dx = (lvc.getX() - q.getX()); double dy = (lvc.getY() - q.getY()); vis.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.LAYOUT).translate(dx, dy); BufferedImage bi = (BufferedImage) vis.getImage(new Point2D.Double(layout.getSize().getWidth() / 2, layout.getSize().getHeight() / 2), new Dimension(layout.getSize())); return ImageUtils.trim(bi);
public void export(final DirectedGraph<ElementName, Dependency> g) throws IOException { final Dimension d = new Dimension(this.width, this.height); final Layout<ElementName, Dependency> layout = pickLayout(g, d); final VisualizationImageServer<ElementName, Dependency> viz = new VisualizationImageServer<ElementName, Dependency>( layout, d); final RenderContext<ElementName, Dependency> context = viz .getRenderContext(); context.setEdgeLabelTransformer(new EdgeLabeller()); context.setVertexLabelTransformer(new VertexLabeller()); final VertexRenderer vertexRenderer = new VertexRenderer( viz.getRenderContext()); viz.getRenderContext().setVertexShapeTransformer(vertexRenderer); viz.getRenderer().setVertexLabelRenderer(vertexRenderer); context.setVertexFillPaintTransformer(fillVertex()); context.setEdgeDrawPaintTransformer(fillEdge(g)); context.setEdgeLabelClosenessTransformer(closenessTransformer()); context.setEdgeStrokeTransformer(edgeWeight()); context.setEdgeArrowStrokeTransformer(edgeWeight()); context.setArrowFillPaintTransformer(fillEdge(g)); context.setArrowDrawPaintTransformer(fillEdge(g)); viz.setPreferredSize(new Dimension(this.width, this.height)); viz.setBackground(new Color(1, 1, 1, 0)); final SVGGraphics2D svgGenerator = new SVGGraphics2D(this.out, d); svgGenerator.writeHeader(); viz.paintAll(svgGenerator); svgGenerator.writeTrailer(); svgGenerator.dispose(); }
createEdges(v); vv = new VisualizationImageServer<String,Number>(new KKLayout<String,Number>(graph), new Dimension(600,600)); vv.getRenderer().setVertexRenderer( new GradientVertexRenderer<String,Number>( Color.white, Color.red, Color.white, Color.blue, vv.getPickedVertexState(), false)); vv.getRenderContext().setEdgeDrawPaintTransformer(Functions.<Paint>constant(Color.lightGray)); vv.getRenderContext().setArrowFillPaintTransformer(Functions.<Paint>constant(Color.lightGray)); vv.getRenderContext().setArrowDrawPaintTransformer(Functions.<Paint>constant(Color.lightGray)); vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller()); vv.getRenderer().getVertexLabelRenderer().setPositioner(new InsidePositioner()); vv.getRenderer().getVertexLabelRenderer().setPosition(Renderer.VertexLabel.Position.AUTO); Image im = vv.getImage(new Point2D.Double(300,300), new Dimension(600,600)); Icon icon = new ImageIcon(im); JLabel label = new JLabel(icon);
public void export(final DirectedGraph<ElementName, Dependency> g) throws IOException { final Dimension d = new Dimension(this.width, this.height); final Layout<ElementName, Dependency> layout = pickLayout(g, d); final VisualizationImageServer<ElementName, Dependency> viz = new VisualizationImageServer<ElementName, Dependency>( layout, d); final RenderContext<ElementName, Dependency> context = viz .getRenderContext(); context.setEdgeLabelTransformer(new EdgeLabeller()); context.setVertexLabelTransformer(new VertexLabeller()); final VertexRenderer vertexRenderer = new VertexRenderer( viz.getRenderContext()); viz.getRenderContext().setVertexShapeTransformer(vertexRenderer); viz.getRenderer().setVertexLabelRenderer(vertexRenderer); context.setVertexFillPaintTransformer(fillVertex()); context.setEdgeDrawPaintTransformer(fillEdge(g)); context.setEdgeLabelClosenessTransformer(closenessTransformer()); context.setEdgeStrokeTransformer(edgeWeight()); context.setEdgeArrowStrokeTransformer(edgeWeight()); context.setArrowFillPaintTransformer(fillEdge(g)); context.setArrowDrawPaintTransformer(fillEdge(g)); viz.setPreferredSize(new Dimension(this.width, this.height)); viz.setBackground(new Color(1, 1, 1, 0)); final SVGGraphics2D svgGenerator = new SVGGraphics2D(this.out, d); svgGenerator.writeHeader(); viz.paintAll(svgGenerator); svgGenerator.writeTrailer(); svgGenerator.dispose(); }
.collect(Collectors.toSet()); VisualizationImageServer<VertexRef, Edge> vv = new VisualizationImageServer<>(jungLayout, jungLayout.getSize()); vv.setPreferredSize(new Dimension(2000,2000)); // Viewing area size vv.getRenderContext().setVertexLabelTransformer(VertexRef::getLabel); vv.getRenderContext().setEdgeLabelTransformer(Edge::getLabel); vv.getRenderContext().setVertexFillPaintTransformer(vertexRef -> { if (roots.contains(vertexRef)) { return Color.RED; vv.getRenderContext().setVertexShapeTransformer(vertexRef -> { Collection<Edge> inEdges = jungGraph.getInEdges(vertexRef); Collection<Edge> outEdges = jungGraph.getOutEdges(vertexRef); BufferedImage image = (BufferedImage) vv.getImage( new Point2D.Double(vv.getGraphLayout().getSize().getWidth() / 2, vv.getGraphLayout().getSize().getHeight() / 2), new Dimension(vv.getGraphLayout().getSize()));
new VisualizationImageServer<AbstractType,String>( layout, layout.getSize()); vis.setBackground( Color.WHITE ); vis.getRenderContext().setEdgeLabelTransformer( new NoStringLabeller ()); vis.getRenderContext().setEdgeShapeTransformer( edgeShapeTransformer ); vis.getRenderContext().setVertexLabelTransformer( new ToStringLabeller<AbstractType> ()); vis.getRenderContext().setVertexShapeTransformer( new VertexShape()); vis.getRenderContext().setVertexFontTransformer( new VertexFont()); vis.getRenderContext().setVertexFillPaintTransformer( new VertexColor( selectedComponent, defaultBgColor, highlightBgcolor )); vis.getRenderContext().setVertexLabelRenderer( new MyVertexLabelRenderer( selectedComponent, defaultFgColor )); vis.getRenderer().getVertexLabelRenderer().setPosition( Position.CNTR ); BufferedImage image = (BufferedImage) vis.getImage( new Point2D.Double( layout.getSize().getWidth() / 2,
.collect(Collectors.toSet()); VisualizationImageServer<VertexRef, Edge> vv = new VisualizationImageServer<>(jungLayout, jungLayout.getSize()); vv.setPreferredSize(new Dimension(2000,2000)); // Viewing area size vv.getRenderContext().setVertexLabelTransformer(VertexRef::getLabel); vv.getRenderContext().setEdgeLabelTransformer(Edge::getLabel); vv.getRenderContext().setVertexFillPaintTransformer(vertexRef -> { if (roots.contains(vertexRef)) { return Color.RED; vv.getRenderContext().setVertexShapeTransformer(vertexRef -> { Collection<Edge> inEdges = jungGraph.getInEdges(vertexRef); Collection<Edge> outEdges = jungGraph.getOutEdges(vertexRef); BufferedImage image = (BufferedImage) vv.getImage( new Point2D.Double(vv.getGraphLayout().getSize().getWidth() / 2, vv.getGraphLayout().getSize().getHeight() / 2), new Dimension(vv.getGraphLayout().getSize()));
VisualizationImageServer<V, E> server = new VisualizationImageServer<V, E>( displacementLayout(layout, (int)(width * IMAGE_HORIZONTAL_MARGIN/2), (int)(height * IMAGE_VERTICAL_MARGIN/2)), new Dimension(width, height)); case LIGHT : server.setBackground(Color.WHITE); edgeColor = Color.BLACK; break; case DARK : server.setBackground(Color.BLACK); edgeColor = Color.LIGHT_GRAY; break; default : throw new RuntimeException("Unknown Color Theme : [" + colorTheme + "]"); server.getRenderContext().setVertexFillPaintTransformer(vertexPaint); server.getRenderContext().setEdgeDrawPaintTransformer(edgePaint); server.getRenderContext().setArrowDrawPaintTransformer(edgePaint); server.getRenderContext().setArrowFillPaintTransformer(edgePaint); server.getRenderContext().setVertexLabelTransformer(new ToStringLabeller<V>()); server.getRenderContext().setEdgeLabelTransformer(new ToStringLabeller<E>()); server.getRenderContext().setVertexDrawPaintTransformer(vertexBorderPaint); server.getRenderContext().setVertexLabelTransformer( new ChainedTransformer<V, String>( new Transformer[]{ VertexLabelAsShapeRenderer<V, E> vlasr = new VertexLabelAsShapeRenderer<V, E>(server.getRenderContext()); server.getRenderContext().setVertexShapeTransformer(vlasr); server.getRenderer().getVertexLabelRenderer().setPosition(Renderer.VertexLabel.Position.CNTR); return server.getImage(new Point(0, 0), new Dimension(width, height));
new VisualizationImageServer<AbstractType,String>( layout, layout.getSize()); vis.setBackground( Color.WHITE ); vis.getRenderContext().setEdgeLabelTransformer( new NoStringLabeller ()); vis.getRenderContext().setEdgeShapeTransformer( edgeShapeTransformer ); vis.getRenderContext().setVertexLabelTransformer( new ToStringLabeller<AbstractType> ()); vis.getRenderContext().setVertexShapeTransformer( new VertexShape()); vis.getRenderContext().setVertexFontTransformer( new VertexFont()); vis.getRenderContext().setVertexFillPaintTransformer( new VertexColor( selectedComponent, defaultBgColor, highlightBgcolor )); vis.getRenderContext().setVertexLabelRenderer( new MyVertexLabelRenderer( selectedComponent, defaultFgColor )); vis.getRenderer().getVertexLabelRenderer().setPosition( Position.CNTR ); BufferedImage image = (BufferedImage) vis.getImage( new Point2D.Double( layout.getSize().getWidth() / 2,