List of usage examples for org.apache.commons.collections15 Transformer Transformer
Transformer
From source file:com.bluexml.side.build.tools.graph.JungConverter.java
public static void saveGraph(Graph<Componant, String> g, File file) throws IOException { logger.debug("Save Graph"); GraphMLWriter<Componant, String> gw = new GraphMLWriter<Componant, String>(); gw.setEdgeIDs(new Transformer<String, String>() { public String transform(String input) { // TODO Auto-generated method stub return input; }// w ww. j av a 2s. c o m }); FileWriter w = new FileWriter(file); gw.save(g, w); w.close(); printGraphStats(g, "graph -> file"); }
From source file:com.imag.nespros.runtime.algoritms.Solution.java
public void computeCost(UndirectedSparseGraph<Device, ComLink> _topo, DirectedSparseGraph<EPUnit, EventChannel> _epn) { cost = 0;/*from w w w . j ava 2s .c o m*/ for (EPUnit ope : op2Computer.keySet()) { // compute the cost due to cpu latency in the designated computer double op_cpu_time = ope.getExecutionTime(); double comp_speed_rate = op2Computer.get(ope).getCpuSpeed(); //int cpu_cost = (int) Math.ceil(new Double(op_cpu_time) / comp_speed_rate);//Math.max(1, op_cpu_time / comp_speed_rate); double cpu_cost = op_cpu_time / comp_speed_rate; int localLatency_cost = 0, maxLocalLatency_cost = 0; // compute the cost due to the latency. /* for (EventChannel ec : _epn.getOutEdges(ope)) { EPUnit next_ope = _epn.getDest(ec); //System.out.println(op2Computer.get(ope)+", "+ op2Computer.get(next_ope)); Transformer<ComLink, Integer> wtTransformer = new Transformer<ComLink, Integer>() { @Override public Integer transform(ComLink link) { return link.getLatency(); } }; DijkstraShortestPath<Device, ComLink> alg = new DijkstraShortestPath(_topo, wtTransformer); List<ComLink> path = alg.getPath(op2Computer.get(ope), op2Computer.get(next_ope)); if (path != null) { //System.out.println("Path between "+op2Computer.get(ope).getId() + " to" + op2Computer.get(next_ope).getId()+": "); for (ComLink c : path) { //System.out.print(c.getId()+", "); localLatency_cost += c.getLatency(); } } else { System.out.println(ope.getName() + "-> " + next_ope.getName() + ", no path from " + op2Computer.get(ope) + " to" + op2Computer.get(next_ope)); localLatency_cost = Integer.MAX_VALUE; } if (localLatency_cost > maxLocalLatency_cost) { maxLocalLatency_cost = localLatency_cost; } } */ for (EventChannel ec : _epn.getInEdges(ope)) { EPUnit prev_ope = _epn.getSource(ec); localLatency_cost = 0; //System.out.println(op2Computer.get(ope)+", "+ op2Computer.get(next_ope)); Transformer<ComLink, Integer> wtTransformer = new Transformer<ComLink, Integer>() { @Override public Integer transform(ComLink link) { return link.getLatency(); } }; DijkstraShortestPath<Device, ComLink> alg = new DijkstraShortestPath(_topo, wtTransformer); List<ComLink> path = alg.getPath(op2Computer.get(prev_ope), op2Computer.get(ope)); //localLatency_cost=(int) alg.getDistance(op2Computer.get(prev_ope), op2Computer.get(ope)); if (path != null) { //System.out.println("Path between "+op2Computer.get(ope).getId() + " to" + op2Computer.get(next_ope).getId()+": "); for (ComLink c : path) { //System.out.print(c.getId()+", "); localLatency_cost += c.getLatency(); } } else { System.out.println(ope.getName() + "-> " + prev_ope.getName() + ", no path from " + op2Computer.get(ope) + " to" + op2Computer.get(prev_ope)); localLatency_cost = Integer.MAX_VALUE; } if (localLatency_cost > maxLocalLatency_cost) { maxLocalLatency_cost = localLatency_cost; } } cost += (maxLocalLatency_cost + cpu_cost); } }
From source file:com.net2plan.utils.CollectionUtils.java
/** * Obtains the equivalent {@code Transformer} of a {@code Map}. * * @param <A> Key type/*w w w. j ava 2 s .c om*/ * @param <B> Value type * @param map Input map * @return {@code Transformer} */ public static <A, B> Transformer<A, B> getMapTransformer(final Map<A, B> map) { return new Transformer<A, B>() { @Override public B transform(A key) { return map.get(key); } }; }
From source file:geovista.network.gui.ClusteringDemo.java
private void setUpView() throws IOException { /*//from www .j av a 2 s. c o m * Factory<Integer> vertexFactory = new Factory<Integer>() { int n = 0; * public Integer create() { return n++; } }; Factory<Number> * edgeFactory = new Factory<Number>() { int n = 0; public Number * create() { return n++; } }; */ /* * PajekNetReader<Graph<Integer, Number>, Integer,Number> pnr = new * PajekNetReader<Graph<Integer, Number>, Integer,Number>(vertexFactory, * edgeFactory); * * final Graph<Integer,Number> graph = new SparseMultigraph<Integer, * Number>(); * * pnr.load(br, graph); */ // Create a simple layout frame // specify the Fruchterman-Rheingold layout algorithm layout = new AggregateLayout<Integer, Number>(new FRLayout<Integer, Number>(g)); vv = new VisualizationViewer<Integer, Number>(layout); vv.setBackground(Color.white); // Tell the renderer to use our own customized color rendering vv.getRenderContext() .setVertexFillPaintTransformer(MapTransformer.<Integer, Paint>getInstance(vertexPaints)); vv.getRenderContext().setVertexDrawPaintTransformer(new Transformer<Integer, Paint>() { public Paint transform(Integer v) { if (vv.getPickedVertexState().isPicked(v)) { return Color.blue; } else { return Color.BLACK; } } }); vv.getRenderContext().setEdgeDrawPaintTransformer(MapTransformer.<Number, Paint>getInstance(edgePaints)); vv.getRenderContext().setEdgeStrokeTransformer(new Transformer<Number, Stroke>() { protected final Stroke THIN = new BasicStroke(1); protected final Stroke THICK = new BasicStroke(2); public Stroke transform(Number e) { Paint c = edgePaints.get(e); if (c == Color.LIGHT_GRAY) { return THIN; } else { return THICK; } } }); /* * //add restart button JButton scramble = new JButton("Restart"); * scramble.addActionListener(new ActionListener() { public void * actionPerformed(ActionEvent arg0) { Layout layout = * vv.getGraphLayout(); layout.initialize(); Relaxer relaxer = * vv.getModel().getRelaxer(); if(relaxer != null) { relaxer.stop(); * relaxer.prerelax(); relaxer.relax(); } } * * }); * * DefaultModalGraphMouse gm = new DefaultModalGraphMouse(); * vv.setGraphMouse(gm); */ final JToggleButton groupVertices = new JToggleButton("Group Clusters"); // Create slider to adjust the number of edges to remove when clustering final JSlider edgeBetweennessSlider = new JSlider(JSlider.HORIZONTAL); edgeBetweennessSlider.setBackground(Color.WHITE); edgeBetweennessSlider.setPreferredSize(new Dimension(210, 50)); edgeBetweennessSlider.setPaintTicks(true); edgeBetweennessSlider.setMaximum(g.getEdgeCount()); edgeBetweennessSlider.setMinimum(0); edgeBetweennessSlider.setValue(0); edgeBetweennessSlider.setMajorTickSpacing(10); edgeBetweennessSlider.setPaintLabels(true); edgeBetweennessSlider.setPaintTicks(true); // edgeBetweennessSlider.setBorder(BorderFactory.createLineBorder(Color.black)); // TO DO: edgeBetweennessSlider.add(new // JLabel("Node Size (PageRank With Priors):")); // I also want the slider value to appear final JPanel eastControls = new JPanel(); /* * eastControls.setOpaque(true); eastControls.setLayout(new * BoxLayout(eastControls, BoxLayout.Y_AXIS)); * eastControls.add(Box.createVerticalGlue()); */ // eastControls.add(edgeBetweennessSlider); final Box cluster_panel = Box.createVerticalBox(); cluster_panel.setBorder(BorderFactory.createTitledBorder("Cluster")); cluster_panel.add(edgeBetweennessSlider); final String COMMANDSTRING = "Edges removed for clusters: "; final String eastSize = COMMANDSTRING + edgeBetweennessSlider.getValue(); final TitledBorder sliderBorder = BorderFactory.createTitledBorder(eastSize); /* * eastControls.setBorder(sliderBorder); //eastControls.add(eastSize); * eastControls.add(Box.createVerticalGlue()); */ groupVertices.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { clusterAndRecolor(layout, edgeBetweennessSlider.getValue(), similarColors, e.getStateChange() == ItemEvent.SELECTED); vv.repaint(); } }); clusterAndRecolor(layout, 0, similarColors, groupVertices.isSelected()); edgeBetweennessSlider.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { JSlider source = (JSlider) e.getSource(); if (!source.getValueIsAdjusting()) { int numEdgesToRemove = source.getValue(); clusterAndRecolor(layout, numEdgesToRemove, similarColors, groupVertices.isSelected()); sliderBorder.setTitle(COMMANDSTRING + edgeBetweennessSlider.getValue()); eastControls.repaint(); vv.validate(); vv.repaint(); } } }); cluster_panel.add(groupVertices); Container content = getContentPane(); content.add(new GraphZoomScrollPane(vv)); JPanel south = new JPanel(); JPanel grid = new JPanel(new GridLayout(2, 1)); // grid.add(scramble); grid.add(cluster_panel); // south.add south.add(grid); south.add(eastControls); JPanel p = new JPanel(); // p.setBorder(BorderFactory.createTitledBorder("Mouse Mode")); // p.add(gm.getModeComboBox()); south.add(p); content.add(south, BorderLayout.SOUTH); }
From source file:cz.cuni.mff.ksi.jinfer.autoeditor.AutoEditor.java
/** * Draws automaton and waits until user picks some states and clicks * 'continue' button.//w w w.j a v a2 s . c o m * * @param automaton automaton to be drawn * @return returns picked states in a list */ public List<State<T>> drawAutomatonToPickStates(final Automaton<T> automaton) { if (!AutoEditorTopComponent.getAskUser()) { throw new IllegalStateException("User does not want to interact with the inferrence anymore."); } final DirectedSparseMultigraph<State<T>, Step<T>> graph = new DirectedSparseMultigraph<State<T>, Step<T>>(); final Map<State<T>, Set<Step<T>>> automatonDelta = automaton.getDelta(); // Get vertices = states of automaton for (Entry<State<T>, Set<Step<T>>> entry : automatonDelta.entrySet()) { graph.addVertex(entry.getKey()); } // Get edges of automaton for (Entry<State<T>, Set<Step<T>>> entry : automatonDelta.entrySet()) { for (Step<T> step : entry.getValue()) { graph.addEdge(step, step.getSource(), step.getDestination()); } } // TODO rio find suitable layout //final Layout<State<T>, Step<T>> layout = new ISOMLayout<State<T>, Step<T>>(graph); // TODO rio Julia's code fragment final int MIN_X_SIZE = 7; final int MIN_Y_SIZE = 3; final int SQUARE_SIZE = 100; final AutomatonLayoutTransformer<T> automatonLayoutTransformer = new AutomatonLayoutTransformer<T>( MIN_X_SIZE, MIN_Y_SIZE, SQUARE_SIZE, graph, automaton); final Dimension dimension = automatonLayoutTransformer.getDimension(); final Layout<State<T>, Step<T>> layout = new StaticLayout<State<T>, Step<T>>(graph, automatonLayoutTransformer, dimension); //layout.setSize(new Dimension(300,300)); // sets the initial size of the space visualizationViewer = new VisualizationViewer<State<T>, Step<T>>(layout); //visualizationViewer.setPreferredSize(new Dimension(350,350)); //Sets the viewing area size visualizationViewer.getRenderContext().setVertexLabelTransformer(new ToStringLabeller<State<T>>()); visualizationViewer.getRenderContext().setEdgeLabelTransformer(new Transformer<Step<T>, String>() { @Override public String transform(Step<T> i) { return symbolToString.toString(i.getAcceptSymbol()); } }); final PluggableGraphMouse gm = new PluggableGraphMouse(); gm.add(new PickingUnlimitedGraphMousePlugin<State<T>, Step<T>>()); gm.add(new ScalingGraphMousePlugin(new CrossoverScalingControl(), 0)); gm.add(new TranslatingGraphMousePlugin(MouseEvent.BUTTON1_MASK | MouseEvent.CTRL_MASK)); visualizationViewer.setGraphMouse(gm); // Call GUI in a special thread. Required by NB. synchronized (this) { WindowManager.getDefault().invokeWhenUIReady(new Runnable() { @Override public void run() { // Pass this as argument so the thread will be able to wake us up. AutoEditorTopComponent.findInstance().drawAutomatonBasicVisualizationServer(AutoEditor.this, visualizationViewer, "Please select states to be merged together."); } }); try { // Sleep on this. this.wait(); } catch (InterruptedException e) { return null; } } /* AutoEditorTopComponent wakes us up. Get the result and return it. * VisualizationViewer should give us the information about picked vertices. */ final Set<State<T>> pickedSet = visualizationViewer.getPickedVertexState().getPicked(); List<State<T>> lst = new ArrayList<State<T>>(pickedSet); return lst; }
From source file:cimat.tesis.sna.visualization.ClusteringDemo.java
private void setUpView(BufferedReader br) throws IOException { Factory<Number> vertexFactory = new Factory<Number>() { int n = 0; public Number create() { return n++; }//from w w w. j a v a 2 s . co m }; Factory<Number> edgeFactory = new Factory<Number>() { int n = 0; public Number create() { return n++; } }; PajekNetReader<Graph<Number, Number>, Number, Number> pnr = new PajekNetReader<Graph<Number, Number>, Number, Number>( vertexFactory, edgeFactory); final Graph<Number, Number> graph = new SparseMultigraph<Number, Number>(); pnr.load(br, graph); //Create a simple layout frame //specify the Fruchterman-Rheingold layout algorithm final AggregateLayout<Number, Number> layout = new AggregateLayout<Number, Number>( new FRLayout<Number, Number>(graph)); vv = new VisualizationViewer<Number, Number>(layout); vv.setBackground(Color.white); //Tell the renderer to use our own customized color rendering vv.getRenderContext() .setVertexFillPaintTransformer(MapTransformer.<Number, Paint>getInstance(vertexPaints)); vv.getRenderContext().setVertexDrawPaintTransformer(new Transformer<Number, Paint>() { public Paint transform(Number v) { if (vv.getPickedVertexState().isPicked(v)) { return Color.cyan; } else { return Color.BLACK; } } }); vv.getRenderContext().setEdgeDrawPaintTransformer(MapTransformer.<Number, Paint>getInstance(edgePaints)); vv.getRenderContext().setEdgeStrokeTransformer(new Transformer<Number, Stroke>() { protected final Stroke THIN = new BasicStroke(1); protected final Stroke THICK = new BasicStroke(2); public Stroke transform(Number e) { Paint c = edgePaints.get(e); if (c == Color.LIGHT_GRAY) return THIN; else return THICK; } }); //add restart button JButton scramble = new JButton("Restart"); scramble.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { Layout layout = vv.getGraphLayout(); layout.initialize(); Relaxer relaxer = vv.getModel().getRelaxer(); if (relaxer != null) { relaxer.stop(); relaxer.prerelax(); relaxer.relax(); } } }); DefaultModalGraphMouse gm = new DefaultModalGraphMouse(); vv.setGraphMouse(gm); final JToggleButton groupVertices = new JToggleButton("Group Clusters"); //Create slider to adjust the number of edges to remove when clustering final JSlider edgeBetweennessSlider = new JSlider(JSlider.HORIZONTAL); edgeBetweennessSlider.setBackground(Color.WHITE); edgeBetweennessSlider.setPreferredSize(new Dimension(210, 50)); edgeBetweennessSlider.setPaintTicks(true); edgeBetweennessSlider.setMaximum(graph.getEdgeCount()); edgeBetweennessSlider.setMinimum(0); edgeBetweennessSlider.setValue(0); edgeBetweennessSlider.setMajorTickSpacing(10); edgeBetweennessSlider.setPaintLabels(true); edgeBetweennessSlider.setPaintTicks(true); // edgeBetweennessSlider.setBorder(BorderFactory.createLineBorder(Color.black)); //TO DO: edgeBetweennessSlider.add(new JLabel("Node Size (PageRank With Priors):")); //I also want the slider value to appear final JPanel eastControls = new JPanel(); eastControls.setOpaque(true); eastControls.setLayout(new BoxLayout(eastControls, BoxLayout.Y_AXIS)); eastControls.add(Box.createVerticalGlue()); eastControls.add(edgeBetweennessSlider); final String COMMANDSTRING = "Edges removed for clusters: "; final String eastSize = COMMANDSTRING + edgeBetweennessSlider.getValue(); final TitledBorder sliderBorder = BorderFactory.createTitledBorder(eastSize); eastControls.setBorder(sliderBorder); //eastControls.add(eastSize); eastControls.add(Box.createVerticalGlue()); groupVertices.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { clusterAndRecolor(layout, edgeBetweennessSlider.getValue(), similarColors, e.getStateChange() == ItemEvent.SELECTED); vv.repaint(); } }); clusterAndRecolor(layout, 0, similarColors, groupVertices.isSelected()); edgeBetweennessSlider.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { JSlider source = (JSlider) e.getSource(); if (!source.getValueIsAdjusting()) { int numEdgesToRemove = source.getValue(); clusterAndRecolor(layout, numEdgesToRemove, similarColors, groupVertices.isSelected()); sliderBorder.setTitle(COMMANDSTRING + edgeBetweennessSlider.getValue()); eastControls.repaint(); vv.validate(); vv.repaint(); } } }); Container content = getContentPane(); content.add(new GraphZoomScrollPane(vv)); JPanel south = new JPanel(); JPanel grid = new JPanel(new GridLayout(2, 1)); grid.add(scramble); grid.add(groupVertices); south.add(grid); south.add(eastControls); JPanel p = new JPanel(); p.setBorder(BorderFactory.createTitledBorder("Mouse Mode")); p.add(gm.getModeComboBox()); south.add(p); content.add(south, BorderLayout.SOUTH); }
From source file:jku.ss09.mir.lastfmecho.bo.visualization.MirArtistNetworkGraphVisualizer.java
private void setVisualizationRenderer() { if (graph == null) { return;/*from ww w.ja va 2s .c o m*/ } vv = new VisualizationViewer<Integer, Number>(new FRLayout<Integer, Number>(graph)); vv.getRenderContext().setVertexLabelTransformer(new Transformer<Integer, String>() { public String transform(Integer v) { return artistList.get(v).getName(); //return "Vertex "+v; } }); vv.getRenderContext().setVertexLabelRenderer(new DefaultVertexLabelRenderer(Color.cyan)); vv.getRenderContext().setEdgeLabelRenderer(new DefaultEdgeLabelRenderer(Color.cyan)); // vv.getRenderContext().setVertexIconTransformer(new Transformer<Integer,Icon>() { // // /* // * Implements the Icon interface to draw an Icon with background color and // * a text label // */ // public Icon transform(final Integer v) { // return new Icon() { // // public int getIconHeight() { // return 20; // } // // public int getIconWidth() { // return 20; // } // // public void paintIcon(Component c, Graphics g, // int x, int y) { // if(vv.getPickedVertexState().isPicked(v)) { // g.setColor(Color.yellow); // } else { // g.setColor(Color.red); // } // g.fillOval(x, y, 20, 20); // if(vv.getPickedVertexState().isPicked(v)) { // g.setColor(Color.black); // } else { // g.setColor(Color.white); // } // g.drawString(""+v, x+6, y+15); // // }}; // }}); // // vv.getRenderContext().setVertexFillPaintTransformer(new PickableVertexPaintTransformer<Integer>(vv.getPickedVertexState(), Color.white, Color.yellow)); // vv.getRenderContext().setEdgeDrawPaintTransformer(new PickableEdgePaintTransformer<Number>(vv.getPickedEdgeState(), Color.black, Color.lightGray)); //for displaying edge labels - care this is index displayed not weight - i dont know how to set weights... // vv.getRenderContext().setEdgeLabelTransformer(new ToStringLabeller<Number>()); vv.setBackground(Color.white); // add my listener for ToolTips vv.setVertexToolTipTransformer(new ToStringLabeller<Integer>()); }
From source file:model.DrawTopologyDiagram.java
@Override public void init() { //create a graph Graph<VertexTopology, Number> ig = Graphs.<VertexTopology, Number>synchronizedDirectedGraph( new DirectedSparseMultigraph<VertexTopology, Number>()); ObservableGraph<VertexTopology, Number> og = new ObservableGraph<VertexTopology, Number>(ig); og.addGraphEventListener(new GraphEventListener<VertexTopology, Number>() { public void handleGraphEvent(GraphEvent<VertexTopology, Number> evt) { System.err.println("got " + evt); }/* w w w. j a v a 2s. c o m*/ }); this.g = og; //layouts //create a graphdraw // layout = new FRLayout2<String,Number>(g); // layout = new SpringLayout<String,Number>(g); // ((FRLayout)layout).setMaxIterations(200); layout = new KKLayout<VertexTopology, Number>(g); vv = new VisualizationViewer<VertexTopology, Number>(layout, new Dimension(600, 600)); createGraph(); Container content = getContentPane(); JPanel totalCasesPanel = new JPanel(); final JPanel scaleGrids = new JPanel(new GridLayout(0, 2)); scaleGrids.add(new JLabel(" Test Cases ")); scaleGrids.add(new JLabel(" ")); totalCasesPanel.add(scaleGrids); JPanel filteredCasesPanel = new JPanel(); final JPanel filteredGrids = new JPanel(new GridLayout(0, 2)); filteredGrids.add(new JLabel(" Filtered Cases ")); filteredGrids.add(new JLabel(" ")); filteredCasesPanel.add(filteredGrids); JRootPane rp = this.getRootPane(); rp.putClientProperty("defeatSystemEventQueueCheck", Boolean.TRUE); content.setLayout(new BorderLayout()); content.setBackground(java.awt.Color.lightGray); content.setFont(new Font("Serif", Font.PLAIN, 12)); vv.getModel().getRelaxer().setSleepTime(500); vv.setGraphMouse(new DefaultModalGraphMouse<VertexTopology, Number>()); vv.getRenderer().getVertexLabelRenderer().setPosition(Renderer.VertexLabel.Position.CNTR); vv.setForeground(Color.white); FontMetrics fm = vv.getFontMetrics(vv.getFont()); int width = fm.stringWidth(g.toString()); Transformer<VertexTopology, Shape> vertexSize = new Transformer<VertexTopology, Shape>() { public Shape transform(VertexTopology i) { Ellipse2D circle = new Ellipse2D.Double(-20, -20, 40, 40); // in this case, the vertex is twice as large return circle; } }; vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller() { @Override public String transform(Object v) { return ((VertexTopology) v).getScreenName(); } }); vv.getRenderContext().setVertexShapeTransformer(vertexSize); //Get picked states final PickedState<VertexTopology> pickedState = vv.getPickedVertexState(); pickedState.addItemListener(new ItemListener() { ArrayList<TestCase> outputTestCase = new ArrayList<TestCase>(); final Map<String, JButton> createdBtns = new HashMap<String, JButton>(); Map<String, Integer> deviceSelected = new HashMap<String, Integer>(); // not useful ArrayList<String> endPointList = new ArrayList<String>(); @Override public void itemStateChanged(ItemEvent e) { // TODO Auto-generated method stub Object subject = e.getItem(); if (e.getStateChange() != 1) { scaleGrids.removeAll(); filteredGrids.removeAll(); endPointList.remove(getScreenName(subject)); outputTestCase.clear(); filteredGrids.repaint(); filteredGrids.add(new JLabel(" Filtered Cases ")); filteredGrids.add(new JLabel(" ")); scaleGrids.repaint(); scaleGrids.add(new JLabel(" Test Cases ")); scaleGrids.add(new JLabel(" ")); deviceSelected.clear(); } if (e.getStateChange() == 1) { for (TestCase testCase : outputTestCase) { scaleGrids.removeAll(); scaleGrids.add(new JLabel(" Test Cases ")); scaleGrids.add(new JLabel(" ")); filteredGrids.removeAll(); filteredGrids.add(new JLabel(" Filtered Cases ")); filteredGrids.add(new JLabel(" ")); } if (subject instanceof VertexTopology) { final VertexTopology edgePicked = (VertexTopology) subject; if (pickedState.isPicked(edgePicked)) { for (TestCase testCase : edgePicked.getTestCaseList()) { if (!outputTestCase.contains(testCase)) outputTestCase.add(testCase); System.out.println("The size for reference is " + testCase.inputReferenceMap.size() + testCase.getName()); System.out.println("The size for target is " + testCase.inputTargetMap.size() + testCase.getName()); } if (deviceSelected.get(edgePicked.getScreenName()) != null) deviceSelected.put(edgePicked.getScreenName(), deviceSelected.get(edgePicked.getScreenName()) + 1); else deviceSelected.put(edgePicked.getScreenName(), 1); endPointList.add(edgePicked.getScreenName()); } } } for (TestCase testCase : outputTestCase) { JButton btnCase = new JButton(testCase.getName()); scaleGrids.add(btnCase); if (testCase.getInputDeviceList().size() <= endPointList.size()) if (testCaseSelected(testCase, endPointList)) { JButton btnCaseFiltered = new JButton(testCase.getName()); filteredGrids.add(btnCaseFiltered); } ; } scaleGrids.revalidate(); scaleGrids.setVisible(true); } }); final DefaultModalGraphMouse graphMouse = new DefaultModalGraphMouse(); vv.setGraphMouse(graphMouse); graphMouse.setMode(ModalGraphMouse.Mode.PICKING); content.setPreferredSize(new Dimension(1400, 900)); content.add(vv); switchLayout = new JButton("Switch to SpringLayout"); // switchLayout.addActionListener(new ActionListener() { // // @SuppressWarnings("unchecked") // public void actionPerformed(ActionEvent ae) { // Dimension d = new Dimension(600,600); // if (switchLayout.getText().indexOf("Spring") > 0) { // switchLayout.setText("Switch to FRLayout"); // layout = new SpringLayout<String,Number>(g, // new ConstantTransformer(EDGE_LENGTH)); // layout.setSize(d); // vv.getModel().setGraphLayout(layout, d); // } else { // switchLayout.setText("Switch to SpringLayout"); // layout = new FRLayout<String,Number>(g, d); // vv.getModel().setGraphLayout(layout, d); // } // } // }); JSplitPane jSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, totalCasesPanel, filteredCasesPanel); jSplitPane.setResizeWeight(.5d); content.add(switchLayout, BorderLayout.SOUTH); content.add(jSplitPane, BorderLayout.EAST); }
From source file:at.tuwien.ifs.somtoolbox.apps.viewer.controls.DendogramView.java
/** * @param t// w ww .j a v a2s . c om * @param numClusters * @return */ private VisualizationViewer generateGraph(ClusteringTree t, final int numClusters) { DelegateTree<ChildDG, EdgeDG> g = new DelegateTree<ChildDG, EdgeDG>(); ClusterNode root = t.findNode(1); mMergeCostMax = null; mMergeCostMin = null; mMergeCostSumMax = null; mMergeCostSumMin = null; calcMergeCostSum(root, root.getMergeCost(), numClusters); findMinMaxMergeCost(root, true, numClusters); nodeId = 0; ChildDG rc = new ChildDG(root); addChildren(root, g, rc, numClusters); Layout<ChildDG, EdgeDG> layout = new TreeLayout<ChildDG, EdgeDG>(g); VisualizationViewer<ChildDG, EdgeDG> graphComponent = new VisualizationViewer<ChildDG, EdgeDG>(layout); DefaultModalGraphMouse gm = new DefaultModalGraphMouse(); gm.setMode(ModalGraphMouse.Mode.TRANSFORMING); graphComponent.setGraphMouse(gm); graphComponent.enableInputMethods(true); RenderContext<ChildDG, EdgeDG> c = graphComponent.getRenderContext(); graphComponent.setVertexToolTipTransformer(new Transformer<ChildDG, String>() { @Override public String transform(ChildDG c) { if (c.getNode().getMergeCost() == null) { return "count:" + c.getNode().getNodes().length + " " + c.getTooltip(); } else { return "merge cotst:" + c.getNode().getMergeCost() + " count:" + c.getNode().getNodes().length + " " + c.getTooltip(); } } }); graphComponent.setSize(frame.getContentPane().getWidth(), frame.getContentPane().getHeight() - clusterPanel.getHeight()); // change edge-stroke-thickness c.setEdgeStrokeTransformer(new Transformer<EdgeDG, Stroke>() { @Override public Stroke transform(EdgeDG _arg0) { return new BasicStroke(_arg0.getMergeCost().floatValue() * MAX_STROKE_WIDTH); } }); final Rectangle fake = new Rectangle(1, 1); c.setEdgeArrowTransformer(new Transformer<Context<Graph<ChildDG, EdgeDG>, EdgeDG>, Shape>() { @Override public Shape transform(Context<Graph<ChildDG, EdgeDG>, EdgeDG> _arg0) { return fake; } }); // change vertex-fill-color c.setVertexFillPaintTransformer(new Transformer<ChildDG, Paint>() { @Override public Paint transform(ChildDG _arg0) { if (_arg0.getPaint() == null) { if (_arg0.getMergeCostSum() != null) { double normalized = getNormalizedValue(_arg0.getMergeCostSum(), mMergeCostSumMax, mMergeCostSumMin, _arg0.getMergeCostSum()); int cc = (int) Math.round(normalized * (palette.getColors().length - 1)); return palette.getColor(cc); } else { return palette.getColor(palette.getColors().length - 1); } } else { return _arg0.getPaint(); } } }); return graphComponent; }
From source file:joshua.ui.hypergraph_visualizer.HyperGraphViewer.java
private Transformer<Vertex, Paint> vertexPainter() { return new Transformer<Vertex, Paint>() { private Color[] colors = { Color.blue, Color.red, Color.yellow, Color.green, Color.cyan }; public Paint transform(Vertex v) { return colors[v.getColor() % colors.length]; }//w w w . ja va 2s . c o m }; }