wxoo.propertydescriptor
index
p:\wxproperties\wxoo\propertydescriptor.py

GUI-level descriptions of property-like objects

 
Modules
       
basicproperty.basic
basicproperty.common
basictypes.list_types
logging
basicproperty.propertied
wxoo.typeregistry
types
basictypes.typeunion

 
Classes
       
ListOf(rlist)
listof_Descriptors
Propertied(object)
PropertyDescriptor
BasicPropertyDescriptor

 
class BasicPropertyDescriptor(PropertyDescriptor)
    Holds description for a BasicProperty-style description
 
 
Method resolution order:
BasicPropertyDescriptor
PropertyDescriptor
Propertied
object

Methods defined here:
GetValue(self, client)
Retrieve the value from the client
 
Note: the default implementation uses
        getattr( client, self.property.name)
to do the actual transfer.  This lets the client
define __getattribute__ and __setattr__ methods
for pre/post processing of property access.
SetValue(self, client, value)
Transfer the value to the client object
 
Note: the default implementation tries:
        setattr( client, self.property.name, value)
and if that fails, uses:
        self.property.__set__( client, value )
to do the actual transfer.  This lets the client
define __getattribute__ and __setattr__ methods
for pre/post processing of property access.

Data and other attributes defined here:
baseType = <BasicProperty 'baseType'>
Optional base-type for the descriptor
dataType = <StringProperty 'dataType'>
String value declaring a unique type for editor lookups
name = <BasicProperty 'name'>
Name to be used in the property sheet
property = <BasicProperty 'property'>
BasicProperty instance used to set/get value
 
The BasicProperty is actually defered to for almost
all of the PropertyDescriptor's properties. As it is
considered the "core" of the descriptor.

Methods inherited from PropertyDescriptor:
GetEditor(self)
Return an instance of the viewing class for this property
GetName(self)
Retrieve the name of the property
GetRegisteredClasses(self, category='control')
Return an instance of the editing class for this property
GetViewer(self)
Return an instance of the viewing class for this property
HasValue(self, client)
Return true if the property can be accessed
ReadOnly(self, client)
Return true if the property should be considered read-only from the property editors
 
client is not used in the default implementation, but is provided for
subclasses which want to provide per-object negotiation
SetupType(self, grid)
Given a grid object, register our type's editing features

Class methods inherited from PropertyDescriptor:
check(cls, value) from type
Strict check that value is a propertydescriptor
coerce(cls, value) from type
Coerce the passed value to an instance of the class

Data and other attributes inherited from PropertyDescriptor:
controlRegistry = <BasicProperty 'controlRegistry'>
The control-registry which is used to lookup classes for this property
readOnly = <BooleanProperty 'readOnly'>
If true, disallow editing of the property through the property editors (doesn't change the underlying property's capabilities, just prevents changes through the property editors)

Methods inherited from Propertied:
__init__(self, *arguments, **namedarguments)
Propertied object initialisation, allows passing in initial values for properties by name
__str__(self)
Get a friendly representation of the object
clone(self, **newValues)
Clone this object, with optional new property values
 
This method calls the __init__ method of your class with
the current property values of your class.  Providing newValues
(a dictionary) overrides property settings with new values.
getCloneProperties(self)
Get properties dictionary (key:value) for use in cloning of the instance
 
By default you get getProperties()' values, with an
attempt made to use the property's name, then the property's
direct "__get__" method.
toString(self, indentation='', alreadyDone=None, indentString=' ')
Get a nicely formatted representation of this object
 
This version assumes that getProperties returns
the list of properties which should be presented,
it recursively calls it's children with greater
indents to get their representations.
 
indentation -- current string indentation level
alreadyDone -- set of object ids which are already finished
 
XXX Needs a far better API, likely a stand-alone class
        without the automatic inheritance problems here :(

Class methods inherited from Propertied:
getProperties(cls) from type
Get the BasicProperty properties for a particular object's class

Data and other attributes inherited from Propertied:
__dict__ = <dictproxy object at 0x01A2A830>
dictionary for instance variables (if defined)
__weakref__ = <attribute '__weakref__' of 'Propertied' objects>
list of weak references to the object (if defined)

 
class PropertyDescriptor(Propertied)
    Abstract base-class for property-descriptor objects
 
The property descriptor provides meta-information about
a property which is important to the GUI system.  Sub-
classes are created to provide interfaces to particular
system's storage/introspection APIs.
 
 
Method resolution order:
PropertyDescriptor
Propertied
object

Methods defined here:
GetEditor(self)
Return an instance of the viewing class for this property
GetName(self)
Retrieve the name of the property
GetRegisteredClasses(self, category='control')
Return an instance of the editing class for this property
GetValue(self, client)
Retrieve the value from the client
GetViewer(self)
Return an instance of the viewing class for this property
HasValue(self, client)
Return true if the property can be accessed
ReadOnly(self, client)
Return true if the property should be considered read-only from the property editors
 
client is not used in the default implementation, but is provided for
subclasses which want to provide per-object negotiation
SetValue(self, client, value)
Transfer the value to the client object
SetupType(self, grid)
Given a grid object, register our type's editing features

Class methods defined here:
check(cls, value) from type
Strict check that value is a propertydescriptor
coerce(cls, value) from type
Coerce the passed value to an instance of the class

Data and other attributes defined here:
baseType = <BasicProperty 'baseType'>
Optional base-type for the descriptor
controlRegistry = <BasicProperty 'controlRegistry'>
The control-registry which is used to lookup classes for this property
dataType = <StringProperty 'dataType'>
String value declaring a unique type for editor lookups
name = <BasicProperty 'name'>
Name to be used in the property sheet
readOnly = <BooleanProperty 'readOnly'>
If true, disallow editing of the property through the property editors (doesn't change the underlying property's capabilities, just prevents changes through the property editors)

Methods inherited from Propertied:
__init__(self, *arguments, **namedarguments)
Propertied object initialisation, allows passing in initial values for properties by name
__str__(self)
Get a friendly representation of the object
clone(self, **newValues)
Clone this object, with optional new property values
 
This method calls the __init__ method of your class with
the current property values of your class.  Providing newValues
(a dictionary) overrides property settings with new values.
getCloneProperties(self)
Get properties dictionary (key:value) for use in cloning of the instance
 
By default you get getProperties()' values, with an
attempt made to use the property's name, then the property's
direct "__get__" method.
toString(self, indentation='', alreadyDone=None, indentString=' ')
Get a nicely formatted representation of this object
 
This version assumes that getProperties returns
the list of properties which should be presented,
it recursively calls it's children with greater
indents to get their representations.
 
indentation -- current string indentation level
alreadyDone -- set of object ids which are already finished
 
XXX Needs a far better API, likely a stand-alone class
        without the automatic inheritance problems here :(

Class methods inherited from Propertied:
getProperties(cls) from type
Get the BasicProperty properties for a particular object's class

Data and other attributes inherited from Propertied:
__dict__ = <dictproxy object at 0x01A2A9D0>
dictionary for instance variables (if defined)
__weakref__ = <attribute '__weakref__' of 'Propertied' objects>
list of weak references to the object (if defined)

 
class listof_Descriptors(ListOf)
    
Method resolution order:
listof_Descriptors
ListOf
rlist
list
object

Data and other attributes defined here:
dataType = 'list.Descriptors'

Methods inherited from ListOf:
beforeAdd(self, value)
Called before all attempts to add an item

Methods inherited from rlist:
__iadd__ = extend(self, value)
extend with value checking
__init__(self, value=None)
Initialize the restricted list object
__setitem__(self, index, value)
__setitem__ with value checking
__setslice__(self, start, stop, value)
__setslice__ with value checking
append(self, value)
append with value checking
beforeMultipleAdd(self, value)
Called before attempts to add more than one item (beforeAdd has already be called for each item)
extend(self, value)
extend with value checking
insert(self, index, value)
insert with value checking

Data and other attributes inherited from rlist:
__dict__ = <dictproxy object at 0x01A2A770>
dictionary for instance variables (if defined)
__weakref__ = <attribute '__weakref__' of 'rlist' objects>
list of weak references to the object (if defined)

Methods inherited from list:
__add__(...)
x.__add__(y) <==> x+y
__contains__(...)
x.__contains__(y) <==> y in x
__delitem__(...)
x.__delitem__(y) <==> del x[y]
__delslice__(...)
x.__delslice__(i, j) <==> del x[i:j]
 
Use of negative indices is not supported.
__eq__(...)
x.__eq__(y) <==> x==y
__ge__(...)
x.__ge__(y) <==> x>=y
__getattribute__(...)
x.__getattribute__('name') <==> x.name
__getitem__(...)
x.__getitem__(y) <==> x[y]
__getslice__(...)
x.__getslice__(i, j) <==> x[i:j]
 
Use of negative indices is not supported.
__gt__(...)
x.__gt__(y) <==> x>y
__hash__(...)
x.__hash__() <==> hash(x)
__imul__(...)
x.__imul__(y) <==> x*=y
__iter__(...)
x.__iter__() <==> iter(x)
__le__(...)
x.__le__(y) <==> x<=y
__len__(...)
x.__len__() <==> len(x)
__lt__(...)
x.__lt__(y) <==> x<y
__mul__(...)
x.__mul__(n) <==> x*n
__ne__(...)
x.__ne__(y) <==> x!=y
__repr__(...)
x.__repr__() <==> repr(x)
__rmul__(...)
x.__rmul__(n) <==> n*x
count(...)
L.count(value) -> integer -- return number of occurrences of value
index(...)
L.index(value, [start, [stop]]) -> integer -- return first index of value
pop(...)
L.pop([index]) -> item -- remove and return item at index (default last)
remove(...)
L.remove(value) -- remove first occurrence of value
reverse(...)
L.reverse() -- reverse *IN PLACE*
sort(...)
L.sort(cmpfunc=None) -- stable sort *IN PLACE*; cmpfunc(x, y) -> -1, 0, 1

Data and other attributes inherited from list:
__new__ = <built-in method __new__ of type object at 0x1E0C3C78>
T.__new__(S, ...) -> a new object with type S, a subtype of T

 
Functions
       
defaultBPBaseType(property, client)
Figure out baseType for the property
defaultBPDataType(property, client)
Return the property's datatype, or a suitable substitute value
defaultBPName(property, client)
Figure out a name for the client property
defaultDataType(property, client)
Get a data-type value for client (a property descriptor)
defaultDescriptors(value)
Create default set of property descriptors given object
 
value -- object whose descriptors are being guessed
 
returns either value.getDescriptors()[""] or value.getProperties()
coerced to a listof_Descriptors
defaultName(property, client)
Figure out a name for the client property
defaultRegistry(property, client)
Find or create a registry for the client

 
Data
        DEBUG = 10
ERROR = 40
INFO = 20
WARN = 30
lookup_log = <logging.Logger instance at 0x01960198>