Gtk2::Ex::FormFactory::Proxy

NAME

Gtk2::Ex::FormFactory::Proxy − Proxy class for application objects

SYNOPSIS

#−− 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
);

DESCRIPTION

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.

OBJECT HIERARCHY

Gtk2::Ex::FormFactory::Proxy

ATTRIBUTES

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.

METHODS

$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.

AUTHORS

Jörn Reder <joern at zyn dot de>

COPYRIGHT AND LICENSE

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.

POD ERRORS

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