#!/usr/bin/perl -Tw
use strict;
package Pos::Webtop::Web::TreeNode;
sub new
{
my $this = shift;
my $class = ref($this) || $this;
my ($text, $appendFrontText, $appendBackText, $js) = @{{@_}}{qw/text appendFrontText appendBackText js/};
my $self = {};
bless($self,$class);
$self->{'nodes'} = [];
$self->{'text'} = $text;
$self->{'appendFrontText'} = $appendFrontText;
$self->{'appendBackText'} = $appendBackText;
$self->{'js'} = $js;
return $self;
}
sub pushNode
{
my $self = shift;
my ($new) = @{{@_}}{qw/node/};
foreach my $node ( @{ $self->{'nodes'} }) {
if ($node->{'text'} eq $new->{'text'}) {
return $node;
}
}
push @{ $self->{'nodes'} }, $new;
return $new;
}
sub sprout
{
my $self = shift;
my $id = shift;
my $printLib = shift;
$id = 1 unless defined $printLib;
$printLib = 1 unless defined $printLib;
my $ret = "";
my $text = $self->{'text'};
my $appendFrontText = defined($self->{'appendFrontText'}) ? $self->{'appendFrontText'} : "";
my $appendBackText = defined($self->{'appendBackText'}) ? $self->{'appendBackText'} : "";
my $js = $self->{'js'};
if ( $printLib )
{
$ret .= "
";
}
my $spacing = '0px';
my $display = '';
my $image = 'LocalWebLib/plusSign.gif';
scalar( @{ $self->{'nodes'} } ) or $image = 'LocalWebLib/space.gif';
if ( defined $text )
{
$spacing = '15px';
$display = 'none';
$text = HTML::Entities::encode($text);
$js = "" unless defined $js;
my $string = ((defined($appendFrontText))?"$appendFrontText ":"") . "$text" . ((defined($appendBackText))?" $appendBackText":"");
$ret .= " $string