Ejemplo n.º 1
0
class Citation:
    def __init__(self, title, bib, entries):
        from pygui.pyref import PyRefTable
        import pygtk
        import gtk

        self.table = PyRefTable(bib, entries, "journal", "year", "volume", "pages", "authors", "title")
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_title(title)
        self.vbox = gtk.VBox()

        self.hbox = gtk.HBox()
        self.erase_button = gtk.Button("Delete selected")
        self.erase_button.connect("clicked", self.delete_refs)

        self.downarrow = gtk.Arrow(gtk.ARROW_DOWN, gtk.SHADOW_IN)
        self.uparrow = gtk.Arrow(gtk.ARROW_UP, gtk.SHADOW_IN)
        self.downbutton = gtk.Button()
        self.downbutton.set_image(self.downarrow)
        self.upbutton = gtk.Button()
        self.upbutton.set_image(self.uparrow)

        self.downbutton.connect("clicked", self.table.downRef)
        self.upbutton.connect("clicked", self.table.upRef)

        self.hbox.pack_start(self.erase_button, True)
        self.hbox.pack_start(self.upbutton, False)
        self.hbox.pack_start(self.downbutton, False)
        self.vbox.pack_start(self.hbox, False)

        self.scrollwindow = gtk.ScrolledWindow()
        self.scrollwindow.add(self.table.getTree())
        self.vbox.pack_end(self.scrollwindow, True)
        self.window.add(self.vbox)
        self.window.show_all()
        self.window.maximize()

        # self.window.connect("focus-in-event", self.start_listening)
        # self.window.connect("focus-out-event", self.stop_listening)
        self.window.connect("destroy", self.close)

        self.thread = CiteThread(self)
        self.thread.start()

    def addReferences(self, refs):
        self.table.addReferences(refs)

    def delete_refs(self, widget, data=None):
        self.table.removeSelected()

    def close(self, widget, data=None):
        import pygtk
        import gtk

        self.thread.stop()
        gtk.main_quit()

    def getEntries(self):
        return self.table.getEntries()