Objects updates
[findit] / src / debs / search.py
index d56e570..e8267ee 100755 (executable)
@@ -5,62 +5,58 @@
 import gtk
 #import apt_pkg
 from heapq import nlargest
-from misc import size_hum_read
+import gtk ###
 
-class Search_Pkg_Control(object):
+from misc import *
 
-    def __init__(self, config, show_funct):
-        count = config.get('default_pkg_count')
-        self.show_func = show_funct
-        self.abstr = Search_Pkg_Abstraction()
-        self.present = Search_Pkg_Presentation(count, self.start_search)
-
-    def start_search(self, count, show_type):
-        pkglist = []
-        for psize, packg in nlargest(count, self.abstr.pkggetter()):
-            pkglist.append([packg, size_hum_read(psize), psize])
-        
-        if show_type is 'table_view':
-            from outtable import Out_Table_Control
-            out = Out_Table_Control()
-        #elif show_type is 'diag_view':
-        #    from outdiag import Out_Diag_Control
-        #    out = Out_Diag_Control(self.cfg)
-        out.show(pkglist, self.abstr.full())
-        self.show_func(None, out.get_ui())
-
-    def get_ui(self):
-        return self.present.get_ui()
+#==============================================================================
 
-class Search_Pkg_Abstraction(object):
+class Control(object):
 
     def __init__(self):
-        apt_pkg.InitConfig()
-        apt_pkg.InitSystem()
-        self.cache = apt_pkg.GetCache()
-
-    def pkggetter(self):
-        self.fullsize = 0
-        for pkg in self.cache.Packages:
-            # pkg is from a list of packages, sorted by name.
-            if pkg.CurrentState == apt_pkg.CurStateInstalled:
-                pkgsize = [version.InstalledSize for version in pkg.VersionList][0]
-                self.fullsize = self.fullsize + pkgsize
-                yield pkgsize, pkg.Name
-
-    def full(self):
-        return self.fullsize
+        count = 7
+        self.abstrac = Abstraction()
+        self.present = Gtk_Presentation(count, self.start_search)
+
+    def start_search(self, count):
+        deblist = []
+#         for size, name in nlargest(count, self.abstrac.pkggetter()):
+#             deblist.append([name, size_hum_read(psize), size])
+        
+        self.search_present.show_out_toplevel(None, 'outtable', deblist)
+
+    def run(self):
+        return self.present.get_toplevel()
+
+class Abstraction(object):
+    pass
+#     def __init__(self):
+#         apt_pkg.InitConfig()
+#         apt_pkg.InitSystem()
+#         self.cache = apt_pkg.GetCache()
+# 
+#     def pkggetter(self):
+#         self.fullsize = 0
+#         for pkg in self.cache.Packages:
+#             # pkg is from a list of packages, sorted by name.
+#             if pkg.CurrentState == apt_pkg.CurStateInstalled:
+#                 pkgsize = [version.InstalledSize for version in pkg.VersionList][0]
+#                 self.fullsize = self.fullsize + pkgsize
+#                 yield pkgsize, pkg.Name
+# 
+#     def full(self):
+#         return self.fullsize
 
 
 #==============================================================================
 
 class Gtk_Presentation(object):
 
-    def __init__(self):
+    def __init__(self, count, start_func):
         import gtk
 
         # "Packages quantity" label
-        qty_label = gtk.Label('Files quantity')
+        qty_label = gtk.Label('Debian packages quantity')
 
         # "Packages quantity" spin
         qty_spin = gtk.SpinButton()
@@ -119,10 +115,11 @@ class Gtk_Presentation(object):
         return self.frame ###
 
     #=== Output type selecting ================================================
-    def show_out_toplevel(self, btn, output):
-        print 'Entering <' + output + '> output mode...'
-        from files.outtable import Gtk_Presentation ###
-        toplevel = Gtk_Presentation().get_toplevel()
+    def show_out_toplevel(self, btn, outtype):
+        print 'Entering <' + outtype + '> output mode...'
+
+        out_present = __import__('files.' + outtype, None, None, outtype)   ###
+        toplevel = out_present.Gtk_Presentation().get_toplevel()
         ###self.vbox.remove(self.vbox.get_children()[2])
         #self.vbox.add(toplevel)
         self.vbox.pack_start(toplevel)