package HTML::Widgets::NavMenu::Iterator::JQTreeView;
use strict;
use warnings;
# For escape_html().
use HTML::Widgets::NavMenu::EscapeHtml;
use base qw(HTML::Widgets::NavMenu::Iterator::NavMenu);
sub _init
{
my $self = shift;
my $args = shift;
$self->SUPER::_init($args);
# Make a fresh copy just to be on the safe side.
$self->_ul_classes([ @{$args->{'ul_classes'}} ]);
return 0;
}
=head1 NAME
HTML::Widgets::NavMenu::Iterator::JQTreeView - an iterator for JQuery
TreeView's navigation menus.
=head1 SYNOPSIS
See L<http://bassistance.de/jquery-plugins/jquery-plugin-treeview/> .
For internal use only.
=head1 METHODS
=cut
sub _calc_open_li_tag
{
my $self = shift;
my $id_attr = $self->_calc_li_id_attr();
return
(
$self->_is_expanded_for_treeview()
? (qq{<li class="open"$id_attr>})
: ("<li$id_attr>")
);
return;
}
=head2 get_currently_active_text ( $node )
Calculates the highlighted text for the node C<$node>. Normally surrounds it
with C<<< <b> ... </b> >>> tags.
=cut
sub _start_handle_non_role
{
my $self = shift;
my $top_item = $self->top;
my @tags_to_add = ($self->_calc_open_li_tag(), $self->get_link_tag());
if ($top_item->_num_subs_to_go() && $self->_is_expanded())
{
push @tags_to_add, ($self->get_open_sub_menu_tags());
}
$self->_add_tags(@tags_to_add);
return;
}
sub _start_handle_role
{
my $self = shift;
return $self->_start_handle_non_role();
}
sub _is_expanded
{
return 1;
}
sub _is_expanded_for_treeview
{
my $self = shift;
my $node = $self->top->_node();
return ($node->expanded() || $self->top->_accum_state->{'show_always'});
}
=head1 COPYRIGHT & LICENSE
Copyright 2006 Shlomi Fish, all rights reserved.
This program is released under the following license: MIT X11.
=cut
1;