コード例 #1
0
 def init(self):
     self.model = PreferenceModel()
     self.modified = False
     return self
コード例 #2
0
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()