#
# This file is part of HTML-FormFu-ExtJS
#
# This software is Copyright (c) 2011 by Moritz Onken.
#
# This is free software, licensed under:
#
#   The (three-clause) BSD License
#
package HTML::FormFu::ExtJS::Element::ExtJS::TabPanel;
BEGIN {
  $HTML::FormFu::ExtJS::Element::ExtJS::TabPanel::VERSION = '0.090';
}

# ABSTRACT: FormFu class for ExtJS tab panels
use strict;
use warnings;
use utf8;

use HTML::FormFu::Util qw(
  xml_escape
);

# Their is only point in check Number and Boolean fields are what they are meant to be
# Does not check attribites inheritted e.g. width

sub render {
    my $class = shift;
    my $self  = shift;

    my $parent = $self->can("_get_attributes") ? $self : $self->form;
    my %attrs = $parent->_get_attributes($self);

    $attrs{'activeTab'} = 0 if ( !defined( $attrs{'activeTab'} ) );

    # Check that each one is corret type for a TabPanel
    foreach my $k (
        'animScroll',      'autoTabs',
        'enableTabScroll', 'layoutOnTabChange',
        'plain',           'resizeTabs'
      )
    {
        warn "$k not boolean (0,1,true,false)"
          if ( defined( $attrs{$k} ) && $attrs{$k} !~ /^[01]$|^true$|^false$/ );
    }
    foreach my $k (
        'activeTab',       'minTabWidth',
        'scrollIncrement', 'scrollRepeatInterval',
        'tabMargin'
      )
    {
        warn "$k not a integer $class"
          if ( defined( $attrs{$k} ) && $attrs{$k} !~ /^[+-]?[0-9]*$/ );
    }

    foreach my $k ('scrollDuration') {
        warn "$k not a float"
          if ( defined( $attrs{$k} ) && $attrs{$k} !~ /^[+-]?[0-9.]*$/ );
    }

    return {
        xtype => $self->xtype,
        ( scalar $self->id ) ? ( id => scalar $self->id ) : (),
        items => $self->form->_render_items($self),
        %attrs
    };
}

1;



=pod

=head1 NAME

HTML::FormFu::ExtJS::Element::ExtJS::TabPanel - FormFu class for ExtJS tab panels

=head1 VERSION

version 0.090

=head1 DESCRIPTION

FormFu class for ExtJS tab panels.

=head1 SEE ALSO

The ExtJS specific stuff is in L<HTML::FormFu::Element::ExtJS::TabPanel>

=head1 AUTHOR

Damon Atkins

Based on HTML::FormFu::ExtJS::Element::ExtJS::Panel 

=head1 AUTHOR

Moritz Onken <onken@netcubed.de>

=head1 COPYRIGHT AND LICENSE

This software is Copyright (c) 2011 by Moritz Onken.

This is free software, licensed under:

  The (three-clause) BSD License

=cut


__END__