예제 #1
0
    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
예제 #2
0
파일: ExampleUtil.py 프로젝트: rwl/muntjac
    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
예제 #3
0
파일: FeatureSet.py 프로젝트: AvdN/muntjac
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
예제 #4
0
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