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 )