Skip to content
This repository was archived by the owner on Oct 8, 2020. It is now read-only.

Commit 7c475fe

Browse files
Adapted new JGraph(T) version.
1 parent c94cf8c commit 7c475fe

1 file changed

Lines changed: 43 additions & 46 deletions

File tree

  • sansa-inference-common/src/main/scala/net/sansa_stack/inference/utils

sansa-inference-common/src/main/scala/net/sansa_stack/inference/utils/GraphUtils.scala

Lines changed: 43 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
package net.sansa_stack.inference.utils
22

33
import java.io.{ByteArrayOutputStream, File, FileOutputStream, FileWriter}
4-
import java.nio.charset.StandardCharsets
5-
import java.nio.file.{Files, Paths}
64

7-
import scala.collection.JavaConverters._
85
import scalax.collection.edge.LDiEdge
96

107
import com.itextpdf.text.PageSize
@@ -24,7 +21,7 @@ import org.gephi.preview.types.EdgeColor
2421
import org.gephi.project.api.ProjectController
2522
import org.jgrapht.DirectedGraph
2623
import org.jgrapht.alg.isomorphism.VF2GraphIsomorphismInspector
27-
import org.jgrapht.ext.{EdgeNameProvider, VertexNameProvider, _}
24+
import org.jgrapht.ext._
2825
import org.jgrapht.graph._
2926
import org.openide.util.Lookup
3027

@@ -126,36 +123,36 @@ object GraphUtils {
126123

127124
// In order to be able to export edge and node labels and IDs,
128125
// we must implement providers for them
129-
val vertexIDProvider = new VertexNameProvider[Rule]() {
130-
override def getVertexName(v: Rule): String = v.getName
126+
val vertexIDProvider = new ComponentNameProvider[Rule]() {
127+
override def getName(v: Rule): String = v.getName
131128
}
132129

133-
val vertexNameProvider = new VertexNameProvider[Rule]() {
134-
override def getVertexName(v: Rule): String = v.getName
130+
val vertexNameProvider = new ComponentNameProvider[Rule]() {
131+
override def getName(v: Rule): String = v.getName
135132
}
136133

137-
val edgeIDProvider = new EdgeNameProvider[LabeledEdge[Rule, TriplePattern]]() {
138-
override def getEdgeName(edge: LabeledEdge[Rule, TriplePattern]): String = {
134+
val edgeIDProvider = new ComponentNameProvider[LabeledEdge[Rule, TriplePattern]]() {
135+
override def getName(edge: LabeledEdge[Rule, TriplePattern]): String = {
139136
g.getEdgeSource(edge) + " > " + g.getEdgeTarget(edge)
140137
}
141138
}
142139

143-
val edgeLabelProvider = new EdgeNameProvider[LabeledEdge[Rule, TriplePattern]]() {
144-
override def getEdgeName(e: LabeledEdge[Rule, TriplePattern]): String = e.label.toString
140+
val edgeLabelProvider = new ComponentNameProvider[LabeledEdge[Rule, TriplePattern]]() {
141+
override def getName(e: LabeledEdge[Rule, TriplePattern]): String = e.label.toString
145142
}
146143

147144
// val exporter = new GraphMLExporter[String,LabeledEdge](
148145
// vertexIDProvider, vertexNameProvider, edgeIDProvider,edgeLabelProvider)
149146

150147
val exporter = new GraphMLExporter[Rule, LabeledEdge[Rule, TriplePattern]](
151-
new IntegerNameProvider[Rule],
148+
new IntegerComponentNameProvider[Rule],
152149
vertexNameProvider,
153-
new IntegerEdgeNameProvider[LabeledEdge[Rule, TriplePattern]],
150+
new IntegerComponentNameProvider[LabeledEdge[Rule, TriplePattern]],
154151
edgeLabelProvider)
155152

156153
val fw = new FileWriter(filename)
157154

158-
exporter.export(fw, g)
155+
exporter.exportGraph(g, fw)
159156
}
160157

161158
def exportAsPDF(filename: String): Unit = {
@@ -191,37 +188,37 @@ object GraphUtils {
191188
val g = graphModel.getDirectedGraph()
192189

193190
// Run YifanHuLayout for 100 passes - The layout always takes the current visible view
194-
val layout = new YifanHuLayout(null, new StepDisplacement(1f));
195-
layout.setGraphModel(graphModel);
196-
layout.resetPropertiesValues();
197-
layout.setOptimalDistance(200f);
191+
val layout = new YifanHuLayout(null, new StepDisplacement(1f))
192+
layout.setGraphModel(graphModel)
193+
layout.resetPropertiesValues()
194+
layout.setOptimalDistance(200f)
198195

199-
layout.initAlgo();
196+
layout.initAlgo()
200197
for (i <- 0 to 100 if layout.canAlgo()) {
201-
layout.goAlgo();
198+
layout.goAlgo()
202199
}
203-
layout.endAlgo();
204-
205-
val model = Lookup.getDefault().lookup(classOf[PreviewController]).getModel();
206-
model.getProperties().putValue(PreviewProperty.SHOW_NODE_LABELS, true);
207-
model.getProperties().putValue(PreviewProperty.SHOW_EDGE_LABELS, true);
208-
model.getProperties().putValue(PreviewProperty.EDGE_CURVED, false);
209-
model.getProperties().putValue(PreviewProperty.EDGE_COLOR, new EdgeColor(java.awt.Color.GRAY));
210-
model.getProperties().putValue(PreviewProperty.EDGE_THICKNESS, 0.1f);
211-
model.getProperties().putValue(PreviewProperty.NODE_LABEL_FONT, model.getProperties().getFontValue(PreviewProperty.NODE_LABEL_FONT).deriveFont(8));
200+
layout.endAlgo()
201+
202+
val model = Lookup.getDefault().lookup(classOf[PreviewController]).getModel()
203+
model.getProperties().putValue(PreviewProperty.SHOW_NODE_LABELS, true)
204+
model.getProperties().putValue(PreviewProperty.SHOW_EDGE_LABELS, true)
205+
model.getProperties().putValue(PreviewProperty.EDGE_CURVED, false)
206+
model.getProperties().putValue(PreviewProperty.EDGE_COLOR, new EdgeColor(java.awt.Color.GRAY))
207+
model.getProperties().putValue(PreviewProperty.EDGE_THICKNESS, 0.1f)
208+
model.getProperties().putValue(PreviewProperty.NODE_LABEL_FONT, model.getProperties().getFontValue(PreviewProperty.NODE_LABEL_FONT).deriveFont(8))
212209
model.getProperties.putValue(Item.NODE_LABEL, "Vertex Label")
213210

214211

215212
// Export full graph
216-
val ec = Lookup.getDefault().lookup(classOf[ExportController]);
213+
val ec = Lookup.getDefault().lookup(classOf[ExportController])
217214
// ec.exportFile(new File("io_gexf.gexf"));
218215

219216
// PDF Exporter config and export to Byte array
220-
val pdfExporter = ec.getExporter("pdf").asInstanceOf[PDFExporter];
221-
pdfExporter.setPageSize(PageSize.A0);
222-
pdfExporter.setWorkspace(workspace);
223-
val baos = new ByteArrayOutputStream();
224-
ec.exportStream(baos, pdfExporter);
217+
val pdfExporter = ec.getExporter("pdf").asInstanceOf[PDFExporter]
218+
pdfExporter.setPageSize(PageSize.A0)
219+
pdfExporter.setWorkspace(workspace)
220+
val baos = new ByteArrayOutputStream()
221+
ec.exportStream(baos, pdfExporter)
225222
new FileOutputStream(filename + ".pdf").write(baos.toByteArray())
226223
}
227224
}
@@ -320,31 +317,31 @@ object GraphUtils {
320317

321318
// In order to be able to export edge and node labels and IDs,
322319
// we must implement providers for them
323-
val vertexIDProvider = new VertexNameProvider[Node]() {
324-
override def getVertexName(v: Node): String = v.toString(PrefixMapping.Standard)
320+
val vertexIDProvider = new ComponentNameProvider[Node]() {
321+
override def getName(v: Node): String = v.toString(PrefixMapping.Standard)
325322
}
326323

327-
val vertexNameProvider = new VertexNameProvider[Node]() {
328-
override def getVertexName(v: Node): String = v.toString(PrefixMapping.Standard)
324+
val vertexNameProvider = new ComponentNameProvider[Node]() {
325+
override def getName(v: Node): String = v.toString(PrefixMapping.Standard)
329326
}
330327

331-
val edgeIDProvider = new EdgeNameProvider[LabeledEdge[Node, Node]]() {
332-
override def getEdgeName(edge: LabeledEdge[Node, Node]): String = {
328+
val edgeIDProvider = new ComponentNameProvider[LabeledEdge[Node, Node]]() {
329+
override def getName(edge: LabeledEdge[Node, Node]): String = {
333330
g.getEdgeSource(edge).toString(PrefixMapping.Standard) + " > " + edge.label + " > " + g.getEdgeTarget(edge).toString(PrefixMapping.Standard)
334331
}
335332
}
336333

337-
val edgeLabelProvider = new EdgeNameProvider[LabeledEdge[Node, Node]]() {
338-
override def getEdgeName(e: LabeledEdge[Node, Node]): String = e.label.toString
334+
val edgeLabelProvider = new ComponentNameProvider[LabeledEdge[Node, Node]]() {
335+
override def getName(e: LabeledEdge[Node, Node]): String = e.label.toString
339336
}
340337

341338
// val exporter = new GraphMLExporter[String,LabeledEdge](
342339
// vertexIDProvider, vertexNameProvider, edgeIDProvider,edgeLabelProvider)
343340

344341
val exporter = new GraphMLExporter[Node, LabeledEdge[Node, Node]](
345-
new IntegerNameProvider[Node],
342+
new IntegerComponentNameProvider[Node],
346343
vertexNameProvider,
347-
new IntegerEdgeNameProvider[LabeledEdge[Node, Node]],
344+
new IntegerComponentNameProvider[LabeledEdge[Node, Node]],
348345
edgeLabelProvider)
349346

350347
val fw = new FileWriter(filename)

0 commit comments

Comments
 (0)