use of org.gephi.graph.api.Graph in project gephi by gephi.
the class LegacyGraphPersistenceProvider method readTreeStructure.
public void readTreeStructure(XMLStreamReader reader, GraphModel graphModel, GraphFactory factory, LegacyMapHelper mapHelper) throws XMLStreamException {
Graph graph = graphModel.getGraph();
boolean end = false;
while (reader.hasNext() && !end) {
int type = reader.next();
switch(type) {
case XMLStreamReader.START_ELEMENT:
String name = reader.getLocalName();
if (ELEMENT_TREESTRUCTURE_NODE.equalsIgnoreCase(name)) {
String id = reader.getAttributeValue(null, "id");
String pre = reader.getAttributeValue(null, "pre");
mapHelper.preToIdMap.put(pre, id);
Node node = factory.newNode(id);
graph.addNode(node);
}
break;
case XMLStreamReader.END_ELEMENT:
if (ELEMENT_TREESTRUCTURE.equalsIgnoreCase(reader.getLocalName())) {
end = true;
}
break;
}
}
}
use of org.gephi.graph.api.Graph in project gephi by gephi.
the class ExporterPajek method execute.
@Override
public boolean execute() {
GraphModel graphModel = workspace.getLookup().lookup(GraphModel.class);
Graph graph = exportVisible ? graphModel.getGraphVisible() : graphModel.getGraph();
graph.readLock();
try {
exportData(graph);
} catch (Exception e) {
Logger.getLogger(ExporterPajek.class.getName()).log(Level.SEVERE, null, e);
} finally {
graph.readUnlock();
Progress.finish(progressTicket);
}
return !cancel;
}
use of org.gephi.graph.api.Graph in project gephi by gephi.
the class ExporterVNA method execute.
@Override
public boolean execute() {
GraphModel graphModel = workspace.getLookup().lookup(GraphModel.class);
Graph graph = exportVisible ? graphModel.getGraphVisible() : graphModel.getGraph();
graph.readLock();
//nodes are counted twice, because they are printed in exportNodeData and exportNodeProperties
Progress.start(progressTicket, graph.getNodeCount() * 2 + graph.getEdgeCount());
try {
exportData(graph);
} catch (Exception e) {
Logger.getLogger(ExporterVNA.class.getName()).log(Level.SEVERE, null, e);
} finally {
graph.readUnlock();
Progress.finish(progressTicket);
}
return !cancel;
}
use of org.gephi.graph.api.Graph in project gephi by gephi.
the class HeatMap method getListeners.
@Override
public ToolEventListener[] getListeners() {
listeners = new ToolEventListener[1];
listeners[0] = new NodeClickEventListener() {
@Override
public void clickNodes(Node[] nodes) {
try {
Node n = nodes[0];
Color[] colors;
float[] positions;
if (heatMapPanel.isUsePalette()) {
colors = heatMapPanel.getSelectedPalette().getColors();
positions = heatMapPanel.getSelectedPalette().getPositions();
dontPaintUnreachable = true;
} else {
gradientColors = colors = heatMapPanel.getGradientColors();
gradientPositions = positions = heatMapPanel.getGradientPositions();
dontPaintUnreachable = heatMapPanel.isDontPaintUnreachable();
}
GraphController gc = Lookup.getDefault().lookup(GraphController.class);
AbstractShortestPathAlgorithm algorithm;
if (gc.getGraphModel().isDirected()) {
DirectedGraph graph = gc.getGraphModel().getDirectedGraphVisible();
algorithm = new BellmanFordShortestPathAlgorithm(graph, n);
algorithm.compute();
} else {
Graph graph = gc.getGraphModel().getGraphVisible();
algorithm = new DijkstraShortestPathAlgorithm(graph, n);
algorithm.compute();
}
//Color
LinearGradient linearGradient = new LinearGradient(colors, positions);
//Algorithm
double maxDistance = algorithm.getMaxDistance();
if (!dontPaintUnreachable) {
//+1 to have the maxdistance nodes a ratio<1
maxDistance++;
}
if (maxDistance > 0) {
for (Entry<Node, Double> entry : algorithm.getDistances().entrySet()) {
Node node = entry.getKey();
if (!Double.isInfinite(entry.getValue())) {
float ratio = (float) (entry.getValue() / maxDistance);
Color c = linearGradient.getValue(ratio);
node.setColor(c);
} else if (!dontPaintUnreachable) {
Color c = colors[colors.length - 1];
node.setColor(c);
}
}
}
Color c = colors[0];
n.setColor(c);
heatMapPanel.setStatus(NbBundle.getMessage(HeatMap.class, "HeatMap.status.maxdistance") + new DecimalFormat("#.##").format(algorithm.getMaxDistance()));
} catch (Exception e) {
Logger.getLogger("").log(Level.SEVERE, "", e);
}
}
};
return listeners;
}
use of org.gephi.graph.api.Graph in project gephi by gephi.
the class WeightedDegreeNGTest method testCyclicGraphDegree.
@Test
public void testCyclicGraphDegree() {
GraphModel graphModel = GraphGenerator.generateCyclicUndirectedGraph(5);
Graph graph = graphModel.getGraph();
Node n = graph.getNode("3");
WeightedDegree d = new WeightedDegree();
d.execute(graph);
double degree = (Double) n.getAttribute(WeightedDegree.WDEGREE);
double avDegree = d.getAverageDegree();
assertEquals(degree, 2.0);
assertEquals(avDegree, 2.0);
}
Aggregations