Newer
Older
"""
:Author: Franziska Koehn
:Created: 2015/01/13
This module contains the window-class and the method for starting the GUI.
"""
import gtk
class XsaApp(gtk.Window):
"""Arguments from command-line"""
def init_connection_fields(self):
"""Sets args (given Command-Line-Arguments) to their fields"""
self.controller.host = self.args.host
self.controller.credentials = self.args.user
def __init__(self, args):
Creates the Window and its views. Initializes xsagtk.main_controller.
super(XsaApp, self).__init__()
self.args = args
self.set_size_request(1000, 500)
self.set_position(gtk.WIN_POS_CENTER)
self.connect("destroy", gtk.main_quit)
self.set_title("xsa")
def on_delete_event(*_):
import xsa.queries
xsa.queries.disconnect_xnat_server()
self.connect("delete-event", on_delete_event)
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
vbox_root = gtk.VBox(False, 1)
# Toolbar
from xsagtk.menu_view import MenuView
self.menu = MenuView()
vbox_root.pack_start(self.menu, False, False, 0)
# Body
hpaned = gtk.HPaned()
hpaned.set_position(400)
vbox_root.pack_start(hpaned, True, True, 5)
# left side
from xsagtk.query_view import QueryView
self.queryview = QueryView(homogeneous=False, spacing=1)
hpaned.add1(self.queryview)
# right site
vpaned = gtk.VPaned()
vpaned.set_position(200)
hpaned.add2(vpaned)
# results-table
from xsagtk.results_view import ResultsDownloadView
self.resultsview = ResultsDownloadView(False,1)
vpaned.add1(self.resultsview)
# chart
from xsagtk.chart_view import ChartView
self.chartview = ChartView()
vpaned.add2(self.chartview)
# statusbar
self.statusbar = gtk.Statusbar()
vbox_root.pack_start(self.statusbar, False, False, 0)
self.add(vbox_root)
from xsagtk.main_controller import QueryController
self.controller = QueryController(self, self.queryview, self.menu, self.chartview, self.resultsview, self.statusbar)
self.init_connection_fields()
self.show_all()
def start_xsa_gui(args):
Creates the Window and passes it all CommandLine-Arguments.
XsaApp(args)
gtk.gdk.threads_init()
gtk.main()