Newer
Older
results = []
self.vbox_search.host = self.args.host
self.vbox_search.credentials = self.args.user
def __init__(self):
super(XnatSearchApp, self).__init__()
import argparse
parser = argparse.ArgumentParser(description='search and download gui')
parser.add_argument('--host', type=str, help='hostname or ip-address (including port).', default="http://localhost:8080")
parser.add_argument('--user', type=str, help='user:passw', default=":")
self.args = parser.parse_args()
self.set_position(gtk.WIN_POS_CENTER)
self.connect("destroy", gtk.main_quit)
self.set_title("Xnat Search")
# left side
vbox_root = gtk.VBox(False, 1)
hpaned = gtk.HPaned()
hpaned.set_position(400)
vbox_root.pack_start(hpaned, True, True, 5)
def on_search_query(_, host, credentials, root_type, query, labels):
import xsalogic.datatypereader as type_reader
import xsalogic.queries as queries
fields = type_reader.get_fields_from_labels(labels,root_type)
query_results = queries.search_for(host, 'xnat:mrScanData', query, fields, user, passw)
queries.HOST = host
#httplib.ResponseNotReady
#one message dialog for all
if query_results is "DatabaseError":
md = gtk.MessageDialog(type=gtk.MESSAGE_WARNING,
buttons=gtk.BUTTONS_OK,
message_format="Error! Check your query."
)
md.run()
md.destroy()
self.results = []
elif query_results is "ServerNotFoundError":
md = gtk.MessageDialog(type=gtk.MESSAGE_WARNING,
buttons=gtk.BUTTONS_OK,
message_format="Error! Server not found."
)
md.run()
md.destroy()
self.results = []
else:
self.results = query_results
self.vbox_results.show_data(self.results, root_type)
self.statusbar.push(0, "%s Results"%len(self.results))
self.chart_view.update_chart(self.results, root_type)
self.vbox_search = QueryView(homogeneous=False, spacing=1)
self.vbox_search.connect("send-query", on_search_query)
# right site
vpaned = gtk.VPaned()
vpaned.set_position(300)
hpaned.add2(vpaned)
from xsagtk.results_view import ResultsDownloadView
self.vbox_results = ResultsDownloadView(False,1)
vpaned.add1(self.vbox_results)
self.chart_view = ChartView()
vpaned.add2(self.chart_view)
# statusbar
self.statusbar = gtk.Statusbar()
vbox_root.pack_start(self.statusbar, False, False, 0)
self.add(vbox_root)