def init(self): self.model = PreferenceModel() self.modified = False return self
class PreferenceManager(NibClassBuilder.AutoBaseClass): # the actual base class is NSObject # The following outlets are added to the class: # logList # window # regrowlButton # saveButton def init(self): self.model = PreferenceModel() self.modified = False return self def awakeFromNib(self): pass def loadPreferences_(self, sender): self.model.loadPreferences() self.modified = False self._updateUI() def openWindow_(self, sender): self.window.makeKeyAndOrderFront_(self) self._updateUI() def savePreferences_(self, sender): self.model.savePreferences() self.modified = False self._updateUI() def cancel_(self, sender): self.window.orderOut_(self) def add_(self, sender): self.model.appendEntryInfo({u'file':'', u'sticky':False}) self._updateUI() last_row_index = self.logList.numberOfRows() - 1 self.logList.selectRowIndexes_byExtendingSelection_( NSIndexSet.indexSetWithIndex_(last_row_index), False) def remove_(self, sender): row = self.logList.selectedRow() if row >= 0: try: self.model.deleteEntryInfo(row) except IndexError: pass self.modified = True self._updateUI() def tableView_objectValueForTableColumn_row_(self, tableView, tableColumn, row): return self.model.tableView_objectValueForTableColumn_row_(tableView, tableColumn, row) def numberOfRowsInTableView_(self, tableView): return self.model.numberOfRowsInTableView_(tableView) def tableView_setObjectValue_forTableColumn_row_(self, tableView, obj, tableColumn, row): self.modified = True answ = self.model.tableView_setObjectValue_forTableColumn_row_(tableView, obj, tableColumn, row) self._updateUI() return answ def _updateUI(self): self.regrowlButton.setEnabled_(not self.modified) self.saveButton.setEnabled_(self.modified) self.logList.reloadData()