Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
    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()
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
 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
Ejemplo n.º 7
0
    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:
Ejemplo n.º 8
0
    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)
Ejemplo n.º 9
0
    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)
Ejemplo n.º 10
0
 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)
Ejemplo n.º 11
0
    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
Ejemplo n.º 12
0
    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:
Ejemplo n.º 13
0
    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
Ejemplo n.º 14
0
 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
Ejemplo n.º 15
0
    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)
Ejemplo n.º 16
0
 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)