Changeset 151

Show
Ignore:
Timestamp:
05/14/02 11:19:04 (6 years ago)
Author:
sholloway
Message:

*** empty log message ***

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/RBFoundation/RBFoundation/XMLObjectify.py

    r150 r151  
    196196            if xmlName in _attributes: 
    197197                return _attributes[xmlName] 
    198             result = self._getElements(xmlName)  
     198            result = self._getElements(node=xmlName)  
    199199            if result: 
    200200                return result 
     
    226226                return 
    227227            else: 
    228                 if self._delElements(xmlName): 
     228                if self._delElements(node=xmlName): 
    229229                    return 
    230230 
     
    291291    def _getAllElements(self, andData=0): 
    292292        """Returns all elements.""" 
    293         return [x[-1] for x in self._elements if x[0][-1]] 
    294  
    295     def _getElements(self, node): 
     293        if andData: return [x[-1] for x in self._elements] 
     294        else: return [x[-1] for x in self._elements if x[0][-1]] 
     295 
     296    def _getElements(self, namespace=None, node=None): 
    296297        """Returns all elements matching node.""" 
    297         return [x[-1] for x in self._elements if x[0][-1] == node] 
    298  
     298        lst = self._elements 
     299        if node is not None: 
     300            lst = [x for x in lst if x[0][-1] == node] 
     301        if namespace is not None: 
     302            lst = [x for x in lst if x[0][0] == namespace] 
     303        return [x[-1] for x in lst] 
     304     
    299305    def _delAllElements(self, andData=0): 
    300306        """Removes all elements, and if andData, all PCData as well.""" 
     
    302308        else: elements = [x for x in self._elements if x[0][-1] == ''] 
    303309 
    304     def _delElements(self, node): 
     310    def _delElements(self, namespace=None, node=None): 
    305311        """Removes all elements matching node.""" 
    306         elements = [x for x in self._elements if x[0][-1] != node] 
    307         if len(elements) != len(self._elements): 
    308             self._elements = elements 
     312        lst = self._elements 
     313        if node is not None: 
     314            lst = [x for x in lst if x[0][-1] == node] 
     315        if namespace is not None: 
     316            lst = [x for x in lst if x[0][0] == namespace] 
     317        if len(lst) != len(self._elements): 
     318            self._elements = lst 
    309319            return 1 
    310320        return 0 
     
    333343    def _clearData(self): 
    334344        """Removes all PCData from the element node.""" 
    335         return self._delElements('') 
     345        return self._delElements(node='') 
    336346 
    337347    def _addData(self, data): 
  • trunk/RBSkinning/RBSkinning/skin/reference.py

    r66 r151  
    4444    default_settings = {} 
    4545 
     46    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     47    #~ Public Methods  
     48    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     49 
    4650    def SkinInitialize(self): 
    4751        self.PushContext() 
     
    4953        self.__skinner = self.context.__skinner__ 
    5054 
    51     def ReferenceFile(self, file, kwAddedContext={}): 
     55    def SkinFinalize(self): 
     56        Children = self.Elements('*')  
     57        if not Children: 
     58            self.ReferenceSkin(self.settings['file']) 
     59        else: 
     60            for child in Children: 
     61                if isinstance(child, str): 
     62                    self.ReferenceSkin(child.strip()) 
     63                elif isinstance(child.object, str): 
     64                    self.ReferenceSkin(child.object) 
     65                elif isinstance(child.object, tuple): 
     66                    apply(self.ReferenceSkin, child.object) 
     67        del self.__skinner 
     68 
     69    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     70 
     71    def ReferenceSkin(self, file, kwAddedContext={}): 
    5272        if file: 
    5373            self.object.append(self.__skinner()._SkinFileFromTopElement(file, kwAddedContext)) 
    5474         
    55     def SkinFinalize(self): 
    56         Children = self.Elements('*')  
    57         if not Children: 
    58             self.ReferenceFile(self.settings['file']) 
    59         else: 
    60             for child in Children: 
    61                 if isinstance(child, str): 
    62                     self.ReferenceFile(child.strip()) 
    63                 elif isinstance(child.object, str): 
    64                     self.ReferenceFile(child.object) 
    65                 elif isinstance(child.object, tuple): 
    66                     apply(self.ReferenceFile, child.object) 
    67         del self.__skinner 
    68