def buildControls(self,parameters): mainSizer = wx.BoxSizer(wx.VERTICAL) self.panel = InternalDocumentPanel(self) self.panel.buildControls(parameters.createFlag()) mainSizer.Add(self.panel,1,wx.EXPAND) self.SetSizer(mainSizer) wx.EVT_BUTTON(self,INTERNALDOCUMENT_BUTTONCOMMIT_ID,self.onCommit)
class InternalDocumentDialog(wx.Dialog): def __init__(self,parent,parameters): wx.Dialog.__init__(self,parent,parameters.id(),parameters.label(),style=wx.DEFAULT_DIALOG_STYLE|wx.MAXIMIZE_BOX|wx.THICK_FRAME|wx.RESIZE_BORDER,size=(400,300)) self.theName = '' self.theDescription = '' self.theContent = '' self.theCodes = {} self.theMemos = {} self.theId = -1 self.panel = 0 self.buildControls(parameters) self.commitVerb = 'Add' def buildControls(self,parameters): mainSizer = wx.BoxSizer(wx.VERTICAL) self.panel = InternalDocumentPanel(self) self.panel.buildControls(parameters.createFlag()) mainSizer.Add(self.panel,1,wx.EXPAND) self.SetSizer(mainSizer) wx.EVT_BUTTON(self,INTERNALDOCUMENT_BUTTONCOMMIT_ID,self.onCommit) def load(self,objt): self.theId = objt.id() self.panel.loadControls(objt) self.commitVerb = 'Edit' def onCommit(self,evt): commitLabel = self.commitVerb + ' internal document' nameCtrl = self.FindWindowById(INTERNALDOCUMENT_TEXTNAME_ID) descCtrl = self.FindWindowById(INTERNALDOCUMENT_TEXTDESCRIPTION_ID) contCtrl = self.FindWindowById(INTERNALDOCUMENT_TEXTCONTENT_ID) self.theName = nameCtrl.GetValue() self.theDescription = descCtrl.GetValue() self.theContent = contCtrl.GetValue() self.theCodes = contCtrl.codes() self.theMemos = contCtrl.memos() if len(self.theName) == 0: dlg = wx.MessageDialog(self,'Name cannot be empty',commitLabel,wx.OK) dlg.ShowModal() dlg.Destroy() return if len(self.theDescription) == 0: dlg = wx.MessageDialog(self,'Description cannot be empty',commitLabel,wx.OK) dlg.ShowModal() dlg.Destroy() return elif (len(self.theContent) == 0): dlg = wx.MessageDialog(self,'Content cannot be empty',commitLabel,wx.OK) dlg.ShowModal() dlg.Destroy() return else: self.EndModal(INTERNALDOCUMENT_BUTTONCOMMIT_ID) def parameters(self): parameters = InternalDocumentParameters(self.theName,self.theDescription,self.theContent,self.theCodes,self.theMemos) parameters.setId(self.theId) return parameters