public FSMBuildVisualizer() { super("Model Visualizer"); graph = new DirectedSparseMultigraph<>(); graph.addVertex(current); // Layout<FSMTransition, String> layout = new CircleLayout<FSMTransition, String>(graph); layout = new KKLayout<>(graph); layout.setSize(new Dimension(800, 600)); // sets the initial size of the space vv = new VisualizationViewer<>(layout); vv.setPreferredSize(new Dimension(800, 600)); // Sets the viewing area size vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller()); vv.getRenderContext().setEdgeLabelTransformer(new ToStringLabeller()); vv.getRenderer().getVertexLabelRenderer().setPosition(Position.CNTR); VertexLabelAsShapeRenderer<String, StepCounter> vlasr = new VertexLabelAsShapeRenderer<>(vv.getRenderContext()); // vv.getRenderContext().setVertexShapeTransformer(vlasr); vv.getRenderContext().setVertexShapeTransformer(new EllipseVertexTransformer()); // vv.getRenderContext().setVertexLabelRenderer(new // TransitionVertextLabelRenderer(Color.GREEN)); DefaultModalGraphMouse gm = new DefaultModalGraphMouse(); vv.addKeyListener(gm.getModeKeyListener()); gm.setMode(ModalGraphMouse.Mode.TRANSFORMING); vv.setGraphMouse(gm); getContentPane().add(vv); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(1024, 768); pack(); setVisible(true); }
/** @param args the command line arguments */ public static void main(String[] args) { InteractiveGraphView1 sgv = new InteractiveGraphView1(); // Creates the graph... // Layout<V, E>, VisualizationViewer<V,E> Layout<Integer, String> layout = new CircleLayout(sgv.g); layout.setSize(new Dimension(300, 300)); VisualizationViewer<Integer, String> vv = new VisualizationViewer<Integer, String>(layout); vv.setPreferredSize(new Dimension(350, 350)); // Show vertex and edge labels vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller()); vv.getRenderContext().setEdgeLabelTransformer(new ToStringLabeller()); // Create a graph mouse and add it to the visualization component DefaultModalGraphMouse gm = new DefaultModalGraphMouse(); gm.setMode(ModalGraphMouse.Mode.TRANSFORMING); vv.setGraphMouse(gm); // Add the mouses mode key listener to work it needs to be added to the visualization component vv.addKeyListener(gm.getModeKeyListener()); JFrame frame = new JFrame("Interactive Graph View 2"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(vv); frame.pack(); frame.setVisible(true); }
public SetupGraphPane() { // create a simple graph for the demo graph = new SparseMultigraph<Number, Number>(); this.layout = new StaticLayout<Number, Number>(graph, new Dimension(600, 600)); vv = new VisualizationViewer<Number, Number>(layout); vv.setBackground(Color.white); vv.getRenderContext() .setVertexLabelTransformer( MapTransformer.<Number, String>getInstance( LazyMap.<Number, String>decorate( new HashMap<Number, String>(), new ToStringLabeller<Number>()))); vv.getRenderContext() .setEdgeLabelTransformer( MapTransformer.<Number, String>getInstance( LazyMap.<Number, String>decorate( new HashMap<Number, String>(), new ToStringLabeller<Number>()))); vv.setVertexToolTipTransformer(vv.getRenderContext().getVertexLabelTransformer()); final GraphZoomScrollPane panel = new GraphZoomScrollPane(vv); add(panel); Factory<Number> vertexFactory = new VertexFactory(); Factory<Number> edgeFactory = new EdgeFactory(); final EditingModalGraphMouse<Number, Number> graphMouse = new EditingModalGraphMouse<Number, Number>( vv.getRenderContext(), vertexFactory, edgeFactory); // the EditingGraphMouse will pass mouse event coordinates to the // vertexLocations function to set the locations of the vertices as // they are created // graphMouse.setVertexLocations(vertexLocations); vv.setGraphMouse(graphMouse); vv.addKeyListener(graphMouse.getModeKeyListener()); graphMouse.setMode(ModalGraphMouse.Mode.EDITING); final ScalingControl scaler = new CrossoverScalingControl(); JButton plus = new JButton("+"); plus.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { scaler.scale(vv, 1.1f, vv.getCenter()); } }); JButton minus = new JButton("-"); minus.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { scaler.scale(vv, 1 / 1.1f, vv.getCenter()); } }); // JButton help = new JButton("Help"); // help.addActionListener(new ActionListener() { // // public void actionPerformed(ActionEvent e) { // JOptionPane.showMessageDialog(vv, instructions); // }}); AnnotationControls<Number, Number> annotationControls = new AnnotationControls<Number, Number>(graphMouse.getAnnotatingPlugin()); JPanel controls = new JPanel(); controls.add(plus); controls.add(minus); JComboBox modeBox = graphMouse.getModeComboBox(); controls.add(modeBox); controls.add(annotationControls.getAnnotationsToolBar()); // controls.add(help); add(controls, BorderLayout.SOUTH); }
public GraphEditorDemo() { // create a simple graph for the demo graph = new SparseMultigraph<Sommet, Number>(); Transformer<Sommet, Paint> vertexPaint = new Transformer<Sommet, Paint>() { private final Color vert = Color.GREEN; private final Color bleu = Color.BLUE; private final Color rouge = Color.RED; public Paint transform(Sommet s) { if (s.isColoriee()) { return rouge; } else { if (s.proprietaire == 0) { return vert; } else { return bleu; } } } }; this.layout = new StaticLayout<Sommet, Number>(graph, new Dimension(600, 600)); vv = new VisualizationViewer<Sommet, Number>(layout); vv.setBackground(Color.white); vv.getRenderContext() .setVertexLabelTransformer( MapTransformer.<Sommet, String>getInstance( LazyMap.<Sommet, String>decorate( new HashMap<Sommet, String>(), new ToStringLabeller<Sommet>()))); vv.getRenderContext() .setEdgeLabelTransformer( MapTransformer.<Number, String>getInstance( LazyMap.<Number, String>decorate( new HashMap<Number, String>(), new ToStringLabeller<Number>()))); vv.setVertexToolTipTransformer(vv.getRenderContext().getVertexLabelTransformer()); vv.getRenderContext().setVertexFillPaintTransformer(vertexPaint); Container content = getContentPane(); final GraphZoomScrollPane panel = new GraphZoomScrollPane(vv); content.add(panel); Factory<Sommet> vertexFactory = new VertexFactory(); Factory<Number> edgeFactory = new EdgeFactory(); final EditingModalGraphMouse<Sommet, Number> graphMouse = new EditingModalGraphMouse<Sommet, Number>( vv.getRenderContext(), vertexFactory, edgeFactory); // the EditingGraphMouse will pass mouse event coordinates to the // vertexLocations function to set the locations of the vertices as // they are created // graphMouse.setVertexLocations(vertexLocations); vv.setGraphMouse(graphMouse); vv.addKeyListener(graphMouse.getModeKeyListener()); graphMouse.setMode(ModalGraphMouse.Mode.CREATION); final ScalingControl scaler = new CrossoverScalingControl(); JButton plus = new JButton("+"); plus.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { scaler.scale(vv, 1.1f, vv.getCenter()); } }); JButton minus = new JButton("-"); minus.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { scaler.scale(vv, 1 / 1.1f, vv.getCenter()); } }); JToggleButton jtb = new JToggleButton("Joueur 1"); jtb.addItemListener( new ItemListener() { public void itemStateChanged(ItemEvent ev) { if (ev.getStateChange() == ItemEvent.SELECTED) { joueurcourant = 1; } else if (ev.getStateChange() == ItemEvent.DESELECTED) { joueurcourant = 0; } } }); JToggleButton jtf = new JToggleButton("Final"); jtf.addItemListener( new ItemListener() { public void itemStateChanged(ItemEvent ev) { if (ev.getStateChange() == ItemEvent.SELECTED) { etatfinal = true; } else if (ev.getStateChange() == ItemEvent.DESELECTED) { etatfinal = false; } } }); JButton att = new JButton("Attracteur Accessibilité"); minus.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { ArrayList<Sommet> vertices = (ArrayList<Sommet>) graph.getVertices(); ArrayList<Sommet> finaux = new ArrayList<Sommet>(); for (Sommet s : vertices) { if (s.isFinal) finaux.add(s); } colorierAttracteur(finaux, graph.getVertexCount()); } }); AnnotationControls<Sommet, Number> annotationControls = new AnnotationControls<Sommet, Number>(graphMouse.getAnnotatingPlugin()); JPanel controls = new JPanel(); controls.add(plus); controls.add(minus); JComboBox modeBox = graphMouse.getModeComboBox(); controls.add(modeBox); controls.add(jtb); controls.add(jtf); controls.add(att); // controls.add(annotationControls.getAnnotationsToolBar()); content.add(controls, BorderLayout.SOUTH); }