def _setup_comboboxentry_slave(self, data=None): widget = ProxyComboEntry() widget.props.sensitive = self.sensitive widget.model_attribute = "field_value" widget.data_type = unicode detail = sysparam.get_detail_by_name(self.model.field_name) is_mandatory = not detail.allow_none self._block_none_value = is_mandatory widget.set_property('mandatory', is_mandatory) if not data: field_type = detail.get_parameter_type() # FIXME: DEFAULT_PAYMENT_METHOD needs to filter information from # domain because it cannot be any non-creatable method. # Find a way to implement this in a generic on ParameterDetails if self.model.field_name == "DEFAULT_PAYMENT_METHOD": result = PaymentMethod.get_creatable_methods( self.store, Payment.TYPE_IN, False) else: result = self.store.find(field_type) data = [(res.get_description(), unicode(res.id)) for res in result] widget.prefill(data) self.proxy.add_widget("field_value", widget) self.container.add(widget) widget.show() widget.connect('validation-changed', self._on_entry__validation_changed)
def testSelectItemByData(self): entry = ProxyComboEntry() entry.prefill([('one', 1), ('two', 2)]) entry.select_item_by_data(1) self.assertEqual(entry.get_text(), 'one') entry.select_item_by_data(2) self.assertEqual(entry.get_text(), 'two') self.assertRaises(KeyError, entry.select_item_by_data, 3)
def testSelectItemByLabelInDataMode(self): entry = ProxyComboEntry() entry.prefill([('one', 1), ('two', 2)]) entry.select_item_by_label('one') self.assertEqual(entry.get_text(), 'one') entry.select_item_by_label('two') self.assertEqual(entry.get_text(), 'two') self.assertRaises(KeyError, entry.select_item_by_label, 'three')
def test_prefill_attr_none(self): model = Settable(attr=None) proxy = Proxy(FakeView(), model) combo = ProxyComboEntry() combo.data_type = int combo.model_attribute = 'attr' combo.prefill([('foo', 10), ('bar', 20)]) proxy.add_widget('attr', combo) self.assertEqual(model.attr, None)
class FavouriteColor(BaseView): def __init__(self): win = Gtk.Window() win.set_title("Silly question") win.set_border_width(12) label = Gtk.Label(label="What is your favourite color?") box = Gtk.VBox(spacing=6) box.pack_start(label, False, True, 0) self.combo = ProxyComboEntry() self.combo.data_type = str self.combo.model_attribute = 'color' self.combo.prefill(load_colors(), sort=True) box.pack_start(self.combo, False, True, 0) win.add(box) BaseView.__init__(self, toplevel=win, delete_handler=self.quit_if_last)
def _setup_comboboxentry_slave(self, data=None): widget = ProxyComboEntry() widget.props.sensitive = self.sensitive widget.model_attribute = "field_value" widget.data_type = unicode widget.mandatory = True if not data: field_type = sysparam(self.store).get_parameter_type(self.model.field_name) result = self.store.find(field_type) data = [(res.get_description(), unicode(res.id)) for res in result] widget.prefill(data) self.proxy.add_widget("field_value", widget) self.container.add(widget) widget.show() widget.connect('validation-changed', self._on_entry__validation_changed)
class FavouriteColor(BaseView): def __init__(self): win = gtk.Window() win.set_title("Silly question") win.set_border_width(12) label = gtk.Label("What is your favourite color?") box = gtk.VBox(spacing=6) box.pack_start(label, False) self.combo = ProxyComboEntry() self.combo.data_type = str self.combo.model_attribute = 'color' self.combo.prefill(load_colors(), sort=True) box.pack_start(self.combo, False) win.add(box) BaseView.__init__(self, toplevel=win, delete_handler=self.quit_if_last)
def __init__(self): box = Gtk.HBox(spacing=6) box.set_border_width(6) box.show() label = Gtk.Label(label="Number:") label.show() box.pack_start(label, False, False, 0) combo = ProxyComboEntry() combo.set_property('model-attribute', 'number') combo.set_property('data-type', 'str') combo.prefill(['One', 'Two', 'Three']) combo.show() box.pack_start(combo, True, True, 0) self.combo = combo SlaveDelegate.__init__(self, toplevel=box, widgets=['combo'])
def __init__(self): box = gtk.HBox(spacing=6) box.set_border_width(6) box.show() label = gtk.Label("Nummer:") label.show() box.pack_start(label, False, False) combo = ProxyComboEntry() combo.set_property('model-attribute', 'nummer') combo.set_property('data-type', 'str') combo.prefill(['Ett', u'Två', 'Tre']) combo.show() box.pack_start(combo) self.combo = combo SlaveDelegate.__init__(self, toplevel=box, widgets=['combo'])
def testSelectInTextMode(self): entry = ProxyComboEntry() entry.prefill(['one', 'two']) entry.select('two') self.assertEqual(entry.get_selected(), 'two')
def testStringMode(self): entry = ProxyComboEntry() self.assertEqual(entry.get_mode(), ComboMode.UNKNOWN) entry.prefill(['one', 'two']) self.assertEqual(entry.get_mode(), ComboMode.STRING)
def testSelectItemByDataInTextMode(self): entry = ProxyComboEntry() entry.prefill(['one', 'two']) self.assertRaises(TypeError, entry.select_item_by_data, 1)
def testDataMode(self): entry = ProxyComboEntry() self.assertEqual(entry.get_mode(), ComboMode.UNKNOWN) entry.prefill([('one', 1), ('two', 2)]) self.assertEqual(entry.get_mode(), ComboMode.DATA)
def testSelectInDataMode(self): entry = ProxyComboEntry() entry.prefill([('one', 1), ('two', 2)]) entry.select(2) self.assertEqual(entry.get_selected(), 2)
def testGetSelectedInTextMode(self): entry = ProxyComboEntry() self.assertEqual(entry.get_selected(), None) entry.prefill(['one', 'two']) entry.select_item_by_label('two') self.assertEqual(entry.get_selected(), 'two')
def testGetSelectedInDataMode(self): entry = ProxyComboEntry() self.assertEqual(entry.get_selected(), None) entry.prefill([('one', 1), ('two', 2)]) entry.select_item_by_label('two') self.assertEqual(entry.get_selected(), 2)