NAME

Tree::Simple::View - A class for viewing Tree::Simple heirarchies in various formats

SYNOPSIS

use Tree::Simple::View;
# the default uses Tree::Simple::View::HTML 

use Tree::Simple::View qw(DHTML);
# now uses the Tree::Simple::View::DHTML class

DESCRIPTION

This serves as a proxy front end to the Tree::Simple::View::* classes. For now all that are included are; Tree::Simple::View::HTML and Tree::Simple::View::DHTML. Eventually I will be adding more Tree::Simple::View::* classes for it to proxy, see the "TO DO" section for more information.

This is the first release of this set of modules, and therefore it is not totally "complete". That is not to say it isn't usable. It is based on some older tree formatting code I had lying around but had never properly modularized. However, I will be using these modules in a production system in the upcoming months, so you can expect many updates which should provide increases in both performance and reliability.

METHODS

new ($tree, %config)

Depending upon the value given in the use statement, this will return an instance of Tree::Simple::View::* class. It is just a proxy to the Tree::Simple::View::*::new methods.

TO DO

More Tests

We could use some more tests, to help increase the coverage (which is only at 70.9% right now). Normally I would not release a module with coverage this low, but I need to get back to working on a project for a client (for which this module was created). But because I will be using this module in this project, I know I will be able to improve the test suite as I go.

get a demo up for people to see

I would like to link to a demo of the DHTML in particular, I have to find space on the company web server for that though.

Adding new Tree::Simple::View::* classes

I have an Tree::Simple::View::ASCII class in the works, which will output Trees in plain text, and optionally support ANSI colors for terminal output.

I am considering a Tree::Simple::View::PS or Tree::Simple::View::PDF class which could output either Postscript or PDF trees.

I have thought about Tree::Simple::View::XML, but I am not sure it would be useful really.

I suppose that Tree::Simple::View::* classes could be made for various GUI toolkits like Tk, etc. But to tell the truth, I am not that familiar with non-web GUIs, so that is likely a long way off.

BUGS

None that I am aware of. Of course, if you find a bug, let me know, and I will be sure to fix it.

CODE COVERAGE

I use Devel::Cover to test the code coverage of my tests, below is the Devel::Cover report on this module test suite.

---------------------------------- ------ ------ ------ ------ ------ ------ ------
File                                 stmt branch   cond    sub    pod   time  total
---------------------------------- ------ ------ ------ ------ ------ ------ ------
/Tree/Simple/View.pm                100.0   66.7    n/a  100.0  100.0    0.4   93.9
/Tree/Simple/View/Base.pm            71.4   62.5   33.3   50.0  100.0   24.7   64.5
/Tree/Simple/View/DHTML.pm           60.5   25.0    0.0   78.9  100.0    9.1   56.4
/Tree/Simple/View/HTML.pm            71.3   41.7   20.0   85.0  100.0   11.0   63.7
t/10_Tree_Simple_View_test.t        100.0    n/a    n/a  100.0    n/a    4.2  100.0
t/20_Tree_Simple_View_HTML_test.t   100.0    n/a    n/a  100.0    n/a   19.7  100.0
t/30_Tree_Simple_View_DHTML_test.t  100.0    n/a    n/a  100.0    n/a   30.9  100.0
---------------------------------- ------ ------ ------ ------ ------ ------ ------
Total                                77.3   40.5   20.0   82.9  100.0  100.0   70.9
---------------------------------- ------ ------ ------ ------ ------ ------ ------

SEE ALSO

There are a few modules out there that I have seen which do similar things to these modules. I have attempted to describe them here, but not being a user of these modules myself, I can not do them justice. If you think I have mis-represented or just under-represented these modules, please let me know. Also, if I have not included a module which should be here, let me know and I will add it.

HTML::PopupTreeSelect

This module implements a DHTML "pop-up" dialog which contains an expand-collapse tree, which can be used for selecting an item from a heirarchy. It looks to me to be very configurable and have all its bases covered, right down to handling some of the uglies of cross-browser/cross-platform DHTML. However it is really for a very specific purpose, and not for general tree display like this module.

HTML-TreeStructured

This module actually seems to do something very similar to these modules, but to be honest, the documentation is very, very sparse, and so I am not really sure how to go about using it. From a quick read of the code it seems to use HTML::Template as its base, but after that I am not sure.

CGI::Explorer

This module is similar to the HTML::PopupTreeSelect, in that it is intended for a more singular purpose. This module implements a Windows-style explorer tree.

AUTHOR

stevan little, <stevan@iinteractive.com>

COPYRIGHT AND LICENSE

Copyright 2004 by Infinity Interactive, Inc.

http://www.iinteractive.com

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.