File Coverage

blib/lib/PDF/Make/Builder/Form/Field/Button.pm
Criterion Covered Total %
statement 27 29 93.1
branch 6 8 75.0
condition 6 15 40.0
subroutine 7 7 100.0
pod 0 1 0.0
total 46 60 76.6


line stmt bran cond sub pod time code
1             package PDF::Make::Builder::Form::Field::Button;
2 42     42   216 use strict;
  42         74  
  42         1140  
3 42     42   137 use warnings;
  42         94  
  42         1629  
4 42     42   166 use Object::Proto;
  42         59  
  42         2469  
5              
6             BEGIN {
7 42     42   5786 Object::Proto::define('PDF::Make::Builder::Form::Field::Button',
8             extends => 'PDF::Make::Builder::Form::Field',
9             'caption:Str',
10             'submit_url:Str',
11             'url:Str',
12             'is_reset:Bool:default(0)',
13             'javascript:Str',
14             );
15 42         13179 Object::Proto::import_accessors('PDF::Make::Builder::Form::Field::Button');
16             }
17              
18             sub BUILD {
19 3     3 0 8 my ($self) = @_;
20 3         9 $self->h(28);
21 3         8 $self->border_colour('#2c3e50');
22 3         11 $self->bg_colour('#ecf0f1');
23             }
24              
25 2     2   4 sub _draws_own_chrome { 1 }
26              
27             sub _create_field {
28 3     3   8 my ($self, $doc, $name, $fx, $fy, $fw, $fh) = @_;
29 3   33     23 my $cap = $self->caption // $self->label // $name;
      33        
30 3         28 my $field = PDF::Make::FieldPtr::button($doc, $name, $fx, $fy, $fw, $fh, $cap);
31              
32 3         6 my $submit = submit_url $self;
33 3         4 my $uri = url $self;
34 3         4 my $rst = is_reset $self;
35 3         6 my $js = javascript $self;
36              
37 3 100 66     20 if (defined $uri && length $uri) {
    50 33        
    100 33        
    50          
38 1         4 $field->set_uri_action($uri);
39             } elsif (defined $submit && length $submit) {
40 0         0 $field->set_submit_url($submit);
41             } elsif ($rst) {
42 1         4 $field->set_reset_action;
43             } elsif (defined $js && length $js) {
44 0         0 $field->set_javascript($js);
45             }
46              
47 3         7 return $field;
48             }
49              
50             1;
51              
52             __END__