NAME
HTML::GUI::widget - Create and control GUI for web application
VERSION
Version 0.01
WIDGET
base class for HTML widgets
PUBLIC METHODS
new
Parameters :
params : hash ref : Contains the properties of the widget :
-type : text, select, checkbox
-value : the value of the widget
-id : the id of the widget (mandatory)
-display : if false, the fied has the propertie style="display:none"
-constraints : array ref of contraints names
-label : text associated with the fiel
-title : title to display when the mouse cursor is over the widget
-class : css class to associate with the widget
-disabled : the widget is disabled or not
Return :
Description :
create a new html widget.
It can be feed with data manually or automatically with a hash.
FACTORY
instantiante any widget previously serialized
instantiate
Create widgets from the data structure $data
This is a class method so it should be use like this :
HTML::GUI::widget->instantiate($myString)
Parameters :
-$data : the data structure which describe the widgets
-$path : the path (used to name the screen objects)
Return :
a widget or undef if the $data is not correct
instantiateFromYAML
Instantiante a widget from a yaml string
This is a class method so it should be use like this :
HTML::GUI::widget->instantiateFromYAML($myString)
parameters :
- $class : the className
- $yamlString : the yaml string describing the widget
- $path : the path (used to name the screen objects)
returns :
-the new widget or undef if the yaml does not describe a widget
setParent
Return :
nothing
Description :
set the reference to the parent of the widget in the widget tree
top
Return :
the root of the widget tree or itself if the widget doesn't belong to
any container
setRootDirectory
Description :
Define the root Directory of the screen definitions
getRootAncestor
Description :
search the root of the current widget tree.
Return :
The root object of the current tree
getHtml
Parameters :
Return :
string
Description :
Return the html of the widget.
getId
Return :
string
Description :
return the id of the widget.
getIds
Return :
array
Description :
return an array of the ids of the widget.
For simple widget, it's the same thing as getId
but it's different for container which can have many widgets.
getTempId
Return a new widget id who is unique for the current screen.
getElementById
Parameters :
id : string : id of the object to find.
Description :
return the widget whose id is $id or undef if no object has this id
getStyleContent
Description :
return the content of the html 'style' attribute
Parameters :
style : hashref : reference to a hash containing all styles attributs ; if not defined, the function use $self->style to generate a html content
setProp
Parameters :
params : hash ref : defines params value
Return :
Description :
getProp
Parameters :
$propName : the name of the property we want to read
Return :
- the value of the property if it exists
- undef if the property doesn't exists
getDefinitionData
This method is the miror of the "new" method it generate a data structure that defines the widget, calling the "new" function with this hash ref will create the same widget. It is usefull for serialing a widget.
With no parameters it works for a generic widget, but it is possible to specify paramters in order to specialise the behavior for a particular class.
The expression "definition data" means the data that are specified when calling the 'new' function. Exemple :
my $definitionData = {id => "textObject", value=> '2'};
my $textInputWidget = HTML::GUI::text->new($definitionData);
Parameters :
- $paramPublicProp : the hash to feed with the public properties, if undef a new hash is created
- $paramDefaultValue : an ARRAY ref containing a list of the default values (if a propertie is set to a default value, il is not specified as a "definition data"), if undef the default values of generic widgets is used
- $paramPublicPropList : the list of properties that can be "definition data", if undef the list of public properties of a generic widget is used
Return :
- a ref to the hash that define the public properties of the widget
serializeToYAML
return a string describing the current widget in YAML format
writeToFile
write the seralization of the current objet into the file $fileName.
Currently, only the YAML is available, so $fileName MUST be like "*.yaml"
Parameters :
- $fileName : the name of the file to write into
returns :
- 1 if the operation terminates normally
- 0 if a problem occurs
instantiateFromFile
Instantiate widgets from a file
Currently, only the YAML format is available, so $fileName MUST be like "*.yaml"
Parameters :
- $fileName : the name of the file to read
- $baseDir (optional) : the base Directory (this path is added befaor $fileName
to effectively locate the file on the filesystem)
returns :
- the widgets object newly created if the operation terminates normally
- undef if a problem occurs
clone
Parameters :
params : hash ref : params to overload the params of the current objet (changing the id is a good idea)
Return :
widget
Description :
error
Parameters :
type : string : Visibility of the error (pub/priv)
params : hashref : params of the error
Description :
record one error in the current objet
printTime
Parameters :
$time : string : a value returned by the function time
Description :
return a human readable string of the date $time
dumpStack
Parameters :
stackName : string : name of the stack to convert to string
Description :
return a human readable string of the stack $stackName
getCurrentStack
Description :
return a array of the current stack
alert
Description :
store an alert message in the current objet
debug
Parameters :
message : string : message to debug
Description :
record one debug in the current objet
getLabel
Description :
return the label of the current obj
getLabelHtml
Description :
return the html of the label of the current obj
If the label is a void string, return ''
METHODS FOR SUBCLASSING
PRIVATE METHODS
getPubPropHash
Returns :
propHash : hash : a hash containing the value '1' pour each public propertie
getPath
Return :
a string containing the actual path of the module
validate
Description :
All widgets are OK by default. The input widgets have custom
validate function to implements constraints.
Return :
always 1
getValueHash
Description :
Default method for all non-input and non-container widgets
Return :
undef
fired
Parameters :
$params : the hash ref containing the POST key-value pairs.
Decription :
this function aims to be specialized for buttons.
Returns :
- true if the current object was fired
- false otherwise
getNodeSession
Decription :
return a hash ref to the session. This is a low level API to
manage multiple user session in multiple windows.
This function MUST be refined by the choosen engine.
Returns :
- a hash ref to the session corresponding to the user agent cookie
- a void hash ref if no session can be found
getSession
Decription :
return a hash ref to the session corresponding to one window of the browser. If a user opens two windows of the same brower, he will need to connect two times, getSession will return two different sessions.
This method MUST be implemented by the engine
Returns :
- a hash ref to the session corresponding to the user agent cookie
- a void hash ref if no session can be found
getFunctionFromName
Description :
Find the function whose name is $functionName
If the module of the function not loaded, it will be loaded automatically.
Returns :
- a ref to the function whose name is $functionName if it exists
- undef if no function of this name exists
AUTHOR
Jean-Christian Hassler, <jhassler at free.fr>
BUGS
Please report any bugs or feature requests to bug-gui-libhtml-screen at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=HTML-GUI. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc HTML::GUI::widget
You can also look for information at:
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
RT: CPAN's request tracker
Search CPAN
ACKNOWLEDGEMENTS
COPYRIGHT & LICENSE
Copyright 2007 Jean-Christian Hassler, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.