use of org.gephi.graph.api.Edge in project gephi by gephi.
the class ImportNGTest method checkWeightsSummed.
private void checkWeightsSummed(boolean multipleContainers) {
Graph graph = processMergeWeightsTestGraph(multipleContainers);
Assert.assertEquals(graph.getNodeCount(), 2);
Assert.assertEquals(graph.getEdgeCount(), 3);
Edge edge12 = graph.getEdge(graph.getNode("1"), graph.getNode("2"));
Assert.assertNotNull(edge12);
Assert.assertEquals(edge12.getWeight(), 6.2);
}
use of org.gephi.graph.api.Edge in project gephi by gephi.
the class ExporterSpreadsheet method exportData.
private void exportData(Graph graph) throws Exception {
final CSVFormat format = CSVFormat.DEFAULT.withDelimiter(fieldDelimiter);
try (CSVPrinter csvWriter = new CSVPrinter(writer, format)) {
boolean isEdgeTable = tableToExport != ExportTable.NODES;
Table table = isEdgeTable ? graph.getModel().getEdgeTable() : graph.getModel().getNodeTable();
ElementIterable<? extends Element> rows;
Object[] edgeLabels = graph.getModel().getEdgeTypeLabels();
boolean includeEdgeKindColumn = false;
for (Object edgeLabel : edgeLabels) {
if (edgeLabel != null && !edgeLabel.toString().isEmpty()) {
includeEdgeKindColumn = true;
}
}
TimeFormat timeFormat = graph.getModel().getTimeFormat();
DateTimeZone timeZone = graph.getModel().getTimeZone();
List<Column> columns = new ArrayList<>();
if (columnIdsToExport != null) {
for (String columnId : columnIdsToExport) {
Column column = table.getColumn(columnId);
if (column != null) {
columns.add(column);
}
}
} else {
for (Column column : table) {
columns.add(column);
}
}
// Write column headers:
if (isEdgeTable) {
csvWriter.print("Source");
csvWriter.print("Target");
csvWriter.print("Type");
if (includeEdgeKindColumn) {
csvWriter.print("Kind");
}
}
for (Column column : columns) {
// Use the title only if it's the same as the id (case insensitive):
String columnId = column.getId();
String columnTitle = column.getTitle();
String columnHeader = columnId.equalsIgnoreCase(columnTitle) ? columnTitle : columnId;
csvWriter.print(columnHeader);
}
csvWriter.println();
// Write rows:
if (isEdgeTable) {
rows = graph.getEdges();
} else {
rows = graph.getNodes();
}
for (Element row : rows) {
if (isEdgeTable) {
Edge edge = (Edge) row;
csvWriter.print(edge.getSource().getId());
csvWriter.print(edge.getTarget().getId());
csvWriter.print(edge.isDirected() ? "Directed" : "Undirected");
if (includeEdgeKindColumn) {
csvWriter.print(edge.getTypeLabel().toString());
}
}
for (Column column : columns) {
Object value = row.getAttribute(column);
String text;
if (value != null) {
if (value instanceof Number) {
text = NUMBER_FORMAT.format(value);
} else {
text = AttributeUtils.print(value, timeFormat, timeZone);
}
} else {
text = "";
}
csvWriter.print(text);
}
csvWriter.println();
}
}
}
use of org.gephi.graph.api.Edge in project gephi by gephi.
the class FilterControllerImpl method exportToLabelVisible.
@Override
public void exportToLabelVisible(Query query) {
Graph result;
if (model.getCurrentQuery() == query) {
GraphView view = model.getCurrentResult();
if (view == null) {
return;
}
result = model.getGraphModel().getGraph(view);
} else {
FilterProcessor processor = new FilterProcessor();
result = (Graph) processor.process((AbstractQueryImpl) query, model.getGraphModel());
}
Graph fullGraph = model.getGraphModel().getGraph();
fullGraph.writeLock();
try {
for (Node n : fullGraph.getNodes()) {
boolean inView = result.contains(n);
n.getTextProperties().setVisible(inView);
}
for (Edge e : fullGraph.getEdges()) {
boolean inView = result.contains(e);
e.getTextProperties().setVisible(inView);
}
} finally {
fullGraph.writeUnlock();
fullGraph.readUnlockAll();
}
}
use of org.gephi.graph.api.Edge in project gephi by gephi.
the class ExporterCSV method writeEdge.
private void writeEdge(EdgeIterable edges, boolean writeSeparator) throws IOException {
float weight = 0;
boolean anyEdge = false;
for (Edge edge : edges) {
anyEdge = true;
weight += edge.getWeight();
}
if (anyEdge) {
if (edgeWeight) {
writer.append(FORMAT.format(weight));
} else {
writer.append(FORMAT.format(1.0));
}
} else {
if (writeZero) {
writer.append("0");
}
}
if (writeSeparator) {
writer.append(SEPARATOR);
}
}
use of org.gephi.graph.api.Edge in project gephi by gephi.
the class ExporterCSV method exportData.
private void exportData(Graph graph) throws Exception {
int max = graph.getNodeCount();
Progress.start(progressTicket, max);
if (!list) {
if (header) {
writer.append(SEPARATOR);
int i = 0;
NodeIterable itr = graph.getNodes();
for (Node node : itr) {
writeMatrixNode(node, i++ < max - 1);
if (cancel) {
itr.doBreak();
return;
}
}
writer.append(EOL);
}
}
if (list) {
NodeIterable itr = graph.getNodes();
for (Node n : itr) {
List<Node> neighbours = new ArrayList<>();
for (Edge e : graph.getEdges(n)) {
if (!e.isDirected() || (e.isDirected() && n == e.getSource())) {
Node m = graph.getOpposite(n, e);
neighbours.add(m);
}
}
writeListNode(n, !neighbours.isEmpty());
for (int j = 0; j < neighbours.size(); j++) {
writeListNode(neighbours.get(j), j < neighbours.size() - 1);
}
writer.append(EOL);
if (cancel) {
itr.doBreak();
return;
}
}
} else {
Node[] nodes = graph.getNodes().toArray();
for (Node n : nodes) {
if (cancel) {
return;
}
writeMatrixNode(n, true);
for (int j = 0; j < nodes.length; j++) {
Node m = nodes[j];
EdgeIterable edges = graph.getEdges(n, m);
writeEdge(edges, j < nodes.length - 1);
}
Progress.progress(progressTicket);
writer.append(EOL);
}
}
Progress.finish(progressTicket);
}
Aggregations