package datasource_ui; use strict; use Tk; use Tk::BrowseEntry; use Data::Dumper; sub new { my ($self, %arg) = @_; bless { _dbh => $arg{dbh}, _nbpage => $arg{nbpage}, _dslist => '', _dsSrcName => '', }, $self } sub draw { my ($self) = @_; $self->{_nbpage}->Label( -text => 'DataSource', -justify => 'right', -width => '20' )->grid( $self->{_dslist} = $self->{_nbpage}->BrowseEntry( -variable => \$self->{_dsSrcName}, -browsecmd => , -listcmd => $self->LoadDS, -width => '20', ), -sticky => 'w', -pady => '20' ); return; } sub LoadDS { my ($self) = @_; print "start of LoadDS\n\n"; print Dumper $self; my ($id, $datasource, $ds_desc, $ds, @dss); my $SQL = "SELECT id, sourcename, sourcedesc FROM datasource"; my $sth = $self->{_dbh}->prepare($SQL); $sth->execute; while(( $id, $datasource, $ds_desc ) = $sth->fetchrow_array ) { $ds = "$datasource $ds_desc"; push @dss, $ds; } $self->{_dslist}->insert('end', @dss); return; } 1;