Revert "File.js"
[app.Builder.js] / DependTree / BuildLists.js
index 1250e7f..da200d5 100644 (file)
@@ -27,15 +27,14 @@ GLib        = imports.gi.GLib;
 GIRepository.IRepository.prepend_search_path(GLib.get_home_dir() + '/.Builder/girepository-1.1');
 
 
-imports.searchPath.push('../../gnome.introspection-doc-generator');
+imports.searchPath.push('../gnome.introspection-doc-generator');
 
 XObject     = imports.XObject.XObject;
 File        = imports.File.File; 
  
 // Introspecion specific..
 NameSpace   = imports.Introspect.NameSpace.NameSpace; 
-Link        = imports.Introspect.Link.Link; 
-
 
 
 function BuildLists () {
@@ -69,10 +68,12 @@ function BuildLists () {
     var implementations = {};
     var methods = {};
     var allmethods = [];  
+    var allchildren = [];  
+    
     
     for (cls in classes) {
         var odata = classes[cls];
-        methods[cls] = {}
+        //methods[cls] = {}
            
         implementations[odata.alias] = odata.titleType == 'Class' ? odata.childClasses :  odata.implementedBy;  
         //print(JSON.stringify(odata.methods,null,4));
@@ -85,18 +86,31 @@ function BuildLists () {
                 }
                 // now add it..
                 
-                var full_method_name = p.memberOf + '.' + p.type;
-                if (allmethods.indexOf(full_method_name) < 0) {
-                    allmethods.push(full_method_name);
+                if (!p.type || typeof(classes[p.type]) == 'undefined') {
+                    return;
+                }
+                if (allchildren.indexOf(p.type) < 0) {
+                    allchildren.push(p.type);
+                }
+                
+                if (typeof(methods[cls]) == 'undefined') {
+                    methods[cls] = {}
                 }
                 
-                if (typeof(methods[cls][full_method_name]) == 'undefined') {
-                    methods[cls][full_method_name] = [];
+                if (typeof(methods[cls][p.type]) == 'undefined') {
+                    methods[cls][p.type] = [];
                 }
-                if (methods[cls][full_method_name].indexOf(m.name) > -1) {
+                var fullname = m.memberOf + '.' + m.name;
+                if (allmethods.indexOf(fullname) < 0) {
+                    allmethods.push(fullname);
+                }
+                
+                if (methods[cls][p.type].indexOf(fullname) > -1) {
                     return;
                 }
-                methods[cls][full_method_name].push(m.name);
+                methods[cls][p.type].push(fullname);
+                 
+                
                 
             });
             
@@ -108,14 +122,23 @@ function BuildLists () {
         
     }
     this.methods = methods;
-    this.allmethods = methods;
+    this.allmethods = allmethods;
+    this.allchildren = allchildren;
+
     this.implementations = implementations;
+    
     //print(JSON.stringify(methods,null,4));
     //print(JSON.stringify(implementations,null,4));
     
 }
 
 
+
+
+
+
+
+
 // we now have a list of classes / methods that can be used..
 // we now need a ui to flag stuff as "don't bother with"