Gtk2-Ex-DbLinker
view release on metacpan or search on metacpan
examples/Forms/Sflang2.pm view on Meta::CPAN
del => \&on_delete_clicked,
apply => \&on_apply_clicked,
},
'DataAccess::Rdb::Service' => {
add => \&on_add_clicked,
apply => \&on_apply_2_clicked,
},
'DataAccess::Dbc::Service' => {
add => \&on_add_clicked,
apply => \&on_apply_2_clicked,
},
);
my $sign_ref = $connect_for{ ref $self->{data_broker} };
for my $button ( keys %{$sign_ref} ) {
$self->{dnav}
->connect_signal_for( $button, $sign_ref->{$button}, $self );
}
%connect_for =(
'DataAccess::Sqla::Service' => {
add => \&on_add_lst_clicked,
apply => \&on_apply_lst_clicked,
},
'DataAccess::Dbi::Service' => {
add => \&on_add_lst_clicked,
},
'DataAccess::Rdb::Service' => {
add => \&on_add_lst_clicked,
},
'DataAccess::Dbc::Service' => {
add => \&on_add_lst_clicked,
},
);
$sign_ref = $connect_for{ ref $self->{data_broker} };
for my $button ( keys %{$sign_ref} ) {
$self->{sf_list}->{dnav}->connect_signal_for( $button, $sign_ref->{$button}, $self );
}
bless $self, $class;
}
sub on_countryid_changed {
my ( $self, $value ) = @_;
$self->{log}->debug("sf_langues: countryid_changed $value");
$self->{countryid} = $value;
$self->{data_broker}->query_DM( $self->{sform}->get_data_manager,'subform_data', [$value]);
$self->{sform}->update;
$value = $self->{sform}->get_widget_value("langid");
$self->{log}->debug("sf_langues: langid changed $value");
$self->{data_broker}->query_DM( $self->{sf_list}->get_data_manager, 'grid_data', [$value, $self->{countryid}]);
$self->{sf_list}->update;
}
sub update_widgets_sensitivity {
my $self = shift;
my $rc = $self->{sform}->get_data_manager->row_count;
$self->{log}->debug("rc ", $rc);
if ( $rc == 0 ) {
$self->{dnav}->widgets_set_sensitivity(0);
}
else {
$self->{dnav}->widgets_set_sensitivity(1);
}
}
sub on_langid_changed {
my ( $b, $self ) = @_;
my $value = $self->{sform}->get_widget_value('langid');
if ($value) {
$self->{log}->debug("sf_langues: langid_changed $value");
$self->{langid} = $value;
$self->{data_broker}->query_DM( $self->{sf_list}->get_data_manager, 'grid_data', [$value, $self->{countryid}]);
$self->{sf_list}->update;
}
}
sub on_delete_clicked {
my $b = shift;
my $self = shift;
$self->{deleting} = 1;
$self->{sform}->delete;
}
sub on_add_clicked {
my $b = shift;
my $self = shift;
$self->{sform}->insert;
$self->{sform}->set_widget_value( "countryid", $self->{countryid} );
$self->{dnav}->set_sensitivity_for('langid');
$self->{dnav}->set_sensitivity_for('apply');
#$self->{sf_list}->{dnav}->widgets_set_sensitivity(0);
}
sub on_apply_2_clicked {
my $b = shift;
my $self = shift;
$self->{log}->debug( "sform_apply country : "
. $self->{countryid}
. " langue : "
. $self->{langid} );
$self->{sform}->apply;
$self->{data_broker}->query_DM( $self->{sform}->get_data_manager, 'subform_data', [$self->{countryid}] );
$self->{sform}->update;
}
sub on_apply_clicked {
my $b = shift;
( run in 1.425 second using v1.01-cache-2.11-cpan-39bf76dae61 )