List of usage examples for org.apache.commons.collections15 Transformer Transformer
Transformer
From source file:amicity.graph.pc.gui.JungGraphViewer.java
public JungGraphViewer(JungGraph aGraph) { this.graph = aGraph; this.setLayout(new BorderLayout()); layout = new StaticLayout<Node, Edge>(graph); vv = new VisualizationViewer<Node, Edge>(layout); vv.setBackground(Color.white); vv.getRenderContext().setVertexLabelTransformer(new NodeTransformer()); vv.getRenderContext().setEdgeLabelTransformer(new EdgeTransformer()); vv.getRenderContext().setVertexStrokeTransformer(new NodeStrokeTransformer(vv)); vv.getRenderContext().setEdgeLabelRenderer(new DefaultEdgeLabelRenderer(Color.YELLOW)); vv.getRenderer().getVertexLabelRenderer().setPosition(Position.CNTR); Transformer<Node, Shape> vertexSize = new Transformer<Node, Shape>() { public Shape transform(Node i) { int length = i.getLabel().length() * 10; length = length > 30 ? length : 30; return new Rectangle(-20, -10, length, 30); }/*www. j av a2 s . c o m*/ }; vv.getRenderContext().setVertexShapeTransformer(vertexSize); final GraphZoomScrollPane panel = new GraphZoomScrollPane(vv); panel.setPreferredSize(new Dimension(400, 400)); add(panel, BorderLayout.CENTER); }
From source file:cz.cuni.mff.ksi.jinfer.crudemdl.processing.automatonmergingstate.regexping.stateremoval.ordering.userinteractive.OrdererUserInteractive.java
@Override public State<Regexp<T>> getStateToRemove(RegexpAutomatonStateRemoval<T> automaton, final SymbolToString<Regexp<T>> symbolToString) throws InterruptedException { //final AutoEditor<Regexp<T>> gui= new AutoEditor<Regexp<T>>(symbolToString); List<State<Regexp<T>>> removeLst; do {//from w ww . j a v a2 s. co m final StatesPickingVisualizer<Regexp<T>> visualizer = new StatesPickingVisualizer<Regexp<T>>( LayoutFactory.createVyhnanovskaGridLayout(automaton), new Transformer<Step<Regexp<T>>, String>() { @Override public String transform(Step<Regexp<T>> step) { return symbolToString.toString(step.getAcceptSymbol()); } }); final StatesPickingComponent<Regexp<T>> component = new StatesPickingComponent<Regexp<T>>(); component.setVisualizer(visualizer); AutoEditor.drawComponentAndWaitForGUI(component); removeLst = component.getPickedStates(); if (removeLst == null) { continue; } if (removeLst.size() == 1) { State<Regexp<T>> sel = removeLst.get(0); if ((sel.equals(automaton.getSuperFinalState())) || (sel.equals(automaton.getSuperInitialState()))) { continue; } LOG.debug("AUTO EDITOR selected: " + removeLst.toString()); return removeLst.get(0); } } while (true); }
From source file:net.itransformers.utils.MyGraphMLWriter.java
/** * /*from w w w .ja v a 2s . c om*/ */ @SuppressWarnings("unchecked") public MyGraphMLWriter() { vertex_ids = new Transformer<V, String>() { public String transform(V v) { return v.toString(); } }; edge_ids = TransformerUtils.nullTransformer(); graph_data = Collections.emptyMap(); vertex_data = Collections.emptyMap(); edge_data = Collections.emptyMap(); vertex_desc = TransformerUtils.nullTransformer(); edge_desc = TransformerUtils.nullTransformer(); graph_desc = TransformerUtils.nullTransformer(); nest_level = 0; }
From source file:cz.cuni.mff.ksi.jinfer.twostep.processing.automatonmergingstate.simplifying.userinteractive.UserInteractive.java
@Override public Automaton<T> simplify(Automaton<T> inputAutomaton, final SymbolToString<T> symbolToString, final String elementName) throws InterruptedException { if (!askUser) { return inputAutomaton; }/*from w w w. ja v a2s.c o m*/ List<State<T>> mergeLst; final Transformer<Step<T>, String> t = new Transformer<Step<T>, String>() { @Override public String transform(Step<T> step) { StringBuilder sb = new StringBuilder(); sb.append("{"); sb.append(symbolToString.toString(step.getAcceptSymbol())); sb.append("|"); sb.append(String.valueOf(step.getUseCount())); sb.append("}"); return sb.toString(); } }; Boolean selectTwo = false; do { final StatesPickingVisualizer<T> visualizer = new StatesPickingVisualizer<T>( LayoutHelperFactory.createUserLayout(inputAutomaton, t), t); // custom plugins /*final PluggableVisualizer<T> visualizer = new PluggableVisualizer<T>(new GridLayout<T>(inputAutomaton)); visualizer.setEdgeLabelTransformer(new Transformer<Step<T>, String>() { @Override public String transform(Step<T> step) { return symbolToString.toString(step.getAcceptSymbol()); } }); for (final GraphMousePlugin mousePlugin : AutoEditor.getDefaultGraphMousePlugins()) { visualizer.addGraphMousePlugin(mousePlugin); } visualizer.addGraphMousePlugin(new VerticesPickingGraphMousePlugin()); */ final StatesPickingComponent<T> panel = new StatesPickingComponent<T>(); panel.setVisualizer(visualizer); if (selectTwo) { panel.setLabel("Automaton for element <" + elementName + ">. Please select states to be merged and click continue. Select at least 2 states."); } else { panel.setLabel("Automaton for element <" + elementName + ">. Please select states to be merged and click continue."); } AutoEditor.drawComponentAndWaitForGUI(panel); mergeLst = panel.getPickedStates(); if ((!BaseUtils.isEmpty(mergeLst)) && (mergeLst.size() >= 2)) { LOG.debug("AUTO EDITOR selected: " + mergeLst.toString()); inputAutomaton.mergeStates(mergeLst); LOG.debug("After merge:"); LOG.debug(inputAutomaton); selectTwo = false; } else if (mergeLst.size() < 2) { selectTwo = true; } if (!panel.shallAskUser()) { askUser = false; break; } } while (!BaseUtils.isEmpty(mergeLst)); return inputAutomaton; }
From source file:fr.lig.sigma.astral.gui.graph.JUNGEnginePanel.java
public JUNGEnginePanel(JUNGEngineGraph graph) { // Graph<V, E> where V is the type of the vertices and E is the type of the edges labelTransformer = new Transformer<QueryNode, String>() { public String transform(QueryNode vertex) { if (vertex.getName().equals("virtual")) { return ""; }/*from w w w . ja v a 2 s .c o m*/ if (vertex.getName().equals("source")) { return getDisplayLabel("<b> " + vertex.getParameters().get("id") + " </b>"); } if (vertex.getName().equals("handler")) { return getDisplayLabel("<b> " + vertex.getParameters().get("type") + " </b>"); } if (vertex.getName().equals("unary")) { String r = "<table><tr><td> </td><td><b><center>"; List<Map<String, Object>> operations = (List<Map<String, Object>>) vertex.getParameters() .get("operations"); for (Map<String, Object> op : operations) { r += "" + op.get("otype") + "<br/>"; } r += "</center></b></td><td> </td></tr></table>"; //r = r.substring(0, r.length()-5); return getDisplayLabel(r); } String label = ""; label += "<table><tr><td> </td><td><b><center>"; label += vertex.getName().replaceAll("\n", "<br/>"); label += "</center></b></td><td> </td></tr></table>"; /*if (debugVertices) { label += "<hr/>"; label += out instanceof Stream ? "Stream" : "Relation"; label += "<br/>"; label += AttributeSet.string(out.getAttributes()); } */ return getDisplayLabel(label); } }; g = graph; g.setPanel(this); layout = new JUNGEngineLayout(g.getGraph(), labelTransformer); vv = new VisualizationViewer<QueryNode, String>(layout); vv.setPreferredSize(layout.getSize()); vv.getRenderContext().setVertexLabelTransformer(labelTransformer); vv.getRenderContext().setEdgeShapeTransformer(new EdgeShape.Line<QueryNode, String>()); VertexLabelAsShapeRenderer<QueryNode, String> vlasr = new VertexLabelAsShapeRenderer<QueryNode, String>( vv.getRenderContext()); vv.getRenderContext().setVertexShapeTransformer(vlasr); vv.getRenderer().setVertexRenderer(new BasicVertexRenderer<QueryNode, String>()); vv.getRenderer().setVertexLabelRenderer(vlasr); vv.getRenderContext().setVertexLabelRenderer(new DefaultVertexLabelRenderer(Color.black)); /*ConstantTransformer whiteColor = new ConstantTransformer(Color.WHITE); vv.getRenderContext().setEdgeDrawPaintTransformer(whiteColor); vv.getRenderContext().setArrowDrawPaintTransformer(whiteColor); */ ps = new MultiPickedState<QueryNode>(); vv.setPickedVertexState(ps); vv.getRenderContext().setVertexFillPaintTransformer(new PickableVertexPaintTransformer<QueryNode>( vv.getPickedVertexState(), Color.LIGHT_GRAY, new Color(255, 102, 0))); vv.setBackground(Color.WHITE); scaler = new CrossoverScalingControl(); this.addComponentListener(this); setLayout(new BorderLayout()); final GraphZoomScrollPane panel = new GraphZoomScrollPane(vv); final DefaultModalGraphMouse graphMouse = new DefaultModalGraphMouse(); vv.setGraphMouse(graphMouse); add(panel, BorderLayout.CENTER); /*new Thread(new Runnable() { public void run() { try { Thread.sleep(30000); } catch (InterruptedException e) { } Dimension size = layout.getSize(); BufferedImage bi = new BufferedImage((int)size.getWidth(),(int)size.getHeight(), BufferedImage.TYPE_INT_ARGB); Graphics g = bi.createGraphics(); vv.setSize(size); vv.paint(g); //this == JComponent g.dispose(); try{ ImageIO.write(bi, "png", new File("test.png"));}catch (Exception e) {} } }).start(); */ }
From source file:com.griddynamics.jagger.diagnostics.visualization.GraphVisualizationHelper.java
public static <V, E> Image renderGraph(Graph<V, E> graph, int width, int height, GraphLayout graphLayout, final ColorTheme colorTheme, final Map<V, Paint> customNodeColors) { Layout<V, E> layout;/*w w w . j a v a 2s.c o m*/ switch (graphLayout) { case CIRCLE: layout = new CircleLayout<V, E>(graph); break; case ISOM: layout = new ISOMLayout<V, E>(graph); break; case FR: layout = new FRLayout<V, E>(graph); break; case KK: layout = new KKLayout<V, E>(graph); break; default: throw new RuntimeException("Unknown Graph Layout : [" + graphLayout + "]"); } layout.setSize(new Dimension((int) (width * (1 - IMAGE_HORIZONTAL_MARGIN)), (int) (height * (1 - IMAGE_VERTICAL_MARGIN)))); 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)); final Color edgeColor; switch (colorTheme) { 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 + "]"); } Transformer<V, Paint> vertexPaint = new Transformer<V, Paint>() { public Paint transform(V v) { Paint paint = customNodeColors.get(v); if (paint == null) { paint = Color.LIGHT_GRAY; } return paint; } }; Transformer<V, Paint> vertexBorderPaint = new Transformer<V, Paint>() { public Paint transform(V v) { return Color.DARK_GRAY; } }; Transformer<E, Paint> edgePaint = new Transformer<E, Paint>() { public Paint transform(E e) { return edgeColor; } }; 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[] { new ToStringLabeller<V>(), new Transformer<String, String>() { public String transform(String input) { return "<html><center><p>" + formatLabel(input, MAX_LABEL_LENGTH); } } })); 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)); }
From source file:net.panthema.BispanningGame.MyGraphMLReader.java
MyGraphMLReader(javax.swing.JPanel panel) throws FileNotFoundException, GraphIOException { posMap = new TreeMap<Integer, Point2D>(); // Query user for filename JFileChooser chooser = new JFileChooser(); chooser.setDialogTitle("Specify GraphML file to read"); chooser.setCurrentDirectory(new File(".")); FileNameExtensionFilter filter = new FileNameExtensionFilter("GraphML File", "graphml"); chooser.setFileFilter(filter);//from w w w . j ava 2 s . c o m if (chooser.showOpenDialog(panel) != JFileChooser.APPROVE_OPTION) return; File infile = chooser.getSelectedFile(); BufferedReader fileReader = new BufferedReader(new FileReader(infile)); newGraph = new MyGraph(); // create the graph transformer Transformer<GraphMetadata, MyGraph> graphTransformer = new Transformer<GraphMetadata, MyGraph>() { public MyGraph transform(GraphMetadata metadata) { assert (metadata.getEdgeDefault().equals(EdgeDefault.UNDIRECTED)); return newGraph; } }; // create the vertex transformer Transformer<NodeMetadata, Integer> vertexTransformer = new Transformer<NodeMetadata, Integer>() { public Integer transform(NodeMetadata metadata) { // create a new vertex Integer v = newGraph.getVertexCount(); // save layout information if (metadata.getProperty("x") != null && metadata.getProperty("y") != null) { double x = Double.parseDouble(metadata.getProperty("x")); double y = Double.parseDouble(metadata.getProperty("y")); posMap.put(v, new Point2D.Double(x, y)); } newGraph.addVertex(v); return v; } }; // create the edge transformer Transformer<EdgeMetadata, MyEdge> edgeTransformer = new Transformer<EdgeMetadata, MyEdge>() { public MyEdge transform(EdgeMetadata metadata) { MyEdge e = new MyEdge(newGraph.getEdgeCount()); if (metadata.getProperty("color") != null) e.color = Integer.parseInt(metadata.getProperty("color")); return e; } }; // create the useless hyperedge transformer Transformer<HyperEdgeMetadata, MyEdge> hyperEdgeTransformer = new Transformer<HyperEdgeMetadata, MyEdge>() { public MyEdge transform(HyperEdgeMetadata metadata) { return null; } }; // create the graphMLReader2 GraphMLReader2<MyGraph, Integer, MyEdge> graphReader = new GraphMLReader2<MyGraph, Integer, MyEdge>( fileReader, graphTransformer, vertexTransformer, edgeTransformer, hyperEdgeTransformer); // Get the new graph object from the GraphML file graphReader.readGraph(); }
From source file:cz.cuni.mff.ksi.jinfer.crudemdl.processing.automatonmergingstate.simplifying.userinteractive.AutomatonSimplifierUserInteractive.java
@Override public Automaton<T> simplify(final Automaton<T> inputAutomaton, final SymbolToString<T> symbolToString) throws InterruptedException { List<State<T>> mergeLst; do {/*w w w . j av a 2s .c o m*/ // graphviz /*final StatesPickingVisualizer<T> visualizer = new StatesPickingVisualizer<T>(new GraphvizLayout<T>(inputAutomaton, new Transformer<Step<T>, String>() { @Override public String transform(Step<T> step) { return symbolToString.toString(step.getAcceptSymbol()); } }));*/ // vyhnanovska final StatesPickingVisualizer<T> visualizer = new StatesPickingVisualizer<T>( LayoutFactory.createVyhnanovskaGridLayout(inputAutomaton), new Transformer<Step<T>, String>() { @Override public String transform(Step<T> step) { return symbolToString.toString(step.getAcceptSymbol()); } }); // custom plugins /*final PluggableVisualizer<T> visualizer = new PluggableVisualizer<T>(new GridLayout<T>(inputAutomaton)); visualizer.setEdgeLabelTransformer(new Transformer<Step<T>, String>() { @Override public String transform(Step<T> step) { return symbolToString.toString(step.getAcceptSymbol()); } }); for (final GraphMousePlugin mousePlugin : AutoEditor.getDefaultGraphMousePlugins()) { visualizer.addGraphMousePlugin(mousePlugin); } visualizer.addGraphMousePlugin(new VerticesPickingGraphMousePlugin()); */ final StatesPickingComponent<T> panel = new StatesPickingComponent<T>(); panel.setVisualizer(visualizer); AutoEditor.drawComponentAndWaitForGUI(panel); mergeLst = panel.getPickedStates(); if ((!BaseUtils.isEmpty(mergeLst)) && (mergeLst.size() >= 2)) { LOG.debug("AUTO EDITOR selected: " + mergeLst.toString()); inputAutomaton.mergeStates(mergeLst); LOG.debug("After merge:"); LOG.debug(inputAutomaton); } if (panel.shallAskUser() == false) { break; } } while (!BaseUtils.isEmpty(mergeLst)); return inputAutomaton; }
From source file:net.itransformers.topologyviewer.menu.handlers.graphTools.shortherstPathMenuHandlers.DijkstraWeightedShortestPathMenuHandler.java
@Override public void actionPerformed(ActionEvent e) { final GraphViewerPanel viewerPanel = (GraphViewerPanel) frame.getTabbedPane().getSelectedComponent(); final MyVisualizationViewer vv = (MyVisualizationViewer) viewerPanel.getVisualizationViewer(); Collection<String> vertices = viewerPanel.getCurrentGraph().getVertices(); String[] test = vertices.toArray(new String[0]); Arrays.sort(test);/*from ww w .ja v a2 s . c om*/ final String mFrom = (String) JOptionPane.showInputDialog(frame, "Choose A Node", "A Node", JOptionPane.PLAIN_MESSAGE, null, test, test[0]); final String mTo = (String) JOptionPane.showInputDialog(frame, "Choose B Node", "B Node", JOptionPane.PLAIN_MESSAGE, null, test, test[0]); String weightedKey = JOptionPane.showInputDialog(frame, "Enter Weighted Key", "Weighted Key", JOptionPane.QUESTION_MESSAGE); Transformer<String, Double> wtTransformer = new Transformer<String, Double>() { public Double transform(String edgeId) { return null; } }; final Graph<String, String> mGraph = viewerPanel.getCurrentGraph(); DijkstraShortestPath<String, String> alg = new DijkstraShortestPath(mGraph, wtTransformer); final List<String> mPred = alg.getPath(mFrom, mTo); // System.out.println("The shortest unweighted path from" + mFrom +" to " + mTo + " is:"); // System.out.println(mPred.toString()); if (mPred == null) { JOptionPane.showMessageDialog(frame, String.format("Shortest path between %s,%s is not found", mFrom, mTo), "Message", JOptionPane.INFORMATION_MESSAGE); return; } final Layout<String, String> layout = vv.getGraphLayout(); for (final String edge : layout.getGraph().getEdges()) { if (mPred.contains(edge)) { vv.setEdgeStroke(edge, new BasicStroke(4f)); } } }
From source file:com.scramcode.djinn.ui.panels.GraphPanel.java
public GraphPanel(Graph<JavaItem, JavaDependency> graph) { this.graph = graph; Layout<JavaItem, JavaDependency> layout = new FRLayout<JavaItem, JavaDependency>(graph); visualizationViewer = new VisualizationViewer<JavaItem, JavaDependency>(layout); /*visualizationViewer.getRenderer().setVertexRenderer(new Vertex<JavaItem, JavaDependency>() { @Override// w w w . j a va2s . c om public void paintVertex(RenderContext<JavaItem, JavaDependency> rc, Layout<JavaItem, JavaDependency> layout, JavaItem javaItem) { Point2D center = layout.transform(javaItem); GraphicTools.drawNode(rc.getGraphicsContext().getDelegate(), (int)center.getX(), (int)center.getY(), javaItem.getImage(), javaItem.getLabel(), 3); } });*/ RenderContext<JavaItem, JavaDependency> renderContext = visualizationViewer.getRenderContext(); renderContext.setVertexIconTransformer(new Transformer<JavaItem, Icon>() { public Icon transform(JavaItem node) { return node.getIcon(); } }); renderContext.setVertexLabelTransformer(new Transformer<JavaItem, String>() { public String transform(JavaItem node) { return node.getLabel(); } }); visualizationViewer.setBackground(Color.white); GraphZoomScrollPane scrollPane = new GraphZoomScrollPane(visualizationViewer); final PluggableGraphMouse graphMouse = new PluggableGraphMouse(); graphMouse.add(new PickingGraphMousePlugin<JavaItem, JavaDependency>()); graphMouse.add(new PopupGraphPlugin()); visualizationViewer.setGraphMouse(graphMouse); this.setLayout(new BorderLayout()); this.add(scrollPane, BorderLayout.CENTER); }