예제 #1
0
    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()