I am adding an item to the Test->Sharing menu, "Create Conflict", to better help with working on the conflict dialog. While doing this, I wrote this code in Blocks/PimBlocks.py:

    def onCreateConflictEvent(self, event):
        selectedItems = self.__getProxiedSelectedItems(event)
        if len(selectedItems) > 0:
            # only shared items can have conflicts
            for item in selectedItems:
                if has_stamp(item, sharing.SharedItem):
                    sharing.SharedItem(item).generateConflicts()

    def onCreateConflictEventUpdateUI(self, event):
        selectedItems = self.__getSelectedItems()
        if len(selectedItems) > 0:
# Collect the states of all the items, so that we can change all
            # the items if they're all in the same state.
states = [has_stamp(item, sharing.SharedItem) for item in selectedItems] # only enable for Notes and their subclasses (not collections, etc)
            enable = True in states
            event.arguments['Enable'] = enable

These are modelled on the numerous other event-handling methods in the FocusEventHandlers class. My (hopefully simple) question is: why do we use __getProxiedSelectedItems() for event handlers (which ends up calling Block.getProxiedItem()), but __getSelectedItems() (which does not call that function) for the UpdateUI methods? Shouldn't they both be using the proxy version?

Reid

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Open Source Applications Foundation "chandler-dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/chandler-dev

Reply via email to