import gtk
from gtk import TRUE
from gtk import FALSE
from rhpl.translate import _, N_

class SummaryModel (gtk.ListStore):
    def __init__ (self):
        gtk.ListStore.__init__ (self, str, str)

    def set_packages (self, list_one, list_two,
                      list_one_string=None, list_two_string=None):
        self.clear ()
        def sort_func(first, second):
            first_str = first[0].lower()
            second_str = second[0].lower()
            if first_str == second_str:
                return 0
            if first_str < second_str:
                return -1
            return 1

        if list_one != []:
            list_one.sort (sort_func)
        if list_two != []:
            list_two.sort (sort_func)
        if list_one_string == None:
            list_one_string = _("Packages to be Installed")
        if list_two_string == None:
            list_two_string = _("Packages to be Removed")

        if list_one != []:
            iter = self.append ()
            self.set_value (iter, 0, "<span  weight=\"bold\" size=\"larger\">" + list_one_string + "</span>")
            for (name, size) in list_one:
                iter = self.append ()
                self.set_value (iter, 0, name)
                self.set_value (iter, 1, size)

        if list_two != []:
            iter = self.append ()
            self.set_value (iter, 0, "<span  weight=\"bold\" size=\"larger\">" + list_two_string + "</span>")
            for (name, size) in list_two:
                iter = self.append ()
                self.set_value (iter, 0, name)
                self.set_value (iter, 1, size)


def setup_summary_tree (tree_view):
    column = gtk.TreeViewColumn (None, gtk.CellRendererText(), markup=0)
    tree_view.append_column (column)
    cell = gtk.CellRendererText()
    cell.set_property ('xalign', 1.0)
    column = gtk.TreeViewColumn (None, cell, text=1)
    tree_view.append_column (column)
    tree_view.get_selection().set_mode (gtk.SELECTION_NONE)
