| 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.StatusText = _('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.StatusText = _('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)
|
|
StatusText = property(lambda x: x, _set_status_text)
|
|
| 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 Sat Feb 29 02:55:27 2020 | http://epydoc.sourceforge.net |