.. wxPython Phoenix documentation

   This file was generated by Phoenix's sphinx generator and associated
   tools, do not edit by hand.

   Copyright: (c) 2011-2020 by Total Control Software
   License:   wxWindows License

.. include:: headings.inc

.. currentmodule:: wx.lib.agw.persist.persistencemanager

.. highlight:: python



.. _wx.lib.agw.persist.persistencemanager.PersistentObject:

==========================================================================================================================================
|phoenix_title|  **wx.lib.agw.persist.persistencemanager.PersistentObject**
==========================================================================================================================================

:class:`PersistentObject`: ABC for anything persistent.

This is the base class for persistent object adapters.
wxPython persistence framework is non-intrusive, i.e. can work with the
classes which have no relationship to nor knowledge of it. To allow this,
an intermediate persistence adapter is used: this is just a simple object
which provides the methods used by :class:`PersistenceManager` to save and restore
the object properties and implements them using the concrete class methods.

You may derive your own classes from :class:`PersistentObject` to implement persistence
support for your common classes, see :ref:`persistent-windows` in the
`__init__.py` file.



|

|class_hierarchy| Class Hierarchy
=================================

.. raw:: html

   <div id="toggleBlock" onclick="return toggleVisibility(this)" class="closed" style="cursor:pointer;">
   <img id="toggleBlock-trigger" src="_static/images/closed.png"/>
   Inheritance diagram for class <strong>PersistentObject</strong>:
   </div>
   <div id="toggleBlock-summary" style="display:block;"></div>
   <div id="toggleBlock-content" style="display:none;">
   <p class="graphviz">
   <center><img src="_static/images/inheritance/wx.lib.agw.persist.persistencemanager.PersistentObject_inheritance.png" alt="Inheritance diagram of PersistentObject" usemap="#dummy" class="inheritance"/></center>
   <script type="text/javascript">toggleVisibilityOnLoad(document.getElementById('toggleBlock'))</script>
   <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.lib.agw.persist.persistencemanager.PersistentObject.html" title="wx.lib.agw.persist.persistencemanager.PersistentObject" alt="" coords="5,5,392,35"/> </map> 
   </p>
   </div>

|


|method_summary| Methods Summary
================================

================================================================================ ================================================================================
:meth:`~wx.lib.agw.persist.persistencemanager.PersistentObject.__init__`         Default class constructor.
:meth:`~wx.lib.agw.persist.persistencemanager.PersistentObject.GetKind`          Returns the string uniquely identifying the objects supported by this adapter.
:meth:`~wx.lib.agw.persist.persistencemanager.PersistentObject.GetName`          Returns the string uniquely identifying the window we're associated with
:meth:`~wx.lib.agw.persist.persistencemanager.PersistentObject.GetWindow`        Returns the actual associated window.
:meth:`~wx.lib.agw.persist.persistencemanager.PersistentObject.Restore`          Restores the corresponding window settings.
:meth:`~wx.lib.agw.persist.persistencemanager.PersistentObject.RestoreCtrlValue` Restore the value saved by :meth:`~PersistentObject.SaveCtrlValue`, should be used only for
:meth:`~wx.lib.agw.persist.persistencemanager.PersistentObject.RestoreValue`     Restore the value saved by :meth:`~PersistentObject.SaveValue`.
:meth:`~wx.lib.agw.persist.persistencemanager.PersistentObject.Save`             Saves the corresponding window settings.
:meth:`~wx.lib.agw.persist.persistencemanager.PersistentObject.SaveCtrlValue`    Save the specified value using the given name, should be used only for
:meth:`~wx.lib.agw.persist.persistencemanager.PersistentObject.SaveValue`        Save the specified value using the given name.
================================================================================ ================================================================================


|


|api| Class API
===============


.. class:: PersistentObject(object)

   :class:`PersistentObject`: ABC for anything persistent.
   
   This is the base class for persistent object adapters.
   wxPython persistence framework is non-intrusive, i.e. can work with the
   classes which have no relationship to nor knowledge of it. To allow this,
   an intermediate persistence adapter is used: this is just a simple object
   which provides the methods used by :class:`PersistenceManager` to save and restore
   the object properties and implements them using the concrete class methods.
   
   You may derive your own classes from :class:`PersistentObject` to implement persistence
   support for your common classes, see :ref:`persistent-windows` in the
   `__init__.py` file.

   .. method:: __init__(self, window, persistenceHandler=None)

      Default class constructor.
      
      :param `window`: an instance of :class:`wx.Window`;
      :param `persistenceHandler`: if not ``None``, this should a custom handler derived
       from :class:`~wx.lib.agw.persist.persist_handlers.AbstractHandler`.


   .. method:: GetKind(self)

      Returns the string uniquely identifying the objects supported by this adapter.
      
      :note: This method is called from :meth:`~PersistentObject.SaveValue` and :meth:`~PersistentObject.RestoreValue` and normally
       returns some short (but not too cryptic) strings, e.g. "Checkbox".


   .. method:: GetName(self)

      Returns the string uniquely identifying the window we're associated with
      among all the other objects of the same type.
      
      :note: This method is used together with :meth:`~PersistentObject.GetKind` to construct the unique
       full name of the object in e.g. a configuration file.


   .. method:: GetWindow(self)

      Returns the actual associated window. 


   .. method:: Restore(self)

      Restores the corresponding window settings.
      
      :note: This method shouldn't be used directly as it doesn't respect the
       global :meth:`PersistenceManager.DisableRestoring() <PersistenceManager.DisableRestoring>` settings, use :class:`PersistenceManager`
       methods with the same name instead.


   .. method:: RestoreCtrlValue(self, name)

      Restore the value saved by :meth:`~PersistentObject.SaveCtrlValue`, should be used only for
      controls data value.
      
      :param `name`: the same name as was used by :meth:`~PersistentObject.SaveCtrlValue`.
      
      :returns: ``True`` if the value was successfully read or ``False`` if
       it was not found or an error occurred.


   .. method:: RestoreValue(self, name)

      Restore the value saved by :meth:`~PersistentObject.SaveValue`.
      
      :param `name`: the same name as was used by :meth:`~PersistentObject.SaveValue`.
      
      :returns: ``True`` if the value was successfully read or ``False`` if
       it was not found or an error occurred.


   .. method:: Save(self)

      Saves the corresponding window settings.
      
      .. note::
      
         This method shouldn't be used directly as it doesn't respect the
         global :meth:`PersistenceManager.DisableSaving() <PersistenceManager.DisableSaving>` settings, use :class:`PersistenceManager`
         methods with the same name instead.


   .. method:: SaveCtrlValue(self, name, value)

      Save the specified value using the given name, should be used only for
      controls data value.
      
      :param `name`: the name of the value in the configuration file;
      :param `value`: the value to save.
      
      :returns: ``True`` if the value was saved or ``False`` if an error occurred.


   .. method:: SaveValue(self, name, value)

      Save the specified value using the given name.
      
      :param `name`: the name of the value in the configuration file;
      :param `value`: the value to save.
      
      :returns: ``True`` if the value was saved or ``False`` if an error occurred.


