Package Gnumed :: Package wxGladeWidgets :: Module wxgDataMiningPnl |
[frames] | no frames]

# Source Code for Module Gnumed.wxGladeWidgets.wxgDataMiningPnl

      1  # -*- coding: UTF-8 -*-
      2  #
      3  # generated by wxGlade
      4  #
      5
      6  import wx
      7
      8  # begin wxGlade: dependencies
      9  import gettext
     10  # end wxGlade
     11
     12  # begin wxGlade: extracode
     13  from Gnumed.wxpython.gmPhraseWheel import cPhraseWheel
     14  from Gnumed.wxpython.gmDataMiningWidgets import cPatientListingCtrl
     15  from Gnumed.wxpython.gmTextCtrl import cTextCtrl
     16  # end wxGlade
     17
     18
     19 -class wxgDataMiningPnl(wx.ScrolledWindow):
     20 -        def __init__(self, *args, **kwds):
     21                  # begin wxGlade: wxgDataMiningPnl.__init__
     22                  kwds["style"] = kwds.get("style", 0) | wx.BORDER_NONE | wx.TAB_TRAVERSAL
     23                  wx.ScrolledWindow.__init__(self, *args, **kwds)
     24                  self._splitter = wx.SplitterWindow(self, wx.ID_ANY, style=wx.SP_3D | wx.SP_BORDER)
     25                  self.splitter_top_panel = wx.Panel(self._splitter, wx.ID_ANY, style=wx.BORDER_NONE | wx.TAB_TRAVERSAL)
     26                  self._PRW_report_name = cPhraseWheel(self.splitter_top_panel, wx.ID_ANY, "")
     27                  self._TCTRL_query = cTextCtrl(self.splitter_top_panel, wx.ID_ANY, "", style=wx.TE_MULTILINE | wx.TE_WORDWRAP)
     28                  self._BTN_run = wx.Button(self.splitter_top_panel, wx.ID_ANY, _("&Run"), style=wx.BU_EXACTFIT)
     29                  self._BTN_clear = wx.Button(self.splitter_top_panel, wx.ID_ANY, _("Clear"), style=wx.BU_EXACTFIT)
     30                  self._BTN_save = wx.Button(self.splitter_top_panel, wx.ID_ANY, _("Save"), style=wx.BU_EXACTFIT)
     31                  self._BTN_delete = wx.Button(self.splitter_top_panel, wx.ID_ANY, _("Delete"), style=wx.BU_EXACTFIT)
     32                  self._BTN_contribute = wx.Button(self.splitter_top_panel, wx.ID_ANY, _("Contribute"), style=wx.BU_EXACTFIT)
     33                  self._BTN_visualize = wx.Button(self.splitter_top_panel, wx.ID_ANY, _("Plot"), style=wx.BU_EXACTFIT)
     34                  self._BTN_waiting_list = wx.Button(self.splitter_top_panel, wx.ID_ANY, _("Wait.List"), style=wx.BU_EXACTFIT)
     35                  self._BTN_save_results = wx.Button(self.splitter_top_panel, wx.ID_ANY, _("Save"), style=wx.BU_EXACTFIT)
     36                  self._BTN_schema = wx.Button(self.splitter_top_panel, wx.ID_ANY, _("Schema"), style=wx.BU_EXACTFIT)
     37                  self._splitter_bottom_panel = wx.Panel(self._splitter, wx.ID_ANY, style=wx.BORDER_NONE | wx.TAB_TRAVERSAL)
     38                  self._LCTRL_result = cPatientListingCtrl(self._splitter_bottom_panel, wx.ID_ANY, style=wx.BORDER_SIMPLE | wx.LC_REPORT | wx.LC_SINGLE_SEL)
     39
     40                  self.__set_properties()
     41                  self.__do_layout()
     42
     43                  self.Bind(wx.EVT_BUTTON, self._on_run_button_pressed, self._BTN_run)
     44                  self.Bind(wx.EVT_BUTTON, self._on_clear_button_pressed, self._BTN_clear)
     45                  self.Bind(wx.EVT_BUTTON, self._on_save_button_pressed, self._BTN_save)
     46                  self.Bind(wx.EVT_BUTTON, self._on_delete_button_pressed, self._BTN_delete)
     47                  self.Bind(wx.EVT_BUTTON, self._on_contribute_button_pressed, self._BTN_contribute)
     48                  self.Bind(wx.EVT_BUTTON, self._on_visualize_button_pressed, self._BTN_visualize)
     49                  self.Bind(wx.EVT_BUTTON, self._on_waiting_list_button_pressed, self._BTN_waiting_list)
     50                  self.Bind(wx.EVT_BUTTON, self._on_save_results_button_pressed, self._BTN_save_results)
     51                  self.Bind(wx.EVT_BUTTON, self._on_schema_button_pressed, self._BTN_schema)
     52                  # end wxGlade
     53
     54 -        def __set_properties(self):
     55                  # begin wxGlade: wxgDataMiningPnl.__set_properties
     56                  self.SetScrollRate(10, 10)
     57                  self._PRW_report_name.SetToolTip(_("If you want to save this query into the database for later use you must provide a descriptive label for it here."))
     58                  self._TCTRL_query.SetToolTip(_("Enter the SQL commands to run here.\n\nIt doesn't matter whether or not you enter a trailing \";\".\n\nNote that:\n- the query is run in a read-only transaction\n- the result list will be artificially limited to the first 1000 rows\n- you can include a column named \"pk_patient\" to make the result rows activate the corresponding patient on double-clicking\n- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the patient active at the time of running the query"))
     59                  self._BTN_run.SetToolTip(_("Run the query and present the results below."))
     60                  self._BTN_run.SetDefault()
     61                  self._BTN_clear.SetToolTip(_("Clear all fields."))
     62                  self._BTN_save.SetToolTip(_("Save the report definition."))
     63                  self._BTN_delete.SetToolTip(_("Delete this report definition."))
     64                  self._BTN_contribute.SetToolTip(_("Contribute this report definition to the GNUmed community. The report name and SQL command will be sent to the mailing list.\n\nPatient data will NOT be put AT RISK.\n\nYou may want to be careful about the SQL itself as it just might contain bits of sensitive data in, say, the WHERE conditions."))
     65                  self._BTN_visualize.SetToolTip(_("Visualize (plot) data from two numeric columns of the result list below."))
     66                  self._BTN_visualize.Enable(False)
     67                  self._BTN_waiting_list.SetToolTip(_("Put all or selected results onto a waiting list."))
     68                  self._BTN_waiting_list.Enable(False)
     69                  self._BTN_save_results.SetToolTip(_("Save query results as a CSV file."))
     70                  self._BTN_save_results.Enable(False)
     71                  self._BTN_schema.SetToolTip(_("Show the database schema definition in your web browser."))
     72                  self._splitter.SetMinimumPaneSize(20)
     73                  # end wxGlade
     74
     75 -        def __do_layout(self):
     76                  # begin wxGlade: wxgDataMiningPnl.__do_layout
     77                  _szr_main = wx.BoxSizer(wx.VERTICAL)
     78                  __szr_splitter_bottom = wx.BoxSizer(wx.VERTICAL)
     79                  _fgszr_top = wx.FlexGridSizer(3, 2, 1, 4)
     80                  _szr_buttons = wx.BoxSizer(wx.HORIZONTAL)
     81                  __LBL_report_name = wx.StaticText(self.splitter_top_panel, wx.ID_ANY, _("Report"))
     82                  _fgszr_top.Add(__LBL_report_name, 0, wx.ALIGN_CENTER_VERTICAL, 0)
     83                  _fgszr_top.Add(self._PRW_report_name, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
     84                  __LBL_query = wx.StaticText(self.splitter_top_panel, wx.ID_ANY, _("\nCommand\n(SQL)"))
     85                  _fgszr_top.Add(__LBL_query, 0, wx.ALIGN_CENTER_VERTICAL, 0)
     86                  _fgszr_top.Add(self._TCTRL_query, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
     87                  _fgszr_top.Add((20, 20), 0, wx.EXPAND, 0)
     88                  _szr_buttons.Add(self._BTN_run, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
     89                  _szr_buttons.Add(self._BTN_clear, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND | wx.RIGHT, 3)
     90                  _szr_buttons.Add(self._BTN_save, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
     91                  _szr_buttons.Add(self._BTN_delete, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
     92                  _szr_buttons.Add(self._BTN_contribute, 0, wx.ALIGN_CENTER_VERTICAL, 0)
     93                  _szr_buttons.Add((20, 20), 1, wx.EXPAND, 0)
     94                  _LBL_results = wx.StaticText(self.splitter_top_panel, wx.ID_ANY, _("Results:"))
     95                  _szr_buttons.Add(_LBL_results, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
     96                  _szr_buttons.Add(self._BTN_visualize, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
     97                  _szr_buttons.Add(self._BTN_waiting_list, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
     98                  _szr_buttons.Add(self._BTN_save_results, 0, wx.ALIGN_CENTER_VERTICAL, 0)
     99                  _szr_buttons.Add((20, 20), 1, wx.EXPAND, 0)
    100                  _szr_buttons.Add(self._BTN_schema, 0, wx.ALIGN_CENTER_VERTICAL, 0)
    101                  _fgszr_top.Add(_szr_buttons, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND, 0)
    102                  self.splitter_top_panel.SetSizer(_fgszr_top)
    103                  _fgszr_top.AddGrowableRow(1)
    104                  _fgszr_top.AddGrowableCol(1)
    105                  __szr_splitter_bottom.Add(self._LCTRL_result, 1, wx.EXPAND, 0)
    106                  self._splitter_bottom_panel.SetSizer(__szr_splitter_bottom)
    107                  self._splitter.SplitHorizontally(self.splitter_top_panel, self._splitter_bottom_panel, 99)
    108                  _szr_main.Add(self._splitter, 1, wx.EXPAND, 0)
    109                  self.SetSizer(_szr_main)
    110                  _szr_main.Fit(self)
    111                  self.Layout()
    112                  # end wxGlade
    113
    114 -        def _on_run_button_pressed(self, event):  # wxGlade: wxgDataMiningPnl.<event_handler>
    115                  print("Event handler '_on_run_button_pressed' not implemented!")
    116                  event.Skip()
    117
    118 -        def _on_clear_button_pressed(self, event):  # wxGlade: wxgDataMiningPnl.<event_handler>
    119                  print("Event handler '_on_clear_button_pressed' not implemented!")
    120                  event.Skip()
    121
    122 -        def _on_save_button_pressed(self, event):  # wxGlade: wxgDataMiningPnl.<event_handler>
    123                  print("Event handler '_on_save_button_pressed' not implemented!")
    124                  event.Skip()
    125
    126 -        def _on_delete_button_pressed(self, event):  # wxGlade: wxgDataMiningPnl.<event_handler>
    127                  print("Event handler '_on_delete_button_pressed' not implemented!")
    128                  event.Skip()
    129
    130 -        def _on_contribute_button_pressed(self, event):  # wxGlade: wxgDataMiningPnl.<event_handler>
    131                  print("Event handler '_on_contribute_button_pressed' not implemented!")
    132                  event.Skip()
    133
    134 -        def _on_visualize_button_pressed(self, event):  # wxGlade: wxgDataMiningPnl.<event_handler>
    135                  print("Event handler '_on_visualize_button_pressed' not implemented!")
    136                  event.Skip()
    137
    138 -        def _on_waiting_list_button_pressed(self, event):  # wxGlade: wxgDataMiningPnl.<event_handler>
    139                  print("Event handler '_on_waiting_list_button_pressed' not implemented!")
    140                  event.Skip()
    141
    142 -        def _on_save_results_button_pressed(self, event):  # wxGlade: wxgDataMiningPnl.<event_handler>
    143                  print("Event handler '_on_save_results_button_pressed' not implemented!")
    144                  event.Skip()
    145
    146 -        def _on_schema_button_pressed(self, event):  # wxGlade: wxgDataMiningPnl.<event_handler>
    147                  print("Event handler '_on_schema_button_pressed' not implemented!")
    148                  event.Skip()
    149
    150  # end of class wxgDataMiningPnl
    151