提交 ec57bc71 编写于 作者: E Eduardo Ramos

Fix #1516 Edge labels not retained on graphml export

上级 5695cad0
......@@ -444,10 +444,19 @@ public class ExporterGraphML implements GraphExporter, CharacterExporter, LongTa
Element weightE = createEdgeWeight(document, e, graph);
edgeE.appendChild(weightE);
if (e.isDirected() && !graph.isDirected()) {
edgeE.setAttribute("type", "directed");
} else if (!e.isDirected() && graph.isDirected()) {
edgeE.setAttribute("type", "undirected");
boolean directedEdgeDefault = graph.isDirected() || graph.isMixed();
if (e.isDirected() && !directedEdgeDefault) {
edgeE.setAttribute("directed", "true");
} else if (!e.isDirected() && directedEdgeDefault) {
edgeE.setAttribute("directed", "false");
}
if (e.getTypeLabel() != null) {
//Edge labels not retained on graphml export https://github.com/gephi/gephi/issues/1516
String typeLabel = e.getTypeLabel().toString().trim();
if (!typeLabel.isEmpty()) {
edgeE.setAttribute("label", typeLabel);
}
}
//Attribute values
......
Manifest-Version: 1.0
AutoUpdate-Essential-Module: true
OpenIDE-Module-Localizing-Bundle: org/gephi/io/exporter/plugin/Bundle.properties
OpenIDE-Module-Specification-Version: ${gephi.modules.specification.version}
OpenIDE-Module-Specification-Version: 0.9.2.1
OpenIDE-Module-Display-Category: Plugin
OpenIDE-Module-Name: Export Plugin
......@@ -85,6 +85,7 @@ public class ImporterGraphML implements FileImporter, LongTask {
private static final String EDGE_SOURCE = "source";
private static final String EDGE_TARGET = "target";
private static final String EDGE_DIRECTED = "directed";
private static final String EDGE_TYPE = "label";
private static final String ATTRIBUTE = "key";
private static final String ATTRIBUTE_ID = "id";
private static final String ATTRIBUTE_TITLE = "attr.name";
......@@ -371,6 +372,7 @@ public class ImporterGraphML implements FileImporter, LongTask {
String source = "";
String target = "";
String directed = "";
String type = null;
//Attributes
for (int i = 0; i < reader.getAttributeCount(); i++) {
......@@ -383,6 +385,8 @@ public class ImporterGraphML implements FileImporter, LongTask {
id = reader.getAttributeValue(i);
} else if (EDGE_DIRECTED.equalsIgnoreCase(attName)) {
directed = reader.getAttributeValue(i);
} else if (EDGE_TYPE.equalsIgnoreCase(attName)) {
type = reader.getAttributeValue(i).trim();
}
}
......@@ -398,6 +402,10 @@ public class ImporterGraphML implements FileImporter, LongTask {
NodeDraft nodeTarget = container.getNode(target);
edge.setSource(nodeSource);
edge.setTarget(nodeTarget);
if (type != null && !type.isEmpty()) {
//Edge labels not retained on graphml export https://github.com/gephi/gephi/issues/1516
edge.setType(type);
}
//Type
if (!directed.isEmpty()) {
......@@ -415,9 +423,9 @@ public class ImporterGraphML implements FileImporter, LongTask {
boolean end = false;
while (reader.hasNext() && !end) {
int type = reader.next();
int elemType = reader.next();
switch (type) {
switch (elemType) {
case XMLStreamReader.START_ELEMENT:
if (ATTVALUE.equalsIgnoreCase(xmlReader.getLocalName())) {
readEdgeAttValue(reader, edge);
......@@ -562,7 +570,7 @@ public class ImporterGraphML implements FileImporter, LongTask {
property = true;
}
}
if (property) {
return;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册