Gnumed.wxpython.gmGP_HabitsRiskFactors

Package Gnumed :: Package wxpython :: Module gmGP_HabitsRiskFactors |
[frames] | no frames]

# Source Code for Module Gnumed.wxpython.gmGP_HabitsRiskFactors

     1  try:
     2          import wxversion
     3          import wx
     4  except ImportError:
     5          from wxPython import wx
     6
     7 -class HabitsRiskFactors(wx.Panel):
     8 -    def __init__(self, parent,id):
     9          wx.Panel.__init__(self, parent, id, wx.DefaultPosition, wx.DefaultSize, 0 )
    10          sizer = wx.BoxSizer(wx.VERTICAL)
    11
    12          #captions for the two columns
    13          #habit_caption = gmTerryGuiParts..cDividerCaption(self,-1,"Habits")
    14          #risk_caption = gmTerryGuiParts.cDividerCaption(self,-1,"Risk Factors")
    15
    16          #text controls for each column
    17          txt_habits = wx.TextCtrl(self, 30,
    18                          "Smoker - 30/day.\n"
    19                          "Alcohol - 30gm/day (Previously very heavy.\n",
    20                                wx.DefaultPosition,wx.DefaultSize, style=wxTE_MULTILINE|wx.NO_3D|wx.SIMPLE_BORDER)
    21          txt_habits.SetInsertionPoint(0)
    22
    23          txt_riskfactors = wx.TextCtrl(self,30,
    24                               "Hypercholesterolaemia \n"
    25                               "Current Smoker \n"
    26                               "NIDDM \n"
    27                               "No exercise data recorded\n",
    28                                wx.DefaultPosition,wx.DefaultSize, style = wx.TE_MULTILINE)
    29          txt_riskfactors.SetInsertionPoint(0)
    30          #heading sizer- add headings
    31          #heading_sizer = wx.BoxSizer(wxHORIZONTAL)
    32          #heading_sizer.Add(habit_caption,1,wxEXPAND)
    33          #heading_sizer.Add(risk_caption,1,wxEXPAND)
    34          #self.SetSizer(heading_sizer)  #set the sizer
    35          #heading_sizer.Fit(self)             #set
    36          ##text sizer - add text
    37          text_sizer = wx.BoxSizer(wx.HORIZONTAL)
    38          text_sizer.Add(txt_habits,1,wx.EXPAND)
    39          text_sizer.Add(txt_riskfactors,1,wx.EXPAND)
    40          self.SetSizer(text_sizer)  #set the sizer
    41          text_sizer.Fit(self)             #set
    42          self.SetAutoLayout(True)                 #tell frame to use the sizer
    43          #self.Show(True)
    44
    45          self.lists = { 'habit': txt_habits, 'risk': txt_riskfactors }
    46
    47          print self.GetData()
    48
    49          self.SetData( { 'habit': ['smoker', 'drinks 20/day'] , 'risk': [ 'cholesterol', 'diabetes'] } )
    50
    51 -    def getTextCtrl(self, which):
    52                  return self.lists.get(which, "risk")
    53
    54 -    def SetData(self, map):
    55                  for which, data in map.items():
    56                          if type(data) == type(""):
    57                                  self.lists.get(which, 'risk').SetValue(data)
    58
    59                          if type(data) in [ type([]), type ( () ) ]:
    60                                  self.lists.get(which, 'risk').SetValue("\n".join(data))
    61
    62 -    def GetData(self):
    63                  map = {}
    64                  for k in self.lists.keys():
    65                          map[k] = self.lists[k].GetValue().split('\n')
    66                  return map
    67
    68
    69  if __name__ == "__main__":
    70          app = wxPyWidgetTester(size = (400, 200))
    71          app.SetWidget(HabitsRiskFactors, -1)
    72          app.MainLoop()
    73