package Lire::UI::ReportSectionWidget;
use strict;
use base qw/ Lire::UI::CompoundWidget /;
use Lire::Utils qw/check_object_param/;
use Curses::UI::Common;
use Carp;
sub new {
my ( $class, %userargs ) = @_;
keys_to_lowercase(\%userargs);
my $value = $userargs{'value'};
check_object_param( $value, 'value', 'Lire::Config::Dictionary' );
croak "'value' parameter's spec should be a 'Lire::Config::ReportSectionSpec' instance, not '", $value->spec(), "'"
unless $value->spec()->isa( 'Lire::Config::ReportSectionSpec' );
my $self = $class->SUPER::new( %userargs );
$self->getobj( 'superservice_widget' )->onValueChanged( sub { $self->update_spec_widgets() } );
$self->update_spec_widgets();
return $self;
}
sub update_spec_widgets {
my $self = $_[0];
my $superservice = $self->{'value'}->get( 'superservice' )->get();
$self->getobj( 'filters_widget' )->superservice_filter( $superservice );
$self->getobj( 'specs_widget' )->superservice_filter( $superservice );
return;
}
1;
syntax highlighted by Code2HTML, v. 0.9.1