Ejemplo n.º 1
0
    def testRefilterOnPropertyModification(self):
        container = BeanItemContainer(Person)

        john = Person('John')
        jane = Person('Jane')
        matthew = Person('Matthew')

        container.addBean(john)
        container.addBean(jane)
        container.addBean(matthew)

        self.assertEquals(3, len(container))
        # john, jane, matthew

        container.addContainerFilter('name', 'j', True, True)

        self.assertEquals(2, len(container))
        # john, jane, (matthew)

        # #6053 currently, modification of an item that is not visible does not
        # trigger refiltering - should it?
        # matthew.setName("Julia");
        # assertEquals(3, container.size());
        # john, jane, julia

        john.setName('Mark')
        self.assertEquals(2, len(container))

        # (mark), jane, julia
        container.removeAllContainerFilters()

        self.assertEquals(3, len(container))
Ejemplo n.º 2
0
    def testAddRemoveWhileFiltering(self):
        container = BeanItemContainer(Person)

        john = Person('John')
        jane = Person('Jane')
        matthew = Person('Matthew')

        jack = Person('Jack')
        michael = Person('Michael')
        william = Person('William')
        julia = Person('Julia')
        george = Person('George')
        mark = Person('Mark')

        container.addBean(john)
        container.addBean(jane)
        container.addBean(matthew)

        self.assertEquals(3, len(container))
        # john, jane, matthew

        container.addContainerFilter('name', 'j', True, True)

        self.assertEquals(2, len(container))
        # john, jane, (matthew)

        # add a bean that passes the filter
        container.addBean(jack)
        self.assertEquals(3, len(container))
        self.assertEquals(jack, container.lastItemId())
        # john, jane, (matthew), jack

        # add beans that do not pass the filter
        container.addBean(michael)
        # john, jane, (matthew), jack, (michael)
        container.addItemAfter(None, william)
        # (william), john, jane, (matthew), jack, (michael)

        # add after an item that is shown
        container.addItemAfter(john, george)
        # (william), john, (george), jane, (matthew), jack, (michael)
        self.assertEquals(3, len(container))
        self.assertEquals(john, container.firstItemId())

        # add after an item that is not shown does nothing
        container.addItemAfter(william, julia)
        # (william), john, (george), jane, (matthew), jack, (michael)
        self.assertEquals(3, len(container))
        self.assertEquals(john, container.firstItemId())

        container.addItemAt(1, julia)
        # (william), john, julia, (george), jane, (matthew), jack, (michael)
        container.addItemAt(2, mark)
        # (william), john, julia, (mark), (george), jane, (matthew), jack,
        # (michael)

        container.removeItem(matthew)
        # (william), john, julia, (mark), (george), jane, jack, (michael)

        self.assertEquals(4, len(container))
        self.assertEquals(jack, container.lastItemId())

        container.removeContainerFilters('name')

        self.assertEquals(8, len(container))
        self.assertEquals(william, container.firstItemId())
        self.assertEquals(john, container.nextItemId(william))
        self.assertEquals(julia, container.nextItemId(john))
        self.assertEquals(mark, container.nextItemId(julia))
        self.assertEquals(george, container.nextItemId(mark))
        self.assertEquals(jane, container.nextItemId(george))
        self.assertEquals(jack, container.nextItemId(jane))
        self.assertEquals(michael, container.lastItemId())