nitlanguage
/
nit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge: Bench scripts
[nit.git]
/
src
/
model_viz.nit
diff --git
a/src/model_viz.nit
b/src/model_viz.nit
index
1471a49
..
2d0d9bb
100644
(file)
--- a/
src/model_viz.nit
+++ b/
src/model_viz.nit
@@
-39,9
+39,7
@@
class MProjectTree
end
end
end
end
- var alpha_comparator = new AlphaComparator
-
- var linex_comparator: nullable LinexComparator = null
+ private var linex_comparator: nullable LinexComparator = null
# Sort modules and groups with their names
fun sort_with_alpha
# Sort modules and groups with their names
fun sort_with_alpha
@@
-61,16
+59,10
@@
class MProjectTree
end
end
end
end
-# Just compare objects by using the `to_s` method
-private class AlphaComparator
- super AbstractSorter[Object]
- redef fun compare(a,b) do return a.to_s <=> b.to_s
-end
-
# Compare modules and groups using the
# FIXME do not use Object, but a better common interface of MModule and MGroup
private class LinexComparator
# Compare modules and groups using the
# FIXME do not use Object, but a better common interface of MModule and MGroup
private class LinexComparator
- super AbstractSorter[Object]
+ super Comparator[Object]
var mins = new HashMap [MGroup, nullable MModule]
var maxs = new HashMap [MGroup, nullable MModule]
fun min(o: Object): nullable MModule do
var mins = new HashMap [MGroup, nullable MModule]
var maxs = new HashMap [MGroup, nullable MModule]
fun min(o: Object): nullable MModule do
@@
-143,6
+135,8
@@
end
# Interessing elements must be selected. See `mmodules`, ``
# Display configuration can be set. See `cluster_group`, `project_group`
class MProjectDot
# Interessing elements must be selected. See `mmodules`, ``
# Display configuration can be set. See `cluster_group`, `project_group`
class MProjectDot
+ super Streamable
+
# The model where to look for information
var model: Model
# The model where to look for information
var model: Model
@@
-218,12
+212,13
@@
class MProjectDot
end
end
end
end
- # Generate the dot-file named `filepath` with the current configuration
- fun render(filepath: String)
+ # Generate the dot content with the current configuration
+ redef fun write_to(stream)
do
# Collect interessing nodes
for m in model.mmodules do
# filter out modules outside wanted projects
do
# Collect interessing nodes
for m in model.mmodules do
# filter out modules outside wanted projects
+ if m.mgroup == null then continue
if not mprojects.has(m.mgroup.mproject) then continue
mmodules.add(m)
if not mprojects.has(m.mgroup.mproject) then continue
mmodules.add(m)
@@
-242,13
+237,11
@@
class MProjectDot
end
end
end
end
- print "generating {filepath}"
- var dot = new OFStream.open(filepath)
- dot.write("digraph g \{\n")
- dot.write("rankdir=BT;node[shape=box];\n")
+ stream.write("digraph g \{\n")
+ stream.write("rankdir=BT;node[shape=box];\n")
# Generate the nodes
for p in model.mprojects do
# Generate the nodes
for p in model.mprojects do
- dot_cluster(dot, p.root.as(not null))
+ dot_cluster(stream, p.root.as(not null))
end
# Generate the edges
for m in mmodules do
end
# Generate the edges
for m in mmodules do
@@
-256,14
+249,12
@@
class MProjectDot
var nm = node_for(m)
var nsm = node_for(sm)
if m.in_importation.direct_greaters.has(sm) then
var nm = node_for(m)
var nsm = node_for(sm)
if m.in_importation.direct_greaters.has(sm) then
- dot.write("\t{nm} -> {nsm}[style=bold]\n")
+ stream.write("\t{nm} -> {nsm}[style=bold]\n")
else
else
- dot.write("\t{nm} -> {nsm}[style=solid]\n")
+ stream.write("\t{nm} -> {nsm}[style=solid]\n")
end
end
end
end
end
end
- dot.write("\}\n")
- dot.close
- # sys.system("xdot -f dot {filepath}")
+ stream.write("\}\n")
end
end
end
end