Gtk2-Net-LDAP-Widgets
view release on metacpan or search on metacpan
Widgets/LdapEntrySelector.pm view on Meta::CPAN
$self->set_modal(1);
$self->{ldap_source} = shift;
$self->{base_dn} = shift;
$self->{static_filter} = shift;
my %named_params = @_;
$self->{init_interactive_filter} = $named_params{'init_interactive_filter'};
$self->{single_selection} = $named_params{'single_selection'};
$self->{interactive_filter_type} = $named_params{'interactive_filter_type'};
# possible values: 'ldap', 'simple', 'none':
if (! $self->{interactive_filter_type}) {
$self->{interactive_filter_type} = 'ldap';
}
my $btnFiltruj = Gtk2::Button->new_with_mnemonic ('_Filter');
if ($self->{interactive_filter_type} ne 'none') {
# The filter horizontal box:
my $hboxFilter = Gtk2::HBox->new;
my $labelFilter = Gtk2::Label->new;
if ($self->{interactive_filter_type} eq 'ldap') {
$labelFilter->set_markup("<b>LDAP filter</b>:");
} elsif ($self->{interactive_filter_type} eq 'simple') {
$labelFilter->set_markup("Search:");
} else {
$labelFilter->set_markup("<b>filter</b>:");
}
$hboxFilter->pack_start ($labelFilter, 0, 0, 5);
my $entryInteractiveFilter = Gtk2::Entry->new;
$entryInteractiveFilter->set_text($self->{init_interactive_filter});
$hboxFilter->pack_start ($entryInteractiveFilter, 1, 1, 5);
$hboxFilter->pack_start ($btnFiltruj, 1, 1, 5);
$self->{entryInteractiveFilter} = $entryInteractiveFilter;
$self->vbox->pack_start ($hboxFilter, 0, 0, 5);
}
# Results list component:
bless $self, $class;
$self->{listEntriesView} = Gtk2::Net::LDAP::Widgets::LdapEntryView->new($self->{ldap_source}, $self->{base_dn}, $self->{static_filter},
$self->_get_filter, $self->{single_selection});
my $scrollwin = Gtk2::ScrolledWindow->new;
$scrollwin->set_policy ('never', 'automatic');
$scrollwin->set_shadow_type ('in');
$scrollwin->add($self->{listEntriesView});
$self->vbox->pack_start ($scrollwin, 1, 1, 5);
$self->set_default_size(640, 480);
$btnFiltruj->signal_connect (clicked => sub {
$self->refresh_list;
});
bless $self, $class;
}
#---}}}
# by OLO
# czw mar 17 17:51:20 CET 2005
# Conversion of self to string:
sub to_string {
my $self = shift;
return $self->{class}.' "'.\$self.'"';
}
#---[ sub refresh_list ]---{{{
=head2 refresh_list
Refresh the entries list - re-execute the search with the filter determined by
the search/filter box.
=cut
sub refresh_list {
my $self = shift;
my $newfilter = $self->_get_filter;
$self->{listEntriesView}->set_interactive_filter($newfilter);
}
#---}}}
#---[ sub get_dn ]---{{{
=head2 get_dn
Return the list of selected entries' Distinguished Names.
The list has at most one entry if single_selection is set to 1.
=cut
sub get_dn {
my $self = shift;
return $self->{listEntriesView}->get_dn;
}
#---}}}
1;
__END__
#---[ pod end ]---{{{
=head1 SEE ALSO
L<Gtk2::Net::LDAP::Widgets>
L<Gtk2>
L<Net::LDAP>
=head1 AUTHOR
Aleksander Adamowski, E<lt>cpan@olo.org.plE<gt>
=head1 COPYRIGHT AND LICENSE
Copyright 2005,2008 by Aleksander Adamowski
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
=cut
( run in 2.966 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )