Home | Trees | Indices | Help |
|
---|
|
object --+ | cGenericEditAreaMixin
Mixin for edit area panels providing generic functionality. **************** start of template **************** #==================================================================== # Class definition: from Gnumed.wxGladeWidgets import wxgXxxEAPnl class cXxxEAPnl(wxgXxxEAPnl.wxgXxxEAPnl, gmEditArea.cGenericEditAreaMixin): def __init__(self, *args, **kwargs): try: data = kwargs['xxx'] del kwargs['xxx'] except KeyError: data = None wxgXxxEAPnl.wxgXxxEAPnl.__init__(self, *args, **kwargs) gmEditArea.cGenericEditAreaMixin.__init__(self) # Code using this mixin should set mode and data # after instantiating the class: self.mode = 'new' self.data = data if data is not None: self.mode = 'edit' #self.__init_ui() #---------------------------------------------------------------- # def __init_ui(self): # # adjust phrasewheels etc #---------------------------------------------------------------- # generic Edit Area mixin API #---------------------------------------------------------------- def _valid_for_save(self): # its best to validate bottom -> top such that the # cursor ends up in the topmost failing field # remove when implemented: return False validity = True if self._TCTRL_xxx.GetValue().strip() == u'': validity = False self.display_tctrl_as_valid(tctrl = self._TCTRL_xxx, valid = False) self.status_message = _('No entry in field xxx.') self._TCTRL_xxx.SetFocus() else: self.display_tctrl_as_valid(tctrl = self._TCTRL_xxx, valid = True) if self._PRW_xxx.GetData() is None: validity = False self._PRW_xxx.display_as_valid(False) self.status_message = _('No entry in field xxx.') self._PRW_xxx.SetFocus() else: self._PRW_xxx.display_as_valid(True) return validity #---------------------------------------------------------------- def _save_as_new(self): # remove when implemented: return False # save the data as a new instance data = gmXXXX.create_xxxx() data[''] = self._ data[''] = self._ data.save() # must be done very late or else the property access # will refresh the display such that later field # access will return empty values self.data = data return False return True #---------------------------------------------------------------- def _save_as_update(self): # remove when implemented: return False # update self.data and save the changes self.data[''] = self._TCTRL_xxx.GetValue().strip() self.data[''] = self._PRW_xxx.GetData() self.data[''] = self._CHBOX_xxx.GetValue() self.data.save() return True #---------------------------------------------------------------- def _refresh_as_new(self): pass #---------------------------------------------------------------- def _refresh_as_new_from_existing(self): self._refresh_as_new() #---------------------------------------------------------------- def _refresh_from_existing(self): pass #---------------------------------------------------------------- def set_fields(self, fields): # <fields> must be a dict compatible with the # structure of the business object this edit # area is for, # thusly, the edit area knows how to set its # controls from it, # <fields> doesn't have to contain all keys, rather: # - missing ones are skipped # - unknown ones are ignored # each key must hold a dict with at least a key 'value' # and _can_ contain another key 'data', # 'value' and 'data' must be compatible with the # control they go into, # controls which don't require 'data' (say, RadioButton) # will ignore an existing 'data' key pass #---------------------------------------------------------------- **************** end of template ****************
Instance Methods | |||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
Inherited from |
Class Variables | |
mode = property(_get_mode, _set_mode)
|
|
data = property(_get_data, _set_data)
|
|
status_message = property(lambda x: x, show_msg)
|
Properties | |
Inherited from |
Method Details |
x.__init__(...) initializes x; see help(type(x)) for signature
|
Invoked from the generic edit area dialog. Invokes _valid_for_save, _save_as_new, _save_as_update on the implementing edit area as needed. _save_as_* must set self.__data and return True/False |
Invoked from the generic edit area dialog. Invokes _refresh_as_new() _refresh_from_existing() _refresh_as_new_from_existing() on the implementing edit area as needed. Then calls _valid_for_save(). |
Home | Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Wed Dec 19 02:55:28 2018 | http://epydoc.sourceforge.net |