Mercurial > libervia-backend
diff frontends/src/primitivus/xmlui.py @ 969:5c7707c958d8
tools, frontends (xmlui): add setter methods for widgets + new widget InternalButton to process UI operations
author | souliane <souliane@mailoo.org> |
---|---|
date | Tue, 01 Apr 2014 21:30:21 +0200 |
parents | 75f3b3b430ff |
children | b37b1d183ac3 |
line wrap: on
line diff
--- a/frontends/src/primitivus/xmlui.py Tue Apr 01 21:21:13 2014 +0200 +++ b/frontends/src/primitivus/xmlui.py Tue Apr 01 21:30:21 2014 +0200 @@ -19,6 +19,7 @@ from sat.core.i18n import _ import urwid +import copy from urwid_satext import sat_widgets from logging import debug, info, warning, error from xml.dom import minidom @@ -78,11 +79,15 @@ urwid.Divider.__init__(self, div_char) + class PrimitivusStringWidget(xmlui.StringWidget, sat_widgets.AdvancedEdit, PrimitivusEvents): def __init__(self, parent, value): sat_widgets.AdvancedEdit.__init__(self, edit_text=value) + def _xmluiSetValue(self, value): + self.set_edit_text(value) + def _xmluiGetValue(self): return self.get_edit_text() @@ -92,6 +97,9 @@ def __init__(self, parent, value): sat_widgets.Password.__init__(self, edit_text=value) + def _xmluiSetValue(self, value): + self.set_edit_text(value) + def _xmluiGetValue(self): return self.get_edit_text() @@ -101,6 +109,9 @@ def __init__(self, parent, value): sat_widgets.AdvancedEdit.__init__(self, edit_text=value, multiline=True) + def _xmluiSetValue(self, value): + self.set_edit_text(value) + def _xmluiGetValue(self): return self.get_edit_text() @@ -110,6 +121,9 @@ def __init__(self, parent, state): urwid.CheckBox.__init__(self, '', state=state) + def _xmluiSetValue(self, value): + self.set_state(value == "true") + def _xmluiGetValue(self): return "true" if self.get_state() else "false" @@ -135,6 +149,21 @@ def _xmluiGetSelectedValues(self): return [option.value for option in self.getSelectedValues()] + def _xmluiAddValues(self, values, select=True): + current_values = self.getAllValues() + new_values = copy.deepcopy(current_values) + for value in values: + if value not in current_values: + new_values.append(value) + if select: + selected = self._xmluiGetSelectedValues() + self.changeValues(new_values) + if select: + for value in values: + if value not in selected: + selected.append(value) + self._xmluiSelectValues(selected) + class PrimitivusAdvancedListContainer(xmlui.AdvancedListContainer, sat_widgets.TableContainer, PrimitivusEvents):