/*******************************************************************************
* Copyright 2007 Neptuny s.r.l. - www.neptuny.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*******************************************************************************/
package com.neptuny.xgrapher.cli.test;
import java.io.IOException;
import com.neptuny.xgrapher.cli.layout.TemporalSpringLayout;
import edu.uci.ics.jung.graph.Edge;
import edu.uci.ics.jung.graph.Graph;
import edu.uci.ics.jung.graph.impl.DirectedSparseEdge;
import edu.uci.ics.jung.graph.impl.DirectedSparseGraph;
import edu.uci.ics.jung.graph.impl.DirectedSparseVertex;
import edu.uci.ics.jung.utils.UserData;
import edu.uci.ics.jung.visualization.PluggableRenderer;
import edu.uci.ics.jung.visualization.VisualizationViewer;
/**
* Test class to add a simple graph to GraphArea
*
* @author Andrea Cusini [andrea.cusini@gmail.com]
* @since 26/set/07
*/
public class SimpleGraphDraw {
private static Graph g;
/**
* @return Graph
* @throws IOException
*/
public static Graph getGraph() throws IOException {
Graph g = new DirectedSparseGraph();
DirectedSparseVertex v1 = new DirectedSparseVertex();
DirectedSparseVertex v2 = new DirectedSparseVertex();
DirectedSparseVertex v3 = new DirectedSparseVertex();
DirectedSparseVertex v4 = new DirectedSparseVertex();
v1.setUserDatum("ID", "123", UserData.SHARED);
v1.setUserDatum("Name","v1Name",UserData.SHARED);
v1.setUserDatum("Description", "Node 1 Description", UserData.SHARED);
v1.setUserDatum("Deepness", 2,UserData.SHARED);
v2.setUserDatum("ID", "456", UserData.SHARED);
v2.setUserDatum("Name","v2Name",UserData.SHARED);
v2.setUserDatum("Description", "Node 2 Description", UserData.SHARED);
v2.setUserDatum("Deepness", 2,UserData.SHARED);
v3.setUserDatum("ID", "789", UserData.SHARED);
v3.setUserDatum("Name","v3Name",UserData.SHARED);
v3.setUserDatum("Description", "Node 3 Description", UserData.SHARED);
v3.setUserDatum("Deepness", 2,UserData.SHARED);
v4.setUserDatum("ID", "444", UserData.SHARED);
v4.setUserDatum("Name","v4Name",UserData.SHARED);
v4.setUserDatum("Description", "Node 4 Description", UserData.SHARED);
v4.setUserDatum("Deepness", 1,UserData.SHARED);
g.addVertex(v1);
g.addVertex(v2);
g.addVertex(v3);
g.addVertex(v4);
Edge e12 = new DirectedSparseEdge(v1, v2);
e12.setUserDatum("ID", "12", UserData.SHARED);
e12.setUserDatum("Name", "myEdge12", UserData.SHARED);
e12.setUserDatum("Description", "myEdge 12 description", UserData.SHARED);
e12.setUserDatum("Deepness", 2, UserData.SHARED);
g.addEdge(e12);
Edge e23 = new DirectedSparseEdge(v2, v3);
e23.setUserDatum("ID", "23", UserData.SHARED);
e23.setUserDatum("Name", "myEdge23", UserData.SHARED);
e23.setUserDatum("Description", "myEdge 23 description", UserData.SHARED);
e23.setUserDatum("Deepness", 1, UserData.SHARED);
g.addEdge(e23);
Edge e13 = new DirectedSparseEdge(v1, v3);
e13.setUserDatum("ID", "13", UserData.SHARED);
e13.setUserDatum("Name", "myEdge13", UserData.SHARED);
e13.setUserDatum("Description", "myEdge 13 description", UserData.SHARED);
e13.setUserDatum("Deepness", 1, UserData.SHARED);
g.addEdge(e13);
Edge e34= new DirectedSparseEdge(v3,v4);
e34.setUserDatum("ID", "34", UserData.SHARED);
e34.setUserDatum("Name", "myEdge34", UserData.SHARED);
e34.setUserDatum("Description", "myEdge 34 description", UserData.SHARED);
e34.setUserDatum("Deepness", 1, UserData.SHARED);
g.addEdge(e34);
return g;
}
/**
*
* @return VisualizationViewer
*/
public static VisualizationViewer getG() {
VisualizationViewer vv;
try {
g = getGraph();
PluggableRenderer pr = new PluggableRenderer();
vv = new VisualizationViewer(new TemporalSpringLayout(g,20), pr);
return vv;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}