package DBIx::dbMan::Extension::GuiLoadExtension;
use strict;
use base 'DBIx::dbMan::Extension';
use Curses::UI;
our $VERSION = '0.01';
1;
sub IDENTIFICATION { return "000001-000091-000001"; }
sub preference { return 800; }
sub known_actions { return [ qw/GUI/ ]; }
sub menu {
return { label => 'dbMan', submenu => [
{ label => 'Extensions', submenu => [
{ label => 'Load new...', preference => 3,
action => { action => 'GUI', operation => 'load_extension'} },
] } ] };
}
sub load_ok {
my $obj = shift;
return $obj->{-interface}->gui();
}
sub handle_action {
my ($obj,%action) = @_;
if ($action{action} eq 'GUI') {
if ($action{operation} eq 'load_extension') {
if ($obj->{-interface}->can('is_curses')
and $obj->{-interface}->is_curses()) {
$action{action} = 'NONE';
if (my $val = $obj->{-interface}->ask_value(
-title => 'Load extension', -button => 'Load',
-question => 'Input name of extension')) {
$action{action} = 'EXTENSION';
$action{operation} = 'load';
$action{what} = $val;
}
}
}
}
$action{processed} = 1;
return %action;
}