List of usage examples for org.apache.commons.collections15 Transformer Transformer
Transformer
From source file:tests.shortestpaths.SuurballeTarjanTest.java
@Test public void testUnreachable() { Graph<String, MyLink> g = new DirectedOrderedSparseMultigraph<String, MyLink>(); String n1 = new String("S"); // S g.addVertex(n1);/*from w w w. j a va2s . c om*/ String n2 = new String("A"); // A g.addVertex(n2); String n3 = new String("B"); // B -- not connected g.addVertex(n3); g.addEdge(new MyLink(1, "S-A"), n1, n2, EdgeType.DIRECTED); // S - A Transformer<MyLink, Number> weightTrans = new Transformer<MyLink, Number>() { @Override public Number transform(MyLink link) { return link.getWeight(); } }; SuurballeTarjan<String, MyLink> testMain = new SuurballeTarjan<String, MyLink>(g, weightTrans); assertEquals(null, testMain.getDisjointPaths(n1, n3)); }
From source file:tests.shortestpaths.SuurballeTarjanTest.java
@Test public void testSuurballe1() { Graph<String, MyLink> g = new DirectedOrderedSparseMultigraph<String, MyLink>(); String n1 = new String("S"); // S g.addVertex(n1);//ww w . j a va 2s .c om String n2 = new String("A"); // A g.addVertex(n2); String n3 = new String("D"); // D g.addVertex(n3); String n4 = new String("C"); // C g.addVertex(n4); String n5 = new String("F"); // F g.addVertex(n5); String n6 = new String("B"); // B g.addVertex(n6); String n7 = new String("G"); // G g.addVertex(n7); String n8 = new String("E"); // E g.addVertex(n8); g.addEdge(new MyLink(3, "S-A"), n1, n2, EdgeType.DIRECTED); // S - A g.addEdge(new MyLink(2, "S-B"), n1, n6, EdgeType.DIRECTED); // S - B g.addEdge(new MyLink(8, "S-D"), n1, n3, EdgeType.DIRECTED); // S - D g.addEdge(new MyLink(1, "A-C"), n2, n4, EdgeType.DIRECTED); // A - C g.addEdge(new MyLink(4, "A-D"), n2, n3, EdgeType.DIRECTED); // A - D g.addEdge(new MyLink(1, "D-F"), n3, n5, EdgeType.DIRECTED); // D - F g.addEdge(new MyLink(5, "C-F"), n4, n5, EdgeType.DIRECTED); // C - F g.addEdge(new MyLink(5, "B-E"), n6, n8, EdgeType.DIRECTED); // B - E g.addEdge(new MyLink(2, "E-G"), n8, n7, EdgeType.DIRECTED); // E - G g.addEdge(new MyLink(7, "G-F"), n7, n5, EdgeType.DIRECTED); // G - F Transformer<MyLink, Number> weightTrans = new Transformer<MyLink, Number>() { @Override public Number transform(MyLink link) { return link.getWeight(); } }; SuurballeTarjan<String, MyLink> testMain = new SuurballeTarjan<String, MyLink>(g, weightTrans); assertEquals("[[S-A, A-C, C-F], [S-D, D-F]]", testMain.getDisjointPaths(n1, n5).toString()); }
From source file:tests.shortestpaths.SuurballeTarjanTest.java
@Test public void testTargetRemoval() { Graph<String, MyLink> g = new DirectedOrderedSparseMultigraph<String, MyLink>(); String n1 = new String("S"); // S g.addVertex(n1);// w w w . j a v a2 s. co m String n2 = new String("A"); // A g.addVertex(n2); String n3 = new String("B"); // B g.addVertex(n3); String n4 = new String("C"); // C g.addVertex(n4); String n5 = new String("D"); // D g.addVertex(n5); g.addEdge(new MyLink(3, "S-A"), n1, n2, EdgeType.DIRECTED); // S - A g.addEdge(new MyLink(1, "A-C"), n2, n4, EdgeType.DIRECTED); // A - C g.addEdge(new MyLink(3, "S-B"), n1, n3, EdgeType.DIRECTED); // S - B g.addEdge(new MyLink(3, "B-C"), n3, n4, EdgeType.DIRECTED); // B - C g.addEdge(new MyLink(3, "C-D"), n4, n5, EdgeType.DIRECTED); // C - D Transformer<MyLink, Number> weightTrans = new Transformer<MyLink, Number>() { @Override public Number transform(MyLink link) { return link.getWeight(); } }; SuurballeTarjan<String, MyLink> testMain = new SuurballeTarjan<String, MyLink>(g, weightTrans); assertEquals("[[S-A, A-C, C-D]]", testMain.getDisjointPaths(n1, n5).toString()); }
From source file:tests.shortestpaths.SuurballeTarjanTest.java
@Test public void testTrapTopology() { Graph<String, MyLink> g = new DirectedOrderedSparseMultigraph<String, MyLink>(); String nS = new String("S"); g.addVertex(nS);/*from w w w. j a v a2 s. co m*/ String nA = new String("A"); g.addVertex(nA); String nB = new String("B"); g.addVertex(nB); String nD = new String("D"); g.addVertex(nD); String nE = new String("E"); g.addVertex(nE); String nF = new String("F"); g.addVertex(nF); String nG = new String("G"); g.addVertex(nG); String nH = new String("H"); g.addVertex(nH); g.addEdge(new MyLink(1, "S-A"), nS, nA, EdgeType.DIRECTED); g.addEdge(new MyLink(1, "A-B"), nA, nB, EdgeType.DIRECTED); g.addEdge(new MyLink(1, "B-D"), nB, nD, EdgeType.DIRECTED); g.addEdge(new MyLink(2, "S-E"), nS, nE, EdgeType.DIRECTED); g.addEdge(new MyLink(2, "E-F"), nE, nF, EdgeType.DIRECTED); g.addEdge(new MyLink(2, "F-B"), nF, nB, EdgeType.DIRECTED); g.addEdge(new MyLink(2, "A-G"), nA, nG, EdgeType.DIRECTED); g.addEdge(new MyLink(2, "G-H"), nG, nH, EdgeType.DIRECTED); g.addEdge(new MyLink(2, "H-D"), nH, nD, EdgeType.DIRECTED); Transformer<MyLink, Number> weightTrans = new Transformer<MyLink, Number>() { @Override public Number transform(MyLink link) { return link.getWeight(); } }; SuurballeTarjan<String, MyLink> testMain = new SuurballeTarjan<String, MyLink>(g, weightTrans); assertEquals("[[S-A, A-G, G-H, H-D], [S-E, E-F, F-B, B-D]]", testMain.getDisjointPaths(nS, nD).toString()); }
From source file:tests.shortestpaths.SuurballeTarjanTest.java
@Test public void testSuurballe2() { Graph<String, MyLink> g = new DirectedOrderedSparseMultigraph<String, MyLink>(); String n1 = new String("A"); // A g.addVertex(n1);/* w w w .j a va 2s .c om*/ String n2 = new String("D"); // D g.addVertex(n2); String n3 = new String("C"); // C g.addVertex(n3); String n4 = new String("F"); // F g.addVertex(n4); String n5 = new String("B"); // B g.addVertex(n5); String n6 = new String("G"); // G g.addVertex(n6); String n7 = new String("E"); // E g.addVertex(n7); g.addEdge(new MyLink(2, "A-D"), n1, n2, EdgeType.DIRECTED); g.addEdge(new MyLink(3, "A-C"), n1, n3, EdgeType.DIRECTED); g.addEdge(new MyLink(3, "A-F"), n1, n4, EdgeType.DIRECTED); g.addEdge(new MyLink(1, "D-E"), n2, n7, EdgeType.DIRECTED); // A - C g.addEdge(new MyLink(3, "D-C"), n2, n3, EdgeType.DIRECTED); // A - D g.addEdge(new MyLink(1, "C-E"), n3, n7, EdgeType.DIRECTED); // D - F g.addEdge(new MyLink(2, "C-B"), n3, n5, EdgeType.DIRECTED); // C - F g.addEdge(new MyLink(2, "C-G"), n3, n6, EdgeType.DIRECTED); // B - E g.addEdge(new MyLink(2, "F-G"), n4, n6, EdgeType.DIRECTED); // E - G g.addEdge(new MyLink(1, "F-C"), n4, n3, EdgeType.DIRECTED); // G - F g.addEdge(new MyLink(2, "E-B"), n7, n5, EdgeType.DIRECTED); // G - F g.addEdge(new MyLink(1, "G-B"), n6, n5, EdgeType.DIRECTED); // G - F Transformer<MyLink, Number> weightTrans = new Transformer<MyLink, Number>() { @Override public Number transform(MyLink link) { return link.getWeight(); } }; SuurballeTarjan<String, MyLink> testMain = new SuurballeTarjan<String, MyLink>(g, weightTrans); assertEquals("[[A-D, D-E, E-B], [A-C, C-B]]", testMain.getDisjointPaths(n1, n5).toString()); }
From source file:tests.shortestpaths.SuurballeTarjanTest.java
@Test public void testSuurballe3() { Graph<String, MyLink> g = new DirectedOrderedSparseMultigraph<String, MyLink>(); String n1 = new String("A"); // A g.addVertex(n1);//from w w w. j av a 2s .c om String n2 = new String("D"); // D g.addVertex(n2); String n3 = new String("C"); // C g.addVertex(n3); String n4 = new String("F"); // F g.addVertex(n4); String n5 = new String("B"); // B g.addVertex(n5); String n6 = new String("G"); // G g.addVertex(n6); String n7 = new String("E"); // E g.addVertex(n7); g.addEdge(new MyLink(2, "A-D"), n1, n2, EdgeType.DIRECTED); g.addEdge(new MyLink(3, "A-C"), n1, n3, EdgeType.DIRECTED); g.addEdge(new MyLink(3, "A-F"), n1, n4, EdgeType.DIRECTED); g.addEdge(new MyLink(3, "D-E"), n2, n7, EdgeType.DIRECTED); // A - C g.addEdge(new MyLink(0, "D-C"), n2, n3, EdgeType.DIRECTED); // A - D g.addEdge(new MyLink(1, "C-E"), n3, n7, EdgeType.DIRECTED); // D - F g.addEdge(new MyLink(2, "C-B"), n3, n5, EdgeType.DIRECTED); // C - F g.addEdge(new MyLink(2, "C-G"), n3, n6, EdgeType.DIRECTED); // B - E g.addEdge(new MyLink(2, "F-G"), n4, n6, EdgeType.DIRECTED); // E - G g.addEdge(new MyLink(1, "F-C"), n4, n3, EdgeType.DIRECTED); // G - F g.addEdge(new MyLink(2, "E-B"), n7, n5, EdgeType.DIRECTED); // G - F g.addEdge(new MyLink(1, "G-B"), n6, n5, EdgeType.DIRECTED); // G - F Transformer<MyLink, Number> weightTrans = new Transformer<MyLink, Number>() { @Override public Number transform(MyLink link) { return link.getWeight(); } }; SuurballeTarjan<String, MyLink> testMain = new SuurballeTarjan<String, MyLink>(g, weightTrans); assertEquals("[[A-D, D-C, C-B], [A-F, F-G, G-B]]", testMain.getDisjointPaths(n1, n5).toString()); }
From source file:tests.shortestpaths.SuurballeTarjanTest.java
@Test public void testNoDisjointSolution() { Graph<String, MyLink> g = new DirectedOrderedSparseMultigraph<String, MyLink>(); String n1 = new String("A"); // A g.addVertex(n1);/*from ww w. j a v a 2 s . c om*/ String n2 = new String("B"); // B g.addVertex(n2); g.addEdge(new MyLink(2, "A-B"), n1, n2, EdgeType.DIRECTED); Transformer<MyLink, Number> weightTrans = new Transformer<MyLink, Number>() { @Override public Number transform(MyLink link) { return link.getWeight(); } }; SuurballeTarjan<String, MyLink> testMain = new SuurballeTarjan<String, MyLink>(g, weightTrans); assertEquals("[[A-B]]", testMain.getDisjointPaths(n1, n2).toString()); }
From source file:thesaurusEditor.gui.graph.MainGraph.java
/** * create an instance of a simple graph with basic controls *///from ww w .j a va 2 s . c om public MainGraph(List<Konzept> konzepte, Main main) { // create a simple graph for the demo this.konzepte = konzepte; this.main = main; main.getController().getThesaurus().addObserver(this); graph = new DirectedSparseGraph<Konzept, EdgeClass>(); for (Konzept k : konzepte) { graph.addVertex(k); } createEdges(konzepte); layout = new PersistentLayoutImpl<Konzept, EdgeClass>(new FRLayout<Konzept, EdgeClass>(graph)); //layout = new FRLayout<Konzept,EdgeClass>(graph); Dimension preferredSize = new Dimension(1300, 900); final VisualizationModel<Konzept, EdgeClass> visualizationModel = new DefaultVisualizationModel<Konzept, EdgeClass>( layout, preferredSize); vv = new VisualizationViewer<Konzept, EdgeClass>(visualizationModel, preferredSize); // this class will provide both label drawing and vertex shapes VertexLabelAsShapeRenderer<Konzept, EdgeClass> vlasr = new VertexLabelAsShapeRenderer<Konzept, EdgeClass>( vv.getRenderContext()); // customize the render context vv.getRenderContext().setVertexLabelTransformer(new Transformer<Konzept, String>() { public String transform(Konzept k) { return ""; } }); // this chains together Transformers so that the html tags // are prepended to the toString method output /*new ChainedTransformer<Konzept,String>(new Transformer[]{ new ToStringLabeller<Konzept>(), new Transformer<Konzept,String>() { public String transform(Konzept input) { return input.toString(); }}}));*/ vv.getRenderContext().setVertexShapeTransformer(new Transformer<Konzept, Shape>() { public Shape transform(Konzept k) { return new Rectangle(-((k.toString().length() * 8 + 10) / 2), -(10), k.toString().length() * 7 + 18, 21); } }); vv.getRenderContext().setVertexLabelRenderer(new DefaultVertexLabelRenderer(Color.red)); vv.getRenderContext().setEdgeDrawPaintTransformer(new ConstantTransformer(Color.black)); vv.getRenderContext().setEdgeStrokeTransformer(new ConstantTransformer(new BasicStroke(2.5f))); vv.getRenderContext().setVertexFillPaintTransformer( new PickableVertexPaintTransformer<Konzept>(vv.getPickedVertexState(), Color.white, Color.yellow)); vv.getRenderContext().setEdgeDrawPaintTransformer( new PickableEdgePaintTransformer<EdgeClass>(vv.getPickedEdgeState(), Color.black, Color.red)); vv.getRenderContext().setVertexIconTransformer(new Transformer<Konzept, Icon>() { /* * Implements the Icon interface to draw an Icon with background color and * a text label */ public Icon transform(final Konzept v) { return new Icon() { private Konzept k; public int getIconHeight() { return 20; } public int getIconWidth() { if (k != null) { return k.toString().length() * 7 + 10; } return v.toString().length() * 7 + 10; } public void paintIcon(Component c, Graphics g, int x, int y) { if (vv.getPickedVertexState().isPicked(v)) { g.setColor(Color.yellow); } else { g.setColor(Color.lightGray); } g.fillRect(x, y, v.toString().length() * 8 + 10, 20); if (vv.getPickedVertexState().isPicked(v)) { g.setColor(Color.black); } else { g.setColor(Color.black); } g.drawRect(x, y, v.toString().length() * 8 + 10, 20); if (vv.getPickedVertexState().isPicked(v)) { g.setColor(Color.black); } else { g.setColor(Color.black); } this.k = v; if (vv.getPickedVertexState().isPicked(v)) { Font font = new Font("DejaVu Sans Mono", Font.BOLD, 14); g.setFont(font); g.drawString("" + v, x + 6, y + 15); } else { Font font = new Font("DejaVu Sans Mono", Font.PLAIN, 14); g.setFont(font); g.drawString("" + v, x + 6, y + 15); } this.k = v; } }; } }); // customize the renderer /*GradientVertexRenderer<Konzept,EdgeClass> vertex = new GradientVertexRenderer<Konzept,EdgeClass>(Color.white, Color.white, true); vv.getRenderer().setVertexRenderer(vertex); vv.getRenderer().setVertexLabelRenderer(vlasr); */ vv.setBackground(Color.white); // add a listener for ToolTips KonzeptParser<Konzept> parser = new KonzeptParser<Konzept>(); vv.setVertexToolTipTransformer(parser); /*final DefaultModalGraphMouse<Konzept,Edge> graphMouse = new DefaultModalGraphMouse<Konzept,Edge>(); */ Factory<Konzept> vertexFactory = new VertexFactory(); Factory<EdgeClass> edgeFactory = new EdgeFactory(); graphMouse = new MyModalGraphMouse<Konzept, EdgeClass>(vv.getRenderContext(), vertexFactory, edgeFactory, main, vv); vv.setGraphMouse(graphMouse); vv.addKeyListener(graphMouse.getModeKeyListener()); // 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); GraphZoomScrollPane gzsp = new GraphZoomScrollPane(vv); JComboBox modeBox = graphMouse.getModeComboBox(); modeBox.addItemListener(graphMouse.getModeListener()); //graphMouse.setMode(ModalGraphMouse.Mode.TRANSFORMING); final ScalingControl scaler = new CrossoverScalingControl(); JButton plus = new JButton(); plus.setIcon(new ImageIcon(getClass().getResource("/thesaurusEditor/img/zoom_in.png"))); plus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { scaler.scale(vv, 1.1f, vv.getCenter()); } }); JButton minus = new JButton(); minus.setIcon(new ImageIcon(getClass().getResource("/thesaurusEditor/img/zoom_out.png"))); minus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { scaler.scale(vv, 1 / 1.1f, vv.getCenter()); } }); JPanel controls = new JPanel(); JPanel zoomControls = new JPanel(new GridLayout(1, 2)); //zoomControls.setBorder(BorderFactory.createTitledBorder("Zoom")); zoomControls.add(plus); zoomControls.add(minus); controls.add(zoomControls); //controls.add(modeBox); /* javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(gzsp); gzsp.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 374, Short.MAX_VALUE) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 106, Short.MAX_VALUE) ); javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(controls); controls.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 374, Short.MAX_VALUE) ); jPanel2Layout.setVerticalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 164, Short.MAX_VALUE) );*/ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(gzsp, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(controls, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap())); layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup( javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addContainerGap() .addComponent(gzsp, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(controls, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap())); }
From source file:Transformer.NoeudShape.java
@Override public Shape transform(Noeud i) { if (mNodeDataTable.get(i).getValue() == "leader") { setSizeTransformer(new Transformer<Noeud, Integer>() { public Integer transform(Noeud node) { return 40; //Set all nodes to size 50, which is the same as our icons. }// w ww .ja va 2s . co m }); return factory.getRegularPolygon(i, 4); } setSizeTransformer(new Transformer<Noeud, Integer>() { public Integer transform(Noeud node) { return 20; //Set all nodes to size 50, which is the same as our icons. } }); return factory.getEllipse(i); }
From source file:ugr.cristian.serverVideoApp.AudioRouting.java
/** *Function that is called when is necessary to build the transformer audio for Dijkstra */// w w w . j a va2 s . co m private void buildAudioTransformerMap(final Map<Edge, Double> audioEdgeCostMap2) { this.costAudioTransformer = new Transformer<Edge, Number>() { public Double transform(Edge e) { return audioEdgeCostMap2.get(e); } }; }