diff --git a/modules/ImportPlugin/src/main/java/org/gephi/io/importer/plugin/file/ImporterGraphML.java b/modules/ImportPlugin/src/main/java/org/gephi/io/importer/plugin/file/ImporterGraphML.java index ba6c747e80b57f8c98d7dd37ba6338371f90e696..cdf24cc2f6661c0c2963a58dd878262098dcf069 100644 --- a/modules/ImportPlugin/src/main/java/org/gephi/io/importer/plugin/file/ImporterGraphML.java +++ b/modules/ImportPlugin/src/main/java/org/gephi/io/importer/plugin/file/ImporterGraphML.java @@ -96,6 +96,7 @@ public class ImporterGraphML implements FileImporter, LongTask { //Architecture private Reader reader; private ContainerLoader container; + private EdgeDraft.EdgeType edgeDefault; private boolean cancel; private Report report; private ProgressTicket progress; @@ -198,11 +199,18 @@ public class ImporterGraphML implements FileImporter, LongTask { } //Edge Type + // Container edge type should NOT be set to default edge type, as this is + // not what it really means. Mixed is the appropriate type, as GraphML supports + // mixed edge types. + + container.setEdgeDefault(EdgeDefault.MIXED); + edgeDefault = EdgeDraft.EdgeType.DIRECTED; + if (!defaultEdgeType.isEmpty()) { if (defaultEdgeType.equalsIgnoreCase("undirected")) { - container.setEdgeDefault(EdgeDefault.UNDIRECTED); + edgeDefault = EdgeDraft.EdgeType.UNDIRECTED; } else if (defaultEdgeType.equalsIgnoreCase("directed")) { - container.setEdgeDefault(EdgeDefault.DIRECTED); + edgeDefault = EdgeDraft.EdgeType.DIRECTED; } else { report.logIssue(new Issue(NbBundle.getMessage(ImporterGraphML.class, "importerGraphML_error_defaultedgetype", defaultEdgeType), Issue.Level.SEVERE)); } @@ -396,7 +404,10 @@ public class ImporterGraphML implements FileImporter, LongTask { edge.setType(EdgeDraft.EdgeType.UNDIRECTED); } else { report.logIssue(new Issue(NbBundle.getMessage(ImporterGraphML.class, "importerGraphML_error_edgetype", directed, edge), Issue.Level.SEVERE)); + edge.setType(edgeDefault); } + } else { + edge.setType(edgeDefault); } //Id