Example usage for org.apache.commons.collections15 Transformer Transformer

List of usage examples for org.apache.commons.collections15 Transformer Transformer

Introduction

In this page you can find the example usage for org.apache.commons.collections15 Transformer Transformer.

Prototype

Transformer

Source Link

Usage

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>&nbsp;&nbsp;&nbsp;&nbsp;" + vertex.getParameters().get("id")
                        + "&nbsp;&nbsp;&nbsp;&nbsp;</b>");

            }
            if (vertex.getName().equals("handler")) {
                return getDisplayLabel("<b>&nbsp;&nbsp;&nbsp;&nbsp;" + vertex.getParameters().get("type")
                        + "&nbsp;&nbsp;&nbsp;&nbsp;</b>");
            }
            if (vertex.getName().equals("unary")) {
                String r = "<table><tr><td>&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;&nbsp;&nbsp;&nbsp;</td></tr></table>";
                //r = r.substring(0, r.length()-5);
                return getDisplayLabel(r);
            }
            String label = "";
            label += "<table><tr><td>&nbsp;&nbsp;&nbsp;&nbsp;</td><td><b><center>";
            label += vertex.getName().replaceAll("\n", "<br/>");
            label += "</center></b></td><td>&nbsp;&nbsp;&nbsp;&nbsp;</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);

}