def getHardwareContainer(cls): item = None itemId = 0 # Increasing numbering for itemId:s # Create new container hwContainer = HierarchicalContainer() # Create containerproperty for name hwContainer.addContainerProperty(cls.hw_PROPERTY_NAME, str, None) # Create containerproperty for icon hwContainer.addContainerProperty( cls.hw_PROPERTY_ICON, ThemeResource, ThemeResource('../runo/icons/16/document.png')) for i in range(len(cls._hardware)): # Add new item item = hwContainer.addItem(itemId) # Add name property for item v = cls._hardware[i][0] item.getItemProperty(cls.hw_PROPERTY_NAME).setValue(v) # Allow children hwContainer.setChildrenAllowed(itemId, True) itemId += 1 for j in range(1, len(cls._hardware[i])): if j == 1: v = ThemeResource('../runo/icons/16/folder.png') item.getItemProperty(cls.hw_PROPERTY_ICON).setValue(v) # Add child items item = hwContainer.addItem(itemId) v = cls._hardware[i][j] item.getItemProperty(cls.hw_PROPERTY_NAME).setValue(v) hwContainer.setParent(itemId, itemId - j) hwContainer.setChildrenAllowed(itemId, False) itemId += 1 return hwContainer
def getHardwareContainer(cls): item = None itemId = 0 # Increasing numbering for itemId:s # Create new container hwContainer = HierarchicalContainer() # Create containerproperty for name hwContainer.addContainerProperty(cls.hw_PROPERTY_NAME, str, None) # Create containerproperty for icon hwContainer.addContainerProperty( cls.hw_PROPERTY_ICON, ThemeResource, ThemeResource("../runo/icons/16/document.png") ) for i in range(len(cls._hardware)): # Add new item item = hwContainer.addItem(itemId) # Add name property for item v = cls._hardware[i][0] item.getItemProperty(cls.hw_PROPERTY_NAME).setValue(v) # Allow children hwContainer.setChildrenAllowed(itemId, True) itemId += 1 for j in range(1, len(cls._hardware[i])): if j == 1: v = ThemeResource("../runo/icons/16/folder.png") item.getItemProperty(cls.hw_PROPERTY_ICON).setValue(v) # Add child items item = hwContainer.addItem(itemId) v = cls._hardware[i][j] item.getItemProperty(cls.hw_PROPERTY_NAME).setValue(v) hwContainer.setParent(itemId, itemId - j) hwContainer.setChildrenAllowed(itemId, False) itemId += 1 return hwContainer
class FeatureSet(Feature): """Contains the FeatureSet implementation and the structure for the feature 'tree'. Each set is implemented as it's own class to facilitate linking to sets in the same way as linking to individual features. """ FEATURES = None _pathnameToFeature = None def getSinceVersion(self): return Version.OLD def __init__(self, *args): super(FeatureSet, self).__init__() self._pathname = None self._name = None self._desc = None self._icon = 'folder.gif' self._content = None self._container = None self._containerRecursive = False nargs = len(args) if nargs == 2: pathname, content = args FeatureSet.__init__(self, pathname, pathname, '', content) elif nargs == 3: pathname, name, content = args FeatureSet.__init__(self, pathname, name, '', content) elif nargs == 4: pathname, name, desc, content = args self._pathname = pathname self._name = name self._desc = desc self._content = content FeatureSet.addFeature(self) if content is not None: for f in content: if isinstance(f, FeatureSet): continue FeatureSet.addFeature(f) else: raise ValueError @classmethod def addFeature(cls, f): if cls._pathnameToFeature is None: cls._pathnameToFeature = dict() if f.getFragmentName() in cls._pathnameToFeature: raise ValueError, ('Duplicate pathname for ' + f.getFragmentName() + ': ' + cls._pathnameToFeature[f.getFragmentName()].__class__ + ' / ' + f.__class__) cls._pathnameToFeature[f.getFragmentName()] = f def getFeature(self, pathname): return self._pathnameToFeature.get(pathname) def getFeatures(self): return self._content def getContainer(self, recurse): if self._container is None or self._containerRecursive != recurse: self._container = HierarchicalContainer() self._container.addContainerProperty(self.PROPERTY_NAME, str, '') self._container.addContainerProperty(self.PROPERTY_DESCRIPTION, str, '') # fill self.addFeatures(self, self._container, recurse) return self._container def addFeatures(self, f, c, recurse): features = f.getFeatures() for i in range(len(features)): item = c.addItem(features[i]) prop = item.getItemProperty(self.PROPERTY_NAME) prop.setValue(features[i].getName()) prop = item.getItemProperty(self.PROPERTY_DESCRIPTION) prop.setValue(features[i].getDescription()) if recurse: c.setParent(features[i], f) if isinstance(features[i], FeatureSet): self.addFeatures(features[i], c, recurse) if not isinstance(features[i], FeatureSet): c.setChildrenAllowed(features[i], False) def getDescription(self): return self._desc def getFragmentName(self): return self._pathname def getName(self): return self._name def getIconName(self): return self._icon def getRelatedAPI(self): return None def getRelatedFeatures(self): return None def getRelatedResources(self): return None
class FeatureSet(Feature): """Contains the FeatureSet implementation and the structure for the feature 'tree'. Each set is implemented as it's own class to facilitate linking to sets in the same way as linking to individual features. """ FEATURES = None _pathnameToFeature = None def getSinceVersion(self): return Version.OLD def __init__(self, *args): super(FeatureSet, self).__init__() self._pathname = None self._name = None self._desc = None self._icon = 'folder.gif' self._content = None self._container = None self._containerRecursive = False nargs = len(args) if nargs == 2: pathname, content = args FeatureSet.__init__(self, pathname, pathname, '', content) elif nargs == 3: pathname, name, content = args FeatureSet.__init__(self, pathname, name, '', content) elif nargs == 4: pathname, name, desc, content = args self._pathname = pathname self._name = name self._desc = desc self._content = content FeatureSet.addFeature(self) if content is not None: for f in content: if isinstance(f, FeatureSet): continue FeatureSet.addFeature(f) else: raise ValueError @classmethod def addFeature(cls, f): if cls._pathnameToFeature is None: cls._pathnameToFeature = dict() if f.getFragmentName() in cls._pathnameToFeature: raise ValueError, ( 'Duplicate pathname for ' + f.getFragmentName() + ': ' + cls._pathnameToFeature[f.getFragmentName()].__class__ + ' / ' + f.__class__) cls._pathnameToFeature[f.getFragmentName()] = f def getFeature(self, pathname): return self._pathnameToFeature.get(pathname) def getFeatures(self): return self._content def getContainer(self, recurse): if self._container is None or self._containerRecursive != recurse: self._container = HierarchicalContainer() self._container.addContainerProperty(self.PROPERTY_NAME, str, '') self._container.addContainerProperty(self.PROPERTY_DESCRIPTION, str, '') # fill self.addFeatures(self, self._container, recurse) return self._container def addFeatures(self, f, c, recurse): features = f.getFeatures() for i in range(len(features)): item = c.addItem(features[i]) prop = item.getItemProperty(self.PROPERTY_NAME) prop.setValue(features[i].getName()) prop = item.getItemProperty(self.PROPERTY_DESCRIPTION) prop.setValue(features[i].getDescription()) if recurse: c.setParent(features[i], f) if isinstance(features[i], FeatureSet): self.addFeatures(features[i], c, recurse) if not isinstance(features[i], FeatureSet): c.setChildrenAllowed(features[i], False) def getDescription(self): return self._desc def getFragmentName(self): return self._pathname def getName(self): return self._name def getIconName(self): return self._icon def getRelatedAPI(self): return None def getRelatedFeatures(self): return None def getRelatedResources(self): return None