App-Widget

 view release on metacpan or  search on metacpan

lib/App/Widget/AppFrame.pm  view on Meta::CPAN

        #my $target = $selector_widget->get_selected("target");
        #if ($target) {
        #    $main::target = $target;
        #}

        #$self->{noframe} = $selector_widget->get_selected("noframe");

        return 1;
    }
    else {
        return $self->SUPER::handle_event($wname, $event, @args);
    }
}


######################################################################
# OUTPUT METHODS
######################################################################

sub html {
    my $self = shift;

lib/App/Widget/Button.pm  view on Meta::CPAN


This class is a <input type=submit> HTML element.
In the advanced configurations, it is rendered as an image button.

=cut

######################################################################
# INITIALIZATION
######################################################################

# uncomment this when I need to do more than just call SUPER::_init()
#sub _init {
#   my $self = shift;
#   $self->SUPER::_init(@_);
#}

######################################################################
# EVENTS
######################################################################

# Usage: $widget->handle_event($event, @args);
#sub handle_event {
#    my $self = shift;
#
#    if ($_[0] eq "click") {
#        $self->click(@_);
#        return 1;
#    }
#    else {
#        return $self->SUPER::handle_event(@_);
#    }
#}

#sub click {
#    my $self = shift;
#}

######################################################################
# OUTPUT METHODS
######################################################################

lib/App/Widget/Compound.pm  view on Meta::CPAN

call to split() in the code.

=cut

######################################################################
# CONSTRUCTOR
######################################################################

sub _init {
    my $self = shift;
    $self->SUPER::_init(@_);
    my $name = $self->{name};
    my $context = $self->{context};

    my $component_widgets = $self->{components};
    if ($component_widgets && $#$component_widgets > -1) {
        foreach my $widget (@$component_widgets) {
            $context->widget($widget);
        }
    }
}

lib/App/Widget/Compound.pm  view on Meta::CPAN

    }
    elsif ($event eq "join") {
        $self->join(@_);
        return 1;
    }
    elsif ($event eq "change") {   # i.e. onChange
        $self->change(@_);
        return 1;
    }
    else {
        return $self->SUPER::handle_event(@_);
    }
}

sub split {
    my $self = shift;
    my $context = $self->{context};
    my $name = $self->{name};
    my $value  = $context->so_get($name);
    return if (! defined $value || $value eq "");

lib/App/Widget/DataAnalysis.pm  view on Meta::CPAN


=cut

######################################################################
# INITIALIZATION
######################################################################

sub _init {
    &App::sub_entry if ($App::trace);
    my $self = shift;
    $self->SUPER::_init(@_);
    my $context = $self->{context};
    my $widget = $self->{widget} || {};
    my $widget_names = $self->{widgets};
    $widget_names = [ sort keys %$widget ] if (!$widget_names);
    my ($args, $columns_widget, @columns, $columns);
    foreach my $wname (@$widget_names) {
        $args = $widget->{$wname} || {};
        $context->widget($wname, %$args);
        $columns = $args->{columns};
        if ($columns && !ref($columns)) {

lib/App/Widget/DataTable.pm  view on Meta::CPAN


=cut

######################################################################
# INITIALIZATION
######################################################################

sub _init {
    &App::sub_entry if ($App::trace);
    my $self = shift;
    $self->SUPER::_init(@_);
    $self->{table} = $self->{name} if (!$self->{table});

    $self->{context}->dbgprint("DataTable->init()")
        if ($App::DEBUG && $self->{context}->dbg(1));
}

######################################################################
# EVENTS
######################################################################

lib/App/Widget/DataTable.pm  view on Meta::CPAN

        $context = $self->{context};
        $width = $context->widget($wname)->get("width");
        if ($x <= $width/2) {
            $handled = $self->handle_event($wname, "sort", $colnum, "UP");
        }
        else {
            $handled = $self->handle_event($wname, "sort", $colnum, "DOWN");
        }
    }
    else {
        $handled = $self->SUPER::handle_event(@_);
    }
    &App::sub_exit($handled) if ($App::trace);
    return($handled);
}

######################################################################
# METHODS
######################################################################

sub get_columns {

lib/App/Widget/DataTable2.pm  view on Meta::CPAN


=cut

######################################################################
# INITIALIZATION
######################################################################

sub _init {
    &App::sub_entry if ($App::trace);
    my $self = shift;
    $self->SUPER::_init(@_);
    $self->{table} = $self->{name} if (!$self->{table});

    if (!$self->{keycolidx}) {
        my $context = $self->{context};
        my $table   = $self->{table};
        my $rep     = $self->{repository};
        my $r       = $context->repository($rep);
        $r->_load_table_metadata($table);
        my $primary_key = $r->{table}{$table}{primary_key};
        if ($primary_key && ref($primary_key) eq "ARRAY" && $#$primary_key > -1) {

lib/App/Widget/DataTable2.pm  view on Meta::CPAN

        $context = $self->{context};
        $width = $context->widget($wname)->{width} || 50;
        if ($x <= $width/2) {
            $handled = $self->handle_event($wname, "sort", $column, "asc");
        }
        else {
            $handled = $self->handle_event($wname, "sort", $column, "desc");
        }
    }
    else {
        $handled = $self->SUPER::handle_event(@_);
    }
    &App::sub_exit($handled) if ($App::trace);
    return($handled);
}

######################################################################
# METHODS
######################################################################

sub add_row {

lib/App/Widget/DateDropDowns.pm  view on Meta::CPAN

This class is three dropdowns for a date widget.

=cut

######################################################################
# CONSTRUCTOR
######################################################################

sub _init {
    my $self = shift;
    $self->SUPER::_init(@_);
    my $name = $self->{name};
    my $context = $self->{context};

    # NOTE: container is inferred by the naming convention
    #       otherwise, I should include "container => $name," line
    $context->widget("${name}-day",  # note: container is inferred
        class => "App::Widget::Select",
        values => \@dayvalues,
    );

lib/App/Widget/DateDropDowns.pm  view on Meta::CPAN

    }
    elsif ($event eq "join_date") {
        $self->join_date(@_);
        return 1;
    }
    elsif ($event eq "change") {   # i.e. onChange
        $self->change(@_);
        return 1;
    }
    else {
        return $self->SUPER::handle_event(@_);
    }
}

# NOTE: internal format of dates is YYYY-MM-DD
#       display is three drop-downs: DD Mon YYYY
sub split_date {
    my $self = shift;
    my ($date, $day, $month, $year);
    $date  = $self->get_value();
    return if (!$date);

lib/App/Widget/DateDropDowns.pm  view on Meta::CPAN

        $day   = $3;
        $self->set("year", $year);
        $self->set("month", $month);
        $self->set("day", $day);
    }
}

sub get_value {
    my $self = shift;
    my ($date, $day, $month, $year);
    $date  = $self->SUPER::get_value();
    return ($date) if (!$date);
    return ($date) if ($date =~ /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/);
    if ($date =~ /([0-9]{4}-[0-9]{2}-[0-9]{2})/) {
        $date = $1;
    }
    elsif ($date =~ /([0-9]{4})([0-9]{2})([0-9]{2})/) {
        $date = "$1-$2-$3";
    }
    elsif ($date =~ /([0-9]{2})-(...)-([0-9]{4})/) {
        $date = "$3-$monthnumbers{$2}-$1";

lib/App/Widget/DualListSelect.pm  view on Meta::CPAN

            image       => "images/DualListSelect/dnarrow.gif",
            height      => "19",
            width       => "19",
            label       => "Down",
            event       => "move_down",
            event_target => $name,
            lightweight => 1,
        );
    }
    my @curr_values = $self->get_values();
    $self->SUPER::_init(@_);
}

######################################################################
# EVENTS
######################################################################

# Usage: $widget->handle_event($event, @args);
sub handle_event {
    my ($self, $wname, $event, @args) = @_;

lib/App/Widget/DualListSelect.pm  view on Meta::CPAN

    elsif ($event eq "unselect") {
        $success = $self->unselect();
    }
    elsif ($event eq "move_up") {
        $success = $self->move_up();
    }
    elsif ($event eq "move_down") {
        $success = $self->move_down();
    }
    else {
        $success = $self->SUPER::handle_event($wname, $event, @args);
    }
    return($success);
}

######################################################################
# METHODS
######################################################################

sub select {
    my ($self) = @_;

lib/App/Widget/Element.pm  view on Meta::CPAN


This class is a generic HTML element which can be made into any single
element by proper configuration.

=cut

######################################################################
# CONSTRUCTOR
######################################################################

# uncomment this when I need to do more than just call SUPER::_init()
#sub _init {
#   my $self = shift;
#   $self->SUPER::_init(@_);
#}

######################################################################
# METHODS
######################################################################

######################################################################
# OUTPUT METHODS (standard to all true Widgets)
######################################################################
# must have: _type, config

lib/App/Widget/FileTreeSelector.pm  view on Meta::CPAN

   $self->{selected} = "1.1";
   $self->{node} = {
        1 =>       { open => 0, value => 'root',           },
        # 1.1 =>     { open => 1, value => 'Criteria',       },
        # 1.2 =>     { open => 0, value => 'Rate Comparison',},
        # 1.3 =>     { open => 0, value => 'Rate Detail',    },
        # 1.4 =>     { open => 0, value => 'Profiles',       },
        # 1.5 =>     { open => 0, value => 'Request Queue',  },
   };

   $self->SUPER::_init(@_);
}

1;

lib/App/Widget/HierSelector.pm  view on Meta::CPAN

for a TreeSelector, a Menu, a ToolbarSet, or an IconPaneSelector.
The main function of a HierSelector is to display a hierarchical set of
data and allow the user to generate events based on that view.

=cut

######################################################################
# INITIALIZATION
######################################################################

# uncomment this when I need to do more than just call SUPER::_init()
sub _init {
    &App::sub_entry if ($App::trace);
    my $self = shift;
    $self->SUPER::_init(@_);
    &App::sub_exit() if ($App::trace);
}

######################################################################
# EVENTS
######################################################################

# Usage: $widget->handle_event($wname, $event, @args);
sub handle_event {
    &App::sub_entry if ($App::trace);

lib/App/Widget/HierSelector.pm  view on Meta::CPAN

        ($nodenumber, $x, $y) = @args;
        $self->set("selected", $nodenumber);  # save node number
        # intentionally bubble "select" event to the container
        if ($wname =~ /^(.*)-([^.]+)$/) {
            my $parent = $1;
            my $result = $self->{context}->widget($parent)->handle_event($wname, $event, @args);
            return $result;
        }
    }
    else {
        return $self->SUPER::handle_event($wname, $event, @args);
    }
    &App::sub_exit() if ($App::trace);
    return 1;
}

sub select_first {
    &App::sub_entry if ($App::trace);
    my $self = shift;
    my $node = $self->node_list();
    

lib/App/Widget/IconPaneSelector.pm  view on Meta::CPAN

M$ Outlook.

=cut

######################################################################
# INITIALIZATION
######################################################################

sub _init {
    my $self = shift;
    $self->SUPER::_init(@_);
    if (! $self->get("selected")) {
        $self->select_first();
    }
}

######################################################################
# OUTPUT METHODS
######################################################################

sub html {

lib/App/Widget/ImageBarSelector.pm  view on Meta::CPAN


=cut

######################################################################
# INITIALIZATION
######################################################################

sub _init {
    &App::sub_entry if ($App::trace);
    my $self = shift;
    $self->SUPER::_init(@_);
    my $node       = $self->{context}{"hotel-selector"}{auth_node}[1];
    if (! $self->get("selected")) {
        $self->select_first();
    }
    &App::sub_exit() if ($App::trace);
}

sub select {
    &App::sub_entry if ($App::trace);
    my ($self, $nodeattrib, $value) = @_;
    my $success = $self->SUPER::select($nodeattrib, $value);
    $self->open_selected_exclusively();
    &App::sub_exit($success) if ($App::trace);
    return($success);
}

sub open_exclusively {
    &App::sub_entry if ($App::trace);
    my ($self, $opennodenumber) = @_;
    #$self->{debug} .= "open_exclusively($opennodenumber)<br>";
    $self->SUPER::open_exclusively($opennodenumber);
    $self->select_first_open_leaf($opennodenumber);
    &App::sub_exit() if ($App::trace);
}

######################################################################
# OUTPUT METHODS
######################################################################

sub html {
    &App::sub_entry if ($App::trace);

lib/App/Widget/RadioButtonSet.pm  view on Meta::CPAN

=head1 DESCRIPTION

This class is a <select> HTML element.

=cut

######################################################################
# CONSTRUCTOR
######################################################################

# uncomment this when I need to do more than just call SUPER::_init()
#sub _init {
#   my $self = shift;
#   $self->SUPER::_init(@_);
#}

######################################################################
# METHODS
######################################################################

######################################################################
# OUTPUT METHODS
######################################################################

lib/App/Widget/RepositoryEditor.pm  view on Meta::CPAN

This class implements a widget.

=cut

######################################################################
# INITIALIZATION
######################################################################

sub _init {
    my $self = shift;
    $self->SUPER::_init(@_);

    my ($context, $name, $rep, $repname, $table, $table_names);

    $context = $self->{context};
    $name    = $self->{name};
    $repname = $self->get("repository");
    $rep     = $context->repository($repname);

    $table = $self->get("table");
    if (! $table) {

lib/App/Widget/RepositoryEditor.pm  view on Meta::CPAN

        $self->set("table", $table);
        $self->set("columns",     []);
        $self->set("ordercols",   []);
        $self->set("directions",  []);
        $self->set("param",[]);
        $self->set("param_min",[]);
        $self->set("param_max",[]);
        $self->set("param_contains",[]);
    }
    else {
        return $self->SUPER::handle_event($wname, $event, @args);
    }

    return 1;
}

sub set_mode {
    my ($self, $mode, $editable) = @_;

    my ($context, $name, $w);

lib/App/Widget/Select.pm  view on Meta::CPAN

=head1 DESCRIPTION

This class is a <select> HTML element.

=cut

######################################################################
# CONSTRUCTOR
######################################################################

# uncomment this when I need to do more than just call SUPER::_init()
sub _init {
    my $self = shift;
    my $context = $self->{context};
    my $name = $self->{name};
    my $value = $context->so_get($name);
    my ($values, $labels);
    if (! defined $value && $self->{init_default}) {
        ($values, $labels) = $self->values_labels();
        if ($#$values > -1) {
            $value = $values->[0];
            $context->so_set($name, undef, $value);
        }
    }
    elsif (defined $value && $value eq "EACH") {
        ($values, $labels) = $self->values_labels();
        $value = join(",", @$values);
        $context->so_set($name, undef, $value);
    }
    $self->SUPER::_init(@_);
}

######################################################################
# METHODS
######################################################################

######################################################################
# OUTPUT METHODS
######################################################################

lib/App/Widget/SelectSaveAs.pm  view on Meta::CPAN

This class is a select element, followed by four buttons.

=cut

######################################################################
# CONSTRUCTOR
######################################################################

sub _init {
    my $self = shift;
    $self->SUPER::_init(@_);
    my $name = $self->{name};
    my $context = $self->{context};

    # NOTE: container is inferred by the naming convention
    #       otherwise, I should include "container => $name," line
    $context->widget("${name}-selected",  # note: container is inferred
        class => "App::Widget::Select",
        #lightweight => 1,
    );

lib/App/Widget/SelectSaveAs.pm  view on Meta::CPAN


# Usage: $widget->handle_event($name, $event, @args);
sub handle_event {
    my ($self, $name, $event, @args) = @_;

    if ($event eq "change") {
        $self->change();
        return 1;
    }
    else {
        return $self->SUPER::handle_event($name, $event, @args);
    }
}

sub change {
    my ($self) = @_;
    my $context = $self->{context};
    my $name = $self->{name};
    my $value = $context->so_get("${name}-selected");
    if ($value) {
        $context->so_set($name, undef, $value);

lib/App/Widget/Stylizable.pm  view on Meta::CPAN

=head1 DESCRIPTION

This class is an HTML element which can take the STYLE attribute.

=cut

######################################################################
# CONSTRUCTOR
######################################################################

# uncomment this when I need to do more than just call SUPER::_init()
#sub _init {
#   my $self = shift;
#   $self->SUPER::_init(@_);
#}

######################################################################
# METHODS
######################################################################

# NOTE: This is a *static* method.
#       It doesn't require an instance of the class to call it.
sub absorbable_attribs {
    \@absorbable_attrib;

lib/App/Widget/TabSet.pm  view on Meta::CPAN

        my $target = $selector_widget->get_selected("target");
        if ($target) {
            $main::target = $target;
        }

        $self->{noframe} = $selector_widget->get_selected("noframe");

        return 1;
    }
    else {
        return $self->SUPER::handle_event($wname, $event, @args);
    }
}


######################################################################
# OUTPUT METHODS
######################################################################

sub html {
    my $self = shift;

lib/App/Widget/TabbedAppFrame.pm  view on Meta::CPAN

        my $target = $selector_widget->get_selected("target");
        if ($target) {
            $main::target = $target;
        }

        $self->{noframe} = $selector_widget->get_selected("noframe");

        return 1;
    }
    else {
        return $self->SUPER::handle_event($wname, $event, @args);
    }
    &App::sub_exit() if ($App::trace);
}


######################################################################
# OUTPUT METHODS
######################################################################

sub html {

lib/App/Widget/TabbedSelector.pm  view on Meta::CPAN


=cut

######################################################################
# INITIALIZATION
######################################################################

sub _init {
    &App::sub_entry if ($App::trace);
    my $self = shift;
    $self->SUPER::_init(@_);
    if (! $self->{selected}) {
        my $context = $self->{context};
        my $screen = $context->so_get("default","screen");
        if ($screen) {
            $self->select("wname", $screen);
        }
        else {
            $self->select_first();
        }
    }
    &App::sub_exit() if ($App::trace);
}

sub select {
    my ($self, $nodeattrib, $value) = @_;
    my $success = $self->SUPER::select($nodeattrib, $value);
    $self->open_selected_exclusively();
    return($success);
}

sub open_exclusively {
    my ($self, $opennodenumber) = @_;
    #$self->{debug} .= "open_exclusively($opennodenumber)<br>";
    $self->SUPER::open_exclusively($opennodenumber);
    $self->select_first_open_leaf($opennodenumber);
}

######################################################################
# OUTPUT METHODS
######################################################################

sub html {
    my $self = shift;
    my ($html, $label, $icon);

lib/App/Widget/TablessSelector.pm  view on Meta::CPAN

This class implements a screen selector.

=cut

######################################################################
# INITIALIZATION
######################################################################

sub _init {
    my $self = shift;
    $self->SUPER::_init(@_);
    if (! $self->{selected}) {
        $self->select_first();
    }
}

sub select {
    my ($self, $nodeattrib, $value) = @_;
    my $success = $self->SUPER::select($nodeattrib, $value);
    $self->open_selected_exclusively();
    return($success);
}

sub open_exclusively {
    my ($self, $opennodenumber) = @_;
    #$self->{debug} .= "open_exclusively($opennodenumber)<br>";
    $self->SUPER::open_exclusively($opennodenumber);
    $self->select_first_open_leaf($opennodenumber);
}

######################################################################
# OUTPUT METHODS
######################################################################

sub html {
    my $self = shift;
    my ($html, $label, $icon);

lib/App/Widget/TreeSelector.pm  view on Meta::CPAN


This class implements a graphical tree view such as is used in
Windows Explorer.

=cut

######################################################################
# INITIALIZATION
######################################################################

# uncomment this when I need to do more than just call SUPER::_init()
#sub _init {
#   my $self = shift;
#   $self->SUPER::_init(@_);
#}

######################################################################
# OUTPUT METHODS
######################################################################

sub html {
    my $self = shift;
    my $context = $self->{context};
    my $name    = $self->{name};

lib/App/Widget/WizardSelector.pm  view on Meta::CPAN

This class implements a simple wizard screen selector.

=cut

######################################################################
# INITIALIZATION
######################################################################

sub _init {
    my $self = shift;
    $self->SUPER::_init(@_);
    if (! $self->{selected}) {
        $self->select_first();
    }
}

sub select {
    my ($self, $nodeattrib, $value) = @_;
    my $success = $self->SUPER::select($nodeattrib, $value);
    $self->open_selected_exclusively();
    return($success);
}

sub open_exclusively {
    my ($self, $opennodenumber) = @_;
    #$self->{debug} .= "open_exclusively($opennodenumber)<br>";
    $self->SUPER::open_exclusively($opennodenumber);
    $self->select_first_open_leaf($opennodenumber);
}


# return the next enabled page in sequence.
sub next {
    &App::sub_entry if ($App::trace);
    my ($self) = @_;

    my $context = $self->{context};



( run in 0.564 second using v1.01-cache-2.11-cpan-a9ef4e587e4 )