Changeset 315
- Timestamp:
- 10/18/06 00:32:31 (2 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
library/perl/trunk/HTML-Widget-Kwalify/lib/HTML/Widget/Kwalify.pm
r314 r315 5 5 use Carp; 6 6 7 use version; 8 our $VERSION = qv('0.0.1'); 7 use version;our $VERSION = qv('0.0.1'); 9 8 10 9 use base 'HTML::Widget'; 11 use YAML ;10 use YAML qw( LoadFile ); 12 11 use UNIVERSAL; 13 12 … … 15 14 16 15 sub create_from { 17 my ( $class, $yaml ) = @_; 16 my ( $class, %args ) = @_; 17 18 my $yaml = LoadFile($args{file}); 18 19 19 20 my $self = $class->SUPER::new; … … 48 49 if ( $_ ne 'name' and $_ ne 'desc' ) { 49 50 my $clone = $element->clone; 50 push @{ $clone->stack }, $_ ;51 52 53 if ( $_ eq 'type' and defined $arg->{enum} ) {54 push @{ $clone->enum }, @{ $arg->{enum}};51 push @{ $clone->stack }, $_ if $_ ne 'type'; 52 53 if ( $_ eq 'type' ) { 54 push @{ $clone->enum }, @{ $arg->{enum} } if $arg->{enum}; 55 $clone->name($arg->{name}) if $arg->{name}; 55 56 } 56 # TODO: type ã¯é€å€ããïŒ 57 57 58 $hash->{$_} = $curry->($clone, [ $arg->{$_} ]); 58 59 } … … 76 77 77 78 for ( @elements ) { 78 use YAML; 79 print Dump($_); 79 my $name = join '_', @{$_->stack}; 80 my $label = $_->name || $name; 81 if ( @{$_->enum} ){ 82 my $enum = $self->element('Select', $name)->label($label); 83 $enum->options( map { $_ => $_ } @{$_->enum} ); 84 } 85 else { 86 $self->element( 'Textfield', $name )->label($label); 87 } 80 88 } 89 90 return $self; 81 91 } 82 92 … … 86 96 use Storable; 87 97 88 __PACKAGE__->mk_accessors( qw/ stack type enum / );98 __PACKAGE__->mk_accessors( qw/ stack type enum name / ); 89 99 90 100 sub new { … … 94 104 type => '', 95 105 enum => [], 106 name => '', 96 107 }; 97 108 bless $self, $class;
