def __init__(self, name=None, fileStorer=None): """ @see: L{ItemBase.__init__<datafinder.core.item.base.ItemBase.__init__>} """ ItemBase.__init__(self, name, fileStorer) self._isLeaf = True self._created = False self._dataFormat = None
def __init__(self, preferences): """ Constructor. @param repositoryManager: The central preferences. @type repositoryManager: L{PreferencesHandler<datafinder.core.configuration.preferences.PreferencesHandler>} """ HistoryModel.__init__(self) self._headers = list() self._headerIds = list() self._repository = None self._actionHandler = None self._preferences = preferences self._iconProvider = None self._emptyQVariant = QtCore.QVariant() self._emptyQModelIndex = QtCore.QModelIndex() self._placeHolderCollection = ItemBase("...") self._placeHolderCollection._isCollection = True self._placeHolderLeaf = ItemBase("...") self._childrenPopulator = _ChildrenPopulator(self) self._lockedItems = list()
def refresh(self, itemStateOnly=False): """ L{ItemBase.refresh<datafinder.core.item.base.ItemBase.refresh>} Extends the refresh behavior so the data format can be refreshed as well. """ self._refreshLinkTarget = True ItemBase.refresh(self, itemStateOnly)
def refresh(self, itemStateOnly=False): """ L{ItemBase.refresh<datafinder.core.item.base.ItemBase.refresh>} Extends the refresh behavior so the data format can be refreshed as well. """ self._dataFormat = None ItemBase.refresh(self, itemStateOnly)
def __init__(self, name=None, fileStorer=None): """ L{ItemBase.__init__<datafinder.core.item.base.ItemBase.__init__>} """ ItemBase.__init__(self, name, fileStorer) self._isCollection = True self._children = None self._childrenPopulated = False self._dataType = None
def create(self, properties): """ @see: L{ItemBase.create<datafinder.core.item.base.ItemBase.create>} """ if self._linkTarget is None: raise ItemError("Cannot create link because the link target is missing.") else: ItemBase.create(self, properties) try: if not self.fileStorer.exists(): self.fileStorer.createLink(self._linkTarget.fileStorer) self._refreshProperties() except PersistenceError, error: raise ItemError("Unable to create leaf item.\nReason:'%s'" % error.message) else:
def create(self, properties): """ @see: L{ItemBase.create<datafinder.core.item.base.ItemBase.create>} """ ItemBase.create(self, properties) try: if not self.fileStorer.exists(): canStoreProperties = self.capabilities.canStoreProperties self.fileStorer.createResource() if canStoreProperties: self.updateProperties(properties) self.dataPersister.create() self._refreshProperties() except PersistenceError, error: raise ItemError("Unable to create leaf item.\nReason:'%s'" % error.message)
def refresh(self, itemStateOnly=False): """ L{ItemBase.refresh<datafinder.core.item.base.ItemBase.refresh>} Extends the refresh behavior so the children are refreshed as well. """ self._dataType = None if not itemStateOnly: if self.childrenPopulated: children = self._children[:] for child in children: child.invalidate() self._children = None self._childrenPopulated = False ItemBase.refresh(self, itemStateOnly)
def __init__(self, name=None, fileStorer=None, linkTargetItem=None): """ @see: L{ItemBase.__init__<datafinder.core.item.base.ItemBase.__init__>} @param linkTargetItem: The target item of the link. @type linkTargetItem: L{ItemBase<datafinder.core.item.base.ItemBase} """ ItemBase.__init__(self, name, fileStorer) self._isLeaf = False self._isLink = True self._created = False self._linkTarget = None self._refreshLinkTarget = True self.linkTarget = linkTargetItem
def create(self, properties): """ @see: L{ItemBase.create<datafinder.core.item.base.ItemBase.create>} """ if self._linkTarget is None: raise ItemError( "Cannot create link because the link target is missing.") else: ItemBase.create(self, properties) try: if not self.fileStorer.exists(): self.fileStorer.createLink(self._linkTarget.fileStorer) self._refreshProperties() except PersistenceError, error: raise ItemError("Unable to create leaf item.\nReason:'%s'" % error.message) else:
def setUp(self): # A tree walker that operates Pre-order (mode=-1) self.preorderWalker = _TestItemTreeWalker() self.preorderWalker.reset() # A tree walker that applies Post-order scheme (mode=1) self.postorderWalker = _TestItemTreeWalker(mode=1) self.postorderWalker.reset() # A root for testing self.testRoot = ItemRoot("root") self.testRoot._fileStorer = SimpleMock(list()) self.testRoot.itemFactory = SimpleMock(SimpleMock(list())) self.testRoot.path = "" # A collection for testing self.testNode = ItemCollection("collection") self.testNode._fileStorer = SimpleMock(list()) self.testNode.itemFactory = SimpleMock(SimpleMock(list())) self.testNode.parent = self.testRoot # A leaf for testing self.testLeaf = ItemLeaf("leaf") self.testLeaf._fileStorer = SimpleMock(list()) self.testLeaf.itemFactory = SimpleMock(SimpleMock(list())) self.testLeaf.parent = self.testNode # A base item for testing self.testBase = ItemBase("base") self.testBase._fileStorer = SimpleMock(list()) self.testBase.itemFactory = SimpleMock(SimpleMock(list())) self.testBase.parent = self.testNode # A link for testing self.testLink = ItemLink("link") self.testLink._fileStorer = SimpleMock(list()) self.testLink.itemFactory = SimpleMock(SimpleMock(list())) self.testLink.parent = self.testNode
def create(self, properties): """ @see: L{ItemBase.create<datafinder.core.item.base.ItemBase.create>} """ ItemBase.create(self, properties) self.itemFactory.checkDatamodelConsistency(self.parent.dataType, self.dataType, self.parent.isRoot) try: if not self.fileStorer.exists(): canStoreProperties = self.capabilities.canStoreProperties self.fileStorer.createCollection() if canStoreProperties: self.updateProperties(properties) self.dataPersister.create() self._refreshProperties() except PersistenceError, error: raise ItemError("Unable to create collection item.\nReason:'%s'" % error.message)
def move(self, item): """ @see: L{move<datafinder.core.item.base.ItemBase.move>}""" self.itemFactory.checkDatamodelConsistency(item.parent.dataType, self.dataType, item.parent.isRoot) ItemBase.move(self, item)