def testAddInEventListener(self): tf = TextField() class Outer(IValueChangeListener): def __init__(self, test, tf): self._test = test self._tf = tf def valueChange(self, event): class Inner(IValueChangeListener): def __init__(self, test): self._test = test def valueChange(self, event): self._test._innerListenerCalls += 1 print 'The inner listener was called' self._tf.addListener(Inner(self._test), IValueChangeListener) tf.addListener(Outer(self, tf), IValueChangeListener) tf.setValue('abc') # No inner listener calls, adds one inner tf.setValue('def') # One inner listener call, adds one inner tf.setValue('ghi') # Two inner listener calls, adds one inner self.assertEqual(self._innerListenerCalls, 3)
def __init__(self, color): """Instantiates a new color picker preview.""" super(ColorPickerPreview, self).__init__() self.setStyleName('v-colorpicker-preview') self.setImmediate(True) self._color = color self._field = TextField() self._field.setReadOnly(True) self._field.setImmediate(True) self._field.setSizeFull() self._field.setStyleName('v-colorpicker-preview-textfield') self._field.setData(self) self._field.addListener(self, IValueChangeListener) self._field.addValidator(RegexpValidator('#[0-9a-fA-F]{6}', True, '')) self._oldValue = None self.addComponent(self._field) self.setColor(color)
def createFieldByPropertyType(cls, typ): """Creates fields based on the property type. The default field type is L{TextField}. Other field types generated by this method: - B{Boolean}: L{CheckBox}. - B{Date}: L{DateField}(resolution: day). - B{IItem}: L{Form}. - B{default field type}: L{TextField}. @param typ: the type of the property @return: the most suitable generic L{Field} for given type """ from muntjac.ui.date_field import DateField # FIXME: circular import from muntjac.ui.text_field import TextField from muntjac.ui.check_box import CheckBox from muntjac.ui.form import Form # Null typed properties can not be edited if typ is None: return None # IItem field if issubclass(typ, IItem): return Form() # Date field if issubclass(typ, datetime): df = DateField() df.setResolution(DateField.RESOLUTION_DAY) return df # Boolean field if issubclass(typ, bool): return CheckBox() return TextField()
def setUp(self): super(TestTextFieldValueChange, self).setUp(TextField())
def testIntegerValidation(self): field = TextField() field.addValidator(IntegerValidator('Enter a Valid Number')) field.setValue(int(10)) field.validate()