Thanks for the replies, as ever very helpful.
> PRWidgets overrides #write:using: to keep track of
its attribute values
in its properties dictionary (instead of widget
> specific accessors). This design decision
facilitates the implementation
and maintenance of specific Widgets.
This helped me understand the mechanism why PRWidget derived objects store
their properties in a directory rather than via an accessor. I experimented
by overriding #write:using in my PRWidget derived class, to reinstating the
default implementation in Object thus:
write: anObject using: aDescription
aDescription accessor write: anObject to: self
Then magically the setters in my derived class where called as I'd
originally anticipated.
I understand that sometimes it's handy to be able to dynamically add fields
to an object, which is when it makes sense to use a Dictionary, however to
aid my understanding it seems much simpler to store properties in instance
variables accessed via accessors. Will I fall into any problems if I use an
accessor pattern on my PRWidget derived classes by ensuring that
#write:using: reimplements the Object>>write:using: ?
Nick