public void deactivate() { if(lensTransformer != null) { vv.removePreRenderPaintable(lens); vv.removePostRenderPaintable(lensControls); vv.getRenderContext().getMultiLayerTransformer().setTransformer(Layer.LAYOUT, lensTransformer.getDelegate()); } vv.getRenderContext().setPickSupport(pickSupport); vv.setToolTipText(defaultToolTipText); vv.setGraphMouse(graphMouse); vv.repaint(); } }
@Override public <N, E> void visualize(Graph<N, E> graph, List<VisualizationHelper<N, ? super E>> helpers, boolean modal, Map<String, String> options) { DirectedGraph<NodeVisualization, EdgeVisualization> visGraph = createVisualizationGraph(graph, helpers); Layout<NodeVisualization, EdgeVisualization> layout = new KKLayout<>(visGraph); VisualizationViewer<NodeVisualization, EdgeVisualization> vv = new VisualizationViewer<>(layout); setupRenderContext(vv.getRenderContext()); setupRenderer(vv.getRenderer()); vv.setGraphMouse(mouse); final JDialog frame = new JDialog((Dialog) null, "Visualization", modal); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.getContentPane().add(vv); frame.pack(); frame.setVisible(true); }
public DrawnIconVertexDemo(final Deployment dm) { this.dmodel = dm; // create a simple graph for the demo graph = new DirectedSparseGraph<Vertex, Edge>(); vv = new VisualizationViewer<Vertex, Edge>(new SpringLayout2<Vertex, Edge>(graph)); vv.getRenderContext().setVertexLabelRenderer(new DefaultVertexLabelRenderer(Color.cyan)); vv.getRenderContext().setEdgeLabelRenderer(new DefaultEdgeLabelRenderer(Color.cyan)); vv.getRenderContext().setVertexIconTransformer(vertexColor); vv.getRenderContext().setVertexFillPaintTransformer(new PickableVertexPaintTransformer<Vertex>(vv.getPickedVertexState(), Color.white, Color.yellow)); vv.getRenderContext().setEdgeDrawPaintTransformer(edgeColor); vv.setBackground(Color.white); // add my listener for ToolTips vv.setVertexToolTipTransformer(new ToStringLabeller<Vertex>()); }
/** * Propagate resize events to layouter. * * @param arg0 * ComponentEvent */ @Override public void componentResized(ComponentEvent arg0) { if (relayoutOnResize) visviewer.getGraphLayout().setSize(visviewer.getSize()); }
public void activate() { lens = new Lens(perspectiveTransformer, vv.getSize()); vv.getRenderContext().setPickSupport(new LayoutLensShapePickSupport<V,E>(vv)); vv.getRenderContext().getMultiLayerTransformer().setTransformer(Layer.LAYOUT, perspectiveTransformer); vv.addPreRenderPaintable(lens); vv.setToolTipText(instructions); vv.repaint(); }
vv = new VisualizationViewer<N, EdgeWrapper<E>>(visualizationModel); vv.setForeground(new Color(0, 0, 0, 150)); vv.setBackground(Color.WHITE); vv.setGraphMouse(graphMouse); graphMouse.setMode(Mode.PICKING); RenderContext<N, EdgeWrapper<E>> rc = vv.getRenderContext(); emptyNodeLabelTransformer = rc.getVertexLabelTransformer(); emptyEdgeLabelTransformer = rc.getEdgeLabelTransformer(); rc.setVertexIconTransformer(new VertexIconTransformer<N>(vv.getPickedVertexState())); rc.setVertexFillPaintTransformer(new ColorTransformer<N>(vv.getPickedVertexState())); rc.setVertexLabelRenderer(new DefaultVertexLabelRenderer(UIDefaults.SELECTEDCOLOR)); rc.setEdgeDrawPaintTransformer(new ColorTransformer<EdgeWrapper<E>>(vv.getPickedEdgeState())); rc.setEdgeLabelRenderer(new DefaultEdgeLabelRenderer(UIDefaults.SELECTEDCOLOR)); rc.setArrowFillPaintTransformer(new ColorTransformer<EdgeWrapper<E>>(vv.getPickedEdgeState())); rc.setArrowDrawPaintTransformer(new ColorTransformer<EdgeWrapper<E>>(vv.getPickedEdgeState())); vv.getRenderer().getVertexLabelRenderer().setPositioner(new InsidePositioner()); vv.getRenderer().getVertexLabelRenderer().setPosition(Renderer.VertexLabel.Position.AUTO); vv.setVertexToolTipTransformer(new ToStringLabeller<N>()); vv.addMouseListener(this); addComponentListener(this); vv.addGraphMouseListener(this);
public void activate() { if (lensPaintable == null) { lensPaintable = new LensPaintable(lensTransformer); } if (lensControls == null) { lensControls = new LensControls(lensTransformer); } vv.getRenderContext().getMultiLayerTransformer().setTransformer(Layer.LAYOUT, lensTransformer); vv.prependPreRenderPaintable(lensPaintable); vv.addPostRenderPaintable(lensControls); vv.setGraphMouse(lensGraphMouse); vv.setToolTipText(instructions); vv.setTransformSupport(new LensTransformSupport<>()); vv.repaint(); }
vv = new VisualizationViewer<>(graph, treeLayoutAlgorithm, new Dimension(600, 600)); vv.setBackground(Color.white); vv.getRenderContext().setEdgeShapeFunction(EdgeShape.line()); vv.getRenderContext().setNodeLabelFunction(Object::toString); vv.setNodeToolTipFunction(Object::toString); vv.getRenderContext().setArrowFillPaintFunction(a -> Color.lightGray); vv.setGraphMouse(graphMouse); plus.addActionListener(e -> scaler.scale(vv, 1.1f, vv.getCenter())); minus.addActionListener(e -> scaler.scale(vv, 1 / 1.1f, vv.getCenter())); if (e.getStateChange() == ItemEvent.SELECTED) { LayoutAlgorithmTransition.animate(vv, radialLayoutAlgorithm); vv.getRenderContext().getMultiLayerTransformer().setToIdentity(); if (rings == null) { rings = new Rings(vv.getModel().getLayoutModel()); vv.addPreRenderPaintable(rings); } else { LayoutAlgorithmTransition.animate(vv, treeLayoutAlgorithm); vv.getRenderContext().getMultiLayerTransformer().setToIdentity(); setLtoR(vv); vv.removePreRenderPaintable(rings); vv.repaint(); });
final VisualizationModel<String, Number> visualizationModel = new BaseVisualizationModel<>(graph, layoutAlgorithm, preferredSize); vv = new VisualizationViewer<>(visualizationModel, preferredSize); new NodeLabelAsShapeRenderer<>(visualizationModel, vv.getRenderContext()); vv.getRenderContext() .setNodeLabelFunction( ((Function<String, String>) Object::toString) .andThen(input -> "<html><center>Node<p>" + input)); vv.getRenderContext().setNodeShapeFunction(vlasr); vv.getRenderContext().setNodeLabelRenderer(new DefaultNodeLabelRenderer(Color.red)); vv.getRenderContext().setEdgeDrawPaintFunction(e -> Color.yellow); vv.getRenderContext().setEdgeStrokeFunction(e -> new BasicStroke(2.5f)); vv.getRenderer().setNodeRenderer(new GradientNodeRenderer<>(vv, Color.gray, Color.white, true)); vv.getRenderer().setNodeLabelRenderer(vlasr); vv.setBackground(Color.black); vv.setNodeToolTipFunction(n -> n); vv.setGraphMouse(graphMouse); vv.addKeyListener(graphMouse.getModeKeyListener()); plus.addActionListener(e -> scaler.scale(vv, 1.1f, vv.getCenter())); minus.addActionListener(e -> scaler.scale(vv, 1 / 1.1f, vv.getCenter()));
new VisualizationViewer<>(mGraph, layoutAlgorithm, new Dimension(1000, 1000)); vv.setBackground(Color.WHITE); vv.getRenderContext().setNodeDrawPaintFunction(new MyNodeDrawPaintFunction<>()); vv.getRenderContext().setNodeFillPaintFunction(new MyNodeFillPaintFunction<>()); vv.getRenderContext().setEdgeDrawPaintFunction(new MyEdgePaintFunction()); vv.getRenderContext().setEdgeStrokeFunction(new MyEdgeStrokeFunction()); vv.getRenderContext().setNodeLabelFunction(Object::toString); vv.setGraphMouse(new DefaultModalGraphMouse<String, Number>()); LayoutModel<String> layoutModel = vv.getModel().getLayoutModel(); vv.addPostRenderPaintable( new VisualizationViewer.Paintable() {
vv = new VisualizationViewer<>(graph, new FRLayoutAlgorithm<>(), new Dimension(700, 700)); vv.getRenderContext().setNodeLabelFunction(new UnicodeNodeStringer()); vv.getRenderContext().setNodeLabelRenderer(new DefaultNodeLabelRenderer(Color.cyan)); vv.getRenderContext().setEdgeLabelRenderer(new DefaultEdgeLabelRenderer(Color.cyan)); NodeIconShapeFunction<Integer> nodeIconShapeFunction = new NodeIconShapeFunction<>(new EllipseNodeShapeFunction<>()); Function<Integer, Icon> nodeIconFunction = iconMap::get; vv.getRenderContext().setNodeShapeFunction(nodeIconShapeFunction); vv.getRenderContext().setNodeIconFunction(nodeIconFunction); loadImages(iconMap); nodeIconShapeFunction.setIconMap(iconMap); vv.getRenderContext() .setNodeFillPaintFunction( new PickableNodePaintFunction<>(vv.getPickedNodeState(), Color.white, Color.yellow)); vv.getRenderContext() .setEdgeDrawPaintFunction( new PickableEdgePaintFunction<>(vv.getPickedEdgeState(), Color.black, Color.lightGray)); vv.setBackground(Color.white); vv.setNodeToolTipFunction(Object::toString); vv.setGraphMouse(gm); e -> { showLabels = e.getStateChange() == ItemEvent.SELECTED; vv.repaint(); }); lo.setSelected(true);
vv = new VisualizationViewer<>(graph, layoutAlgorithm, new Dimension(400, 400)); vv.getRenderContext() .setEdgeDrawPaintFunction( new PickableEdgePaintFunction<>(vv.getPickedEdgeState(), Color.black, Color.cyan)); vv.setBackground(Color.white); vv.getRenderContext().setNodeLabelRenderer(new DefaultNodeLabelRenderer(Color.cyan)); vv.getRenderContext().setEdgeLabelRenderer(new DefaultEdgeLabelRenderer(Color.cyan)); vv.getRenderContext() .setEdgeLabelFunction( new Function<Number, String>() { vv.setNodeToolTipFunction(Object::toString); vv.setEdgeToolTipFunction(Object::toString); final GraphZoomScrollPane panel = new GraphZoomScrollPane(vv); add(panel); vv.setGraphMouse(graphMouse); vv.addKeyListener(graphMouse.getModeKeyListener()); final ScalingControl scaler = new CrossoverScalingControl(); plus.addActionListener(e -> scaler.scale(vv, 1.1f, vv.getCenter())); JButton minus = new JButton("-"); minus.addActionListener(e -> scaler.scale(vv, 1 / 1.1f, vv.getCenter()));
public void activate() { lensTransformer.setDelegate(vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.VIEW)); if(lens == null) { lens = new Lens(lensTransformer); } if(lensControls == null) { lensControls = new LensControls(lensTransformer); } renderContext.setPickSupport(new ViewLensShapePickSupport<V,E>(vv)); lensTransformer.setDelegate(vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.VIEW)); vv.getRenderContext().getMultiLayerTransformer().setTransformer(Layer.VIEW, lensTransformer); this.renderContext.setGraphicsContext(lensGraphicsDecorator); vv.getRenderer().setEdgeRenderer(reshapingEdgeRenderer); vv.addPreRenderPaintable(lens); vv.addPostRenderPaintable(lensControls); vv.setGraphMouse(lensGraphMouse); vv.setToolTipText(instructions); vv.repaint(); }
public SimpleGraphSpatialTest() { setLayout(new BorderLayout()); Network g = TestGraphs.getOneComponentGraph(); Dimension viewPreferredSize = new Dimension(600, 600); Dimension layoutPreferredSize = new Dimension(600, 600); LayoutAlgorithm layoutAlgorithm = new FRLayoutAlgorithm(); ScalingControl scaler = new CrossoverScalingControl(); VisualizationModel model = new BaseVisualizationModel( g, layoutAlgorithm, new RandomLocationTransformer(600, 600, System.currentTimeMillis()), layoutPreferredSize); VisualizationViewer vv = new VisualizationViewer(model, viewPreferredSize); final DefaultModalGraphMouse graphMouse = new DefaultModalGraphMouse(); vv.setGraphMouse(graphMouse); vv.getRenderContext().setNodeLabelFunction(Object::toString); vv.getRenderer().getNodeLabelRenderer().setPosition(Renderer.NodeLabel.Position.CNTR); vv.addKeyListener(graphMouse.getModeKeyListener()); vv.setToolTipText("<html><center>Type 'p' for Pick mode<p>Type 't' for Transform mode"); vv.setForeground(Color.white); vv.scaleToLayout(scaler); this.add(vv); }
vv = new VisualizationViewer<Number,Number>(layout, new Dimension(600,600)); getContentPane().setFont(new Font("Serif", Font.PLAIN, 12)); vv.getModel().getRelaxer().setSleepTime(500); vv.setGraphMouse(new DefaultModalGraphMouse<Number,Number>()); vv.getRenderer().getVertexLabelRenderer().setPosition(Renderer.VertexLabel.Position.CNTR); vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller()); vv.setForeground(Color.white); getContentPane().add(vv); switchLayout = new JButton("Switch to SpringLayout");
graph, layout); vv = new VisualizationViewer<String, UnorderedPair<String>>( staticLayout, new Dimension(animationWidth, animationHeight)); vv.getRenderContext().setVertexLabelTransformer( new VertexLabelTransformer()); vv.getRenderer().getVertexLabelRenderer() .setPosition(Renderer.VertexLabel.Position.CNTR); vv.setForeground(Color.black); vv.getRenderContext().setVertexFillPaintTransformer(vertexPainter); vv.addMouseListener(mouseListener); vv.setVertexToolTipTransformer(vertexToolTipTransformer);
vv.setBackground(Color.white); vv.getRenderContext().setVertexLabelTransformer(s -> s); vv.getRenderContext().setVertexFillPaintTransformer(vertex -> vertex.equals("Created") ? Color.decode("#B5D9E6") : Color.decode("#FFF1BC")); vv.getRenderContext().setVertexDrawPaintTransformer(vertex -> Color.black); vv.getRenderContext().setVertexShapeTransformer(createVertexShapeTransformer(layout)); vv.getRenderer().getVertexLabelRenderer().setPosition(Renderer.VertexLabel.Position.CNTR); vv.getRenderContext().setEdgeLabelTransformer(edge -> " " + edge.name + " "); vv.getRenderContext().setEdgeShapeTransformer(new EdgeShape.QuadCurve<String, Edge>()); vv.getRenderer().setEdgeLabelRenderer(new MyEdgeLabelRenderer<>(-10, Color.white)); vv.setGraphMouse(graphMouse); graphMouse.setMode(ModalGraphMouse.Mode.PICKING); return vv;
public void actionPerformed(ActionEvent e) { Collection picked = new HashSet(vv.getPickedVertexState().getPicked()); for(Object v : picked) { if(v instanceof Graph) { Graph g = collapser.expand(layout.getGraph(), (Graph)v); vv.getRenderContext().getParallelEdgeIndexFunction().reset(); layout.setGraph(g); } vv.getPickedVertexState().clear(); vv.repaint(); } }});
public void actionPerformed(ActionEvent e) { Collection<String> picked = vv.getPickedVertexState().getPicked(); for(Object v : picked) { if(v instanceof Forest) { Forest<String, Integer> inGraph = (Forest<String, Integer>)layout.getGraph(); collapser.expand(inGraph, (Forest<?, ?>)v); } vv.getPickedVertexState().clear(); vv.repaint(); } }});
public void itemStateChanged(ItemEvent e) { if(e.getStateChange() == ItemEvent.SELECTED) { vv.getRenderContext().setEdgeShapeTransformer(EdgeShape.line(graph)); vv.repaint(); } } });