0,0 → 1,92 |
import sys |
import re |
import Tkinter |
from Tkinter import Frame, Button, Entry, Listbox, Scrollbar, Label |
|
import relevation |
|
old_fn = relevation.dump_result |
|
def append_result(s): |
global gui |
fields = s.split('\n') |
name = fields[2] |
name = re.sub('^Name: ', '', name) |
gui.lst.insert(Tkinter.END, name) |
gui.items.append(s) |
|
def dump_result_override(res, query_desc): |
return old_fn(res,query_desc, append_result) |
|
relevation.dump_result = dump_result_override |
|
class ResultDialog: |
def __init__(self, parent): |
top = self.top = Tkinter.Toplevel(parent) |
Label(top, text="Value").pack() |
self.e = Entry(top) |
self.e.pack(padx=5) |
b = Button(top, text='OK', command=self.ok) |
b.pack(pady=5) |
def ok(self): |
self.top.destroy() |
|
class GUI(Tkinter.Frame): |
def do_find(self): |
global rootw |
search = self.search_text.get() |
relevation.main(sys.argv[1:] + ['-s', search]) |
|
def display(self): |
global rootw |
selected = self.lst.curselection() |
if not selected: |
return |
selected = int(selected[0]) |
item = self.items[selected] |
print item |
dlg = ResultDialog(rootw) |
rootw.wait_window(dlg.top) |
|
def __init__(self, master=None): |
Frame.__init__(self, master) |
self.pack() |
self.add_widgets() |
self.items = [] |
|
def add_widgets(self): |
self.search_text = Entry(self) |
self.search_text.insert(0, 'google.com') |
self.search_text.pack({'expand': 1, 'side': 'top'}) |
|
self.QUIT = Button(self) |
self.QUIT['text'] = 'QUIT' |
self.QUIT['fg'] = 'red' |
self.QUIT['command'] = self.quit |
self.QUIT.pack({'side': 'left'}) |
|
self.search = Button(self) |
self.search['text'] = 'Search' |
self.search['command'] = self.do_find |
self.search.pack({'side': 'right'}) |
|
self.view = Button(self) |
self.view['text'] = 'View' |
self.view['command'] = self.display |
self.view.pack({'side': 'right'}) |
|
# FIXME |
scrollbar = Scrollbar(self, orient=Tkinter.VERTICAL) |
|
self.lst = Listbox(self, yscrollcommand=scrollbar.set) |
self.lst.pack() |
scrollbar.configure(command=self.lst.yview) |
|
if __name__ == '__main__': |
rootw = Tkinter.Tk() |
rootw.title('Relevation search') |
gui = GUI(master=rootw) |
gui.mainloop() |
rootw.destroy() |
|
# vim:set ts=4 et ai fileencoding=utf-8: # |