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)
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)
# work area
notebook = gtk.Notebook()
vpaned.add2(notebook)
notebook.show()
# work area: chart
from xsagtk.chart_view import ChartView
self.chartview = ChartView()
notebook.append_page(self.chartview, gtk.Label("Chart"))
# work area: additonal data
from xsagtk.adddata_view import AdddataView
self.adddataview = AdddataView()
notebook.append_page(self.adddataview, gtk.Label("Comparison"))
# 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.adddataview, 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()