def setRenderedValue(self, value): """See IWidget.""" self.setUpSubWidgets() if IBranchTarget.providedBy(value): if IProduct.providedBy(value.context): self.default_option = 'product' self.product_widget.setRenderedValue(value.context) return elif IPerson.providedBy(value.context): self.default_option = 'personal' return else: raise AssertionError('Not a valid value: %r' % value)