ni_nitdoc: Adding inheritance column in class page
authorStefan Lage <lagestfan@gmail.com>
Fri, 28 Jun 2013 21:02:12 +0000 (17:02 -0400)
committerStefan Lage <lagestfan@gmail.com>
Wed, 3 Jul 2013 20:54:24 +0000 (16:54 -0400)
Signed-off-by: Stefan Lage <lagestfan@gmail.com>

src/ni_nitdoc.nit

index 4548e0f..bb938ef 100644 (file)
@@ -690,6 +690,7 @@ class NitdocMClasses
        fun add_content do
                open("div").add_class("menu")
                properties_column
+               inheritance_column
                close("div")
                open("div").add_class("content")
                close("div")
@@ -736,6 +737,34 @@ class NitdocMClasses
                close("nav")
        end
 
+       fun inheritance_column do
+               open("nav")
+               add("h3").text("Inheritance")
+               if mclass.parents.length > 0 then
+                       add("h4").text("Superclasses")
+                       open("ul")
+                       for sup in mclass.parents do add_html("<li><a href=\"{sup.name}.html\">{sup.name}</a></li>")
+                       close("ul")
+               end
+
+               if mclass.descendants.length is 0 then
+                       add("h4").text("No Known Subclasses")
+               else if mclass.descendants.length <= 100 then
+                       add("h4").text("Subclasses")
+                       open("ul")
+                       for sub in mclass.descendants do add_html("<li><a href=\"{sub.name}\">{sub.name}</a></li>")
+                       close("ul")
+               else if mclass.children.length <= 100 then
+                       add("h4").text("Direct Subclasses Only")
+                       open("ul")
+                       for sub in mclass.children do add_html("<li><a href=\"{sub.name}\">{sub.name}</a></li>")
+                       close("ul")
+               else
+                       add("h4").text("Too much Subclasses to list")
+               end
+               close("nav")
+       end
+
 end    
 
 class NitdocPage