Gtk2::Ex::FormFactory::Proxy - Proxy class for application objects
#-- Proxies are always created through
#-- Gtk2::Ex::FormFactory::Context, never
#-- directly by the application.
Gtk2::Ex::FormFactory::Proxy->new (
context => Gtk2::Ex::FormFactory::Context,
object => Object instance or CODEREF,
name => Name of this proxy,
set_prefix => Method prefix for write accessors,
get_prefix => Method prefix for read accessors,
attr_accessors_href => Hashref with accessor callbacks,
attr_activity_href => Hashref with activity callbacks,
aggregated_by => Fully qualified attribute of the parent,
changes_attr_filter => Regex for attributes which should not trigger
the object's 'changed' status
);
This class implements a generic proxy mechanism for accessing application
objects and their attributes. It defines attributes of the associated object
are accessed. You never instantiate objects of this class by yourself; they're
created internally by Gtk2::Ex::FormFactory::Context when adding objects with
the Context->add_object() method.
But you may use the proxy objects e.g. for updates which affect
the application object and the GUI as well.
You can receive Proxy objects using the
Gtk2::Ex::FormFactory::Context->get_proxy() method.
Gtk2::Ex::FormFactory::Proxy
Attributes are handled through the common get_ATTR(), set_ATTR()
style accessors.
- context = Gtk2::Ex::FormFactory::Context [mandatory]
- The Context this proxy belongs to.
- object = Object instance | CODEREF
- The application object itself or a code reference, which returns the
object instance.
- name = SCALAR [mandatory]
- The Context wide unique name of this Proxy.
- set_prefix = SCALAR [optional]
- This is the method prefix for write accessors. Defaults to
set_.
- get_prefix = SCALAR [optional]
- This is the method prefix for read accessors. Defaults to
get_.
- attr_accessors_href = HASHREF [optional]
- With this hash you can override specific accessors with a code reference,
which is called instead of the object's own accessor.
Refer to Gtk2::Ex::FormFactory::Context->add_object for
details.
- attr_activity_href = HASHREF [optional]
- This hash defines callbacks for attributes which return the activity state
of the corresonding attribute.
Refer to Gtk2::Ex::FormFactory::Context->add_object for
details.
- aggregated_by = "object.attr" [optional]
- Fully qualified attribute of the parent aggregating this object
Refer to Gtk2::Ex::FormFactory::Context->add_object for
details.
- changes_attr_filter = REGEX [optional]
- Refer to Gtk2::Ex::FormFactory::Context->add_object for details.
- object_changed = BOOLEAN
- This flag indicates whether the object represented by this Proxy was
changed. You may set this attribute to reset the object's changed
state.
- $app_object = $proxy->get_object ()
- This returns the actual application object of this Proxy, either the
statical assigned instance or a dynamicly retrieved instance.
- $proxy->set_object ($object)
- Changes the application object instance in this Proxy. All dependend
Widgets on the GUI are updated accordingly.
- $app_object_attr_value = $proxy->get_attr ($attr)
- Returns the application object's attribute $attr of
this Proxy.
If $attr has the form
"object.attr" the attribute of the correspondent object is
retreived, instead of the object associated with this proxy.
- $proxy->set_attr ($attr => $value)
- Changes the application object's attribute $attr to
$value and updates all dependend Widgets on the GUI
accordingly.
If $attr has the form
"object.attr" the correspondent object will be updated,
instead of the object associated with this proxy.
- $proxy->set_attrs ( { $attr => $value, ... } )
- Changes a bunch of application object's attributes, which is passed as a
hash reference with $attr =>
$value pairs and updates all dependend Widgets on the
GUI accordingly.
- $activity = $proxy->get_attr_activity ($attr)
- Returns the current activity state of $attr.
-
Jörn Reder <joern at zyn dot de>
Copyright 2004-2006 by Jörn Reder.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307
USA.
Hey! The above document had some coding errors, which are explained
below:
- Around line 470:
- Expected text after =item, not a bullet
- Around line 476:
- Non-ASCII character seen before =encoding in 'Jörn'. Assuming
CP1252