def __init__(self, deployment, *args, **kwargs): wx.Panel.__init__(self, *args, **kwargs) self.deployment = deployment self.SetSizer(wx.BoxSizer(wx.VERTICAL)) self.eventLabel = wx.StaticText(self, -1, label="Events") self.eventLabel.SetFont(wx.Font(wx.DEFAULT, wx.DEFAULT, wx.DEFAULT, wx.BOLD)) self.GetSizer().Add(self.eventLabel, 0, wx.ALL, 2) self.eventList = ItemList( self, -1, mappers=[ ColumnMapper("Event", lambda e: e.state, defaultWidth=wx.LIST_AUTOSIZE), ColumnMapper("Time", lambda e: formatTime(e.time), defaultWidth=wx.LIST_AUTOSIZE), ], style=wx.LC_REPORT, ) self.GetSizer().Add(self.eventList, 0, wx.ALL | wx.EXPAND, 2) self.logPanel = wx.TextCtrl(self, -1, size=(100, 100), style=wx.TE_MULTILINE) self.logLabel = wx.StaticText(self, -1, label="Log") self.logLabel.SetFont(wx.Font(wx.DEFAULT, wx.DEFAULT, wx.DEFAULT, wx.BOLD)) self.GetSizer().Add(self.logLabel, 0, wx.ALL, 2) self.logLabel.Hide() self.logPanel.Hide() # logPanel will be shown later on demand self.GetSizer().Add(self.logPanel, 1, wx.BOTTOM | wx.EXPAND, 5)
class EventTab(wx.Panel): """ Displays Deployment events and log. """ def __init__(self, deployment, *args, **kwargs): wx.Panel.__init__(self, *args, **kwargs) self.deployment = deployment self.SetSizer(wx.BoxSizer(wx.VERTICAL)) self.eventLabel = wx.StaticText(self, -1, label="Events") self.eventLabel.SetFont(wx.Font(wx.DEFAULT, wx.DEFAULT, wx.DEFAULT, wx.BOLD)) self.GetSizer().Add(self.eventLabel, 0, wx.ALL, 2) self.eventList = ItemList( self, -1, mappers=[ ColumnMapper("Event", lambda e: e.state, defaultWidth=wx.LIST_AUTOSIZE), ColumnMapper("Time", lambda e: formatTime(e.time), defaultWidth=wx.LIST_AUTOSIZE), ], style=wx.LC_REPORT, ) self.GetSizer().Add(self.eventList, 0, wx.ALL | wx.EXPAND, 2) self.logPanel = wx.TextCtrl(self, -1, size=(100, 100), style=wx.TE_MULTILINE) self.logLabel = wx.StaticText(self, -1, label="Log") self.logLabel.SetFont(wx.Font(wx.DEFAULT, wx.DEFAULT, wx.DEFAULT, wx.BOLD)) self.GetSizer().Add(self.logLabel, 0, wx.ALL, 2) self.logLabel.Hide() self.logPanel.Hide() # logPanel will be shown later on demand self.GetSizer().Add(self.logPanel, 1, wx.BOTTOM | wx.EXPAND, 5) def update(self): self.eventList.setItems(self.deployment.stateEvents) def appendLogPanelText(self, text): self.logPanel.AppendText(str(text) + "\n") def showLogPanel(self): self.logPanel.Show() self.logLabel.Show() self.Layout()