def __init__(self, parent=None, dataFile=None, wtFiles=[''], vars=[''], results=[], dialogMode=False): self.results = results self.dialogMode = dialogMode SpatialLag_xrc.xrcCreateSpatialLag.__init__(self, parent) self.width = None d = {} d['wtFiles'] = self.__wtFile d['wtFile'] = self.__wtFile d['vars'] = self.__vars d['dataFile'] = self.__dataFile self.dispatch = d self.weights.Bind(wx.EVT_CHOICE, self.__wtFile) self.fakeVarsChoice.Bind(wx.EVT_CHOICE, self.addRow) self.openWeights.Bind(wx.EVT_BUTTON, self.__wtFile) self.cancelButton.Bind(wx.EVT_BUTTON, self.close) self.okButton.Bind(wx.EVT_BUTTON, self.run) self.dataFileButton.Bind(wx.EVT_BUTTON, self.__dataFile) self.dataFile.Bind(wx.EVT_TEXT, self.__dataFile) self.model = M_CreateSpatialLag() self.model.addListener(self.populate) for wtFile in wtFiles: self.model.set('wtFile', wtFile) self.model.set('wtFile', 0) self.model.set('vars', vars) # hack to force initial data file to show up in GUI, even if it doesn't # exist self.model.data['dataFile'] = dataFile self.populate(None) self.model.set('dataFile', dataFile) # VariablesPeer is a hidden panel of size (0,0), this is necessary # because XRC does # not allow accessing sizers directly, so you get call a sizer item's # GetContainingSizer method self.varSizer = self.VariablesPeer.GetContainingSizer()