def __init__(self):
from config import Config_Control
self.cfg = Config_Control()
-
- core_present = Core_Presentation(self.cfg.get('window_width'), \
- self.cfg.get('window_height'), self.chooser)
- core_present.run()
-
- def chooser(self, search_type, show_type):
- if show_type is 'table_view':
- from outtable import Out_Table_Control
- out = Out_Table_Control(self.cfg)
- elif show_type is 'diag_view':
- from outdiag import Out_Diag_Control
- out = Out_Diag_Control(self.cfg)
-
- if search_type is 'large_file':
- from filesearch import Search_File_Control
- search = Search_File_Control(self.cfg, out)
-
- elif search_type is 'large_pkg':
- from pkgsearch import Search_Pkg_Control
- search = Search_Pkg_Control(self.cfg, out)
-
- search.run()
+ core_present = Core_Presentation(self.cfg.get('window_width'), self.cfg.get('window_height'))
+
+ from pkgsearch import Search_Pkg_Control
+ searchpkg = Search_Pkg_Control(self.cfg, core_present.show_work_widget)
+
+ core_present.run(searchpkg.get_ui(), searchpkg.get_ui(), searchpkg.get_ui())
class Core_Abstraction(object):
pass
class Core_Presentation(gtk.Window):
"""Main window class."""
- def __init__(self, win_width, win_height, func_chooser):
+ def __init__(self, win_width, win_height):
gtk.Window.__init__(self)
self.set_default_size(win_width, win_height)
self.set_border_width(4)
self.connect('delete_event', gtk.main_quit)
self.set_wmclass('GtkWindow', 'FindIT')
- label1 = gtk.Label('Choice search type')
- srch_butt1 = gtk.RadioButton(None, 'Search Largest File')
- srch_butt1.connect('toggled', self.srch_type, 'large_file')
- srch_butt1.set_active(True)
- srch_butt2 = gtk.RadioButton(srch_butt1, 'Search Largest Package')
- srch_butt2.connect('toggled', self.srch_type, 'large_pkg')
- self.search = 'large_file'
- separator1 = gtk.HSeparator()
+ hbox = gtk.HBox(False, 4)
+ self.srch_butt1 = gtk.Button('file')
+ self.srch_butt2 = gtk.Button('pkg')
+ hbox.pack_start(self.srch_butt1, False, False, 2)
+ hbox.pack_start(self.srch_butt2, False, False, 2)
- label2 = gtk.Label('Choice show type')
- show_butt1 = gtk.RadioButton(None, 'Show in Table view')
- show_butt1.connect('toggled', self.show_type, 'table_view')
- show_butt1.set_active(True)
- show_butt2 = gtk.RadioButton(show_butt1, 'Show in Diagram view')
- show_butt2.connect('toggled', self.show_type, 'diag_view')
- self.show = 'table_view'
- separator2 = gtk.HSeparator()
-
- self.butt_next = gtk.Button('Next >')
- self.butt_next.connect('released', self.next_wind, func_chooser)
+ self.widget_vbox = gtk.VBox(False, 0)
main_vbox = gtk.VBox(False, 4)
- main_vbox.pack_start(label1, False, False, 10)
- main_vbox.pack_start(srch_butt1, False, False, 2)
- main_vbox.pack_start(srch_butt2, False, False, 2)
- main_vbox.pack_start(separator1, False, False, 2)
- main_vbox.pack_start(label2, False, False, 10)
- main_vbox.pack_start(show_butt1, False, False, 2)
- main_vbox.pack_start(show_butt2, False, False, 2)
- main_vbox.pack_start(separator2, False, False, 2)
- main_vbox.pack_start(self.butt_next, False, False, 20)
+ main_vbox.pack_start(hbox, False, False, 10)
+ main_vbox.pack_start(self.widget_vbox, False, False, 2)
self.add(main_vbox)
- def run(self):
+ def run(self, init_srch, srch1, srch2):
+ self.srch_butt1.connect('released', self.show_work_widget, srch1)
+ self.srch_butt2.connect('released', self.show_work_widget, srch2)
+ self.widget_vbox.add(init_srch)
self.show_all()
gtk.main()
- def srch_type(self, widget, data):
- self.search = data
-
- def show_type(self, widget, data):
- self.show = data
-
- def next_wind(self, widget, func_chooser):
- self.destroy()
- gtk.main_quit()
- func_chooser(self.search, self.show)
+ def show_work_widget(self, widget, new_widget):
+ if self.widget_vbox.get_children()[0]:
+ self.widget_vbox.remove(self.widget_vbox.get_children()[0])
+ self.widget_vbox.add(new_widget)
+ self.show_all()
+ print 'redraw'
if __name__ == '__main__':
Core_Control()
from misc import size_hum_read
class Out_Table_Control(object):
- def __init__(self, config):
- win_width = config.get('window_width')
- win_height = config.get('window_height')
- self.out_ui = Out_Table_Presentation(win_width, win_height)
+ def __init__(self):
+ self.out_ui = Out_Table_Presentation()
def show(self, filelist, flsize):
self.out_ui.show_result(filelist, flsize)
- def run(self):
- self.out_ui.run()
-
+ def get_ui(self):
+ return self.out_ui.get_ui()
class Out_Table_Abstraction(object):
pass
-
-class Out_Table_Presentation(gtk.Window):
- def __init__(self, win_width, win_height):
+class Out_Table_Presentation(object):
+ def __init__(self):
# Список файлов
- gtk.Window.__init__(self)
- self.set_default_size(win_width, win_height)
- self.set_border_width(4)
- self.connect('delete_event', gtk.main_quit)
-
+
scrollwind = gtk.ScrolledWindow()
scrollwind.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
scrollwind.add(self.treeview)
self.label = gtk.Label('full dir size = ')
- vbox = gtk.VBox(False, 5)
- vbox.pack_start(scrollwind, True, True, 0)
- vbox.pack_start(self.label, False, False,0)
- self.add(vbox)
+ self.vbox = gtk.VBox(False, 5)
+ self.vbox.pack_start(scrollwind, True, True, 0)
+ self.vbox.pack_start(self.label, False, False,0)
def show_result(self, filelist, fullsize):
self.liststore.clear()
flsizestr = 'full dir size = %s' % size_hum_read(fullsize)
self.label.set_text(flsizestr)
- def run(self):
- self.show_all()
- gtk.main()
+ def get_ui(self):
+ return self.vbox
class Search_Pkg_Control(object):
def __init__(self, config, show_funct):
- win_width = config.get('window_width')
- win_height = config.get('window_height')
count = config.get('default_pkg_count')
self.show_func = show_funct
self.abstr = Search_Pkg_Abstraction()
- self.present = Search_Pkg_Presentation(win_width, win_height, count, self.start_search)
+ self.present = Search_Pkg_Presentation(count, self.start_search)
- def start_search(self, count, kill_func):
+ 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])
- kill_func()
- self.show_func.show(pkglist, self.abstr.full())
- self.show_func.run()
-
- def run(self):
- self.present.run()
-
+
+ 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):
return self.fullsize
-class Search_Pkg_Presentation(gtk.Window):
-
- def __init__(self, win_width, win_height, count, st_func):
- """Create MainWindow."""
- # Создаем новое окно
- gtk.Window.__init__(self)
- self.set_default_size(win_width, win_height)
- self.set_border_width(4)
- self.connect('delete_event', gtk.main_quit)
+class Search_Pkg_Presentation(object):
+ def __init__(self, count, st_func):
+
label1 = gtk.Label('Files quantity')
# Окошко ввода количества файлов, мин значение=1 макс=65536 по умолчанию 10
adj = gtk.Adjustment(count, 1, 65536, 1, 5, 0)
hbox = gtk.HBox(False, 0)
hbox.pack_start(label1, False, False, 5)
hbox.pack_start(self.file_cnt, False, False, 0)
-
- self.butt_start = gtk.Button('Go >')
- self.butt_start.connect('released', self.start_srch, st_func)
- self.butt_prev = gtk.Button('< Previous')
- #self.butt_prev.connect('released', self.show_prev, prev_window)
+ label2 = gtk.Label('Choice show type')
+ show_butt1 = gtk.RadioButton(None, 'Show in Table view')
+ show_butt1.connect('toggled', self.show_type, 'table_view')
+ show_butt1.set_active(True)
+ show_butt2 = gtk.RadioButton(show_butt1, 'Show in Diagram view')
+ show_butt2.connect('toggled', self.show_type, 'table_view')
+ self.show = 'table_view'
+
+ butt_start = gtk.Button('START')
+ butt_start.connect('released', self.start_srch, st_func)
- hbox1 = gtk.HBox(False, 0)
- hbox1.pack_start(self.butt_prev, False, False, 5)
- hbox1.pack_start(self.butt_start, False, False, 5)
-
- vbox = gtk.VBox(False, 0)
- vbox.pack_start(hbox, False, False, 5)
- vbox.pack_start(hbox1, False, False, 5)
+ vbox1 = gtk.VBox(False, 0)
+ vbox1.pack_start(label2, False, False, 5)
+ vbox1.pack_start(show_butt1, False, False, 5)
+ vbox1.pack_start(show_butt2, False, False, 5)
- self.add(vbox)
+ self.vbox = gtk.VBox(False, 0)
+ self.vbox.pack_start(hbox, False, False, 5)
+ self.vbox.pack_start(vbox1, False, False, 5)
+ self.vbox.pack_start(butt_start, False, False, 5)
- def kill_wind(self):
- self.destroy()
- gtk.main_quit()
+ def show_type(self, widget, data):
+ self.show = data
def get_data(self):
return int( self.file_cnt.get_value() )
+
+ def get_show_type(self):
+ return self.show
- def run(self):
- self.show_all()
- gtk.main()
+ def get_ui(self):
+ return self.vbox
def start_srch(self, widget, start_func):
- start_func(self.get_data(), self.kill_wind)
+ start_func(self.get_data(), self.get_show_type())