Solstice::Button::Transition - The standard button type, used to transition between two states.


Solstice documentation Contained in the Solstice distribution.

Index


Code Index:

NAME

Top

Solstice::Button::Transition - The standard button type, used to transition between two states.

SYNOPSIS

Top

  use Solstice::Button:Transition;

  See L<Solstice::Button|Solstice::Button> for usage.

DESCRIPTION

Top

ee Solstice::Button for description.

Superclass

Solstice::Button

Export

No symbols exported.

Methods

getButton()

Return a string containing html for an input type=submit button.

getNoSubmitButton()

Return a string containing html for an input type=button; that is, a button that cannot submit a form.

Returns HTML for a text link.

Returns HTML for an image link.

Return HTML for a combination image/text link.

getPseudoButton()
getDropDown()

Private Methods

_getAccessorDefinition()

Modules Used

Solstice::Button, StringLibrary (StringLibrary).

AUTHOR

Top

Catalyst Group, <catalyst@u.washington.edu>

VERSION

Top

$Revision: 3002 $

COPYRIGHT

Top


Solstice documentation Contained in the Solstice distribution.
package Solstice::Button::Transition;

# $Id: Transition.pm 3002 2006-01-24 22:57:29Z jdr99 $

use 5.006_000;
use strict;
use warnings;

use base qw(Solstice::Button);

our ($VERSION) = ('$Revision: 3002 $' =~ /^\$Revision:\s*([\d.]*)/);

sub getButton {
    my $self = shift;

    return $self->SUPER::getButton() if $self->{'_disabled'};
    return $self->getNoscriptButton() unless $self->{'_has_javascript'};

    my $name     = $self->{'_name'} || '';
    my $label    = $self->_generateLabel();
    my $tooltip  = $self->_generateTooltip();
    my $tabindex = defined $self->{'_tabindex'} ? $self->{'_tabindex'} : 0;
    my $script   = $self->_generateInlineScript();

    if (defined $tooltip) {
        $self->getOnloadService()->addEvent("Solstice.addToolTip('btn_$name', '$tooltip')");
    }

    unless ($self->{'_url'}) {
        return qq|<input name="$name" id="btn_$name" type="submit" name="$name" value="$label" tabindex="$tabindex" onclick="Solstice.Button.set('$name')"/>$script|;
    }

    my $handler = $self->_generateHandler();
    return qq|<input name="$name" id="btn_$name" type="button" name="$name" value="$label" tabindex="$tabindex" onclick="$handler"/>$script|;
}

sub getNoSubmitButton {
    my $self = shift;

    return $self->getNoscriptButton() unless $self->{'_has_javascript'};

    my $name     = $self->{'_name'} || '';
    my $label    = $self->_generateLabel();
    my $tooltip  = $self->_generateTooltip();
    my $tabindex = defined $self->{'_tabindex'} ? $self->{'_tabindex'} : 0;
    my $script   = $self->_generateInlineScript();
    my $handler  = $self->_generateHandler();
    
    if (defined $tooltip) {
        $self->getOnloadService()->addEvent("Solstice.addToolTip('btn_$name', '$tooltip')");
    }
    return qq|<input name="$name" id="btn_$name" type="button" name="$name" value="$label" tabindex="$tabindex" onclick="$handler"/>$script|;
}

sub getTextLink {
    my $self = shift;

    return $self->SUPER::getTextLink() if $self->{'_disabled'};
    return $self->getNoscriptButton() unless $self->{'_has_javascript'};

    my $name     = $self->{'_name'} || '';
    my $label    = $self->_generateLabel();
    my $tooltip  = $self->_generateTooltip();
    my $title    = $self->_generateTitle(); 
    my $jstitle  = $self->_generateScriptTitle(); 
    my $tabindex = defined $self->{'_tabindex'} ? $self->{'_tabindex'} : 0;
    my $script   = $self->_generateInlineScript();
    my $handler  = $self->_generateHandler();

    if (defined $tooltip) {
        $self->getOnloadService()->addEvent("Solstice.addToolTip('link_$name', '$tooltip')");
    }

    return qq|<a href="javascript:void($handler);" name="$name" id="link_$name" title="$title" tabindex="$tabindex" onmouseover="window.status='$jstitle'; return true;" onmouseout="window.status=''; return true;">$label</a>$script|;
}

sub getImageLink {
    my $self = shift;

    return $self->SUPER::getImageLink() if $self->{'_disabled'};
    return $self->getNoscriptImage() unless $self->{'_has_javascript'};
    
    my $name     = $self->{'_name'}  || '';
    my $tooltip  = $self->_generateTooltip();
    my $title    = $self->_generateTitle(); 
    my $jstitle  = $self->_generateScriptTitle(); 
    my $tabindex = defined $self->{'_tabindex'} ? $self->{'_tabindex'} : 0;
    my $image    = $self->{'_image'} || '';
    my $alt      = $self->{'_title'}  || '';
    my $script   = $self->_generateInlineScript();
    my $handler  = $self->_generateHandler();

    if (defined $tooltip) {
        $self->getOnloadService()->addEvent("Solstice.addToolTip('img_$name', '$tooltip')");
    }

    return qq|<a href="javascript:void($handler);" name="$name" id="img_$name" title="$title" tabindex="$tabindex" onmouseover="window.status='$jstitle'; return true;" onmouseout="window.status=''; return true;"><img src="$image" alt=""/></a>$script|;
}

sub getImageTextLink {
    my $self = shift;
    
    return $self->SUPER::getImageTextLink() if $self->{'_disabled'};
    unless ($self->{'_has_javascript'}) {
        return ($self->getNoscriptImage().' '.$self->getNoscriptButton());
    }
    
    my $name     = $self->{'_name'}  || '';
    my $label    = $self->_generateLabel(); 
    my $tooltip  = $self->_generateTooltip();
    my $title    = $self->_generateTitle(); 
    my $jstitle  = $self->_generateScriptTitle(); 
    my $tabindex = defined $self->{'_tabindex'} ? $self->{'_tabindex'} : 0;
    my $image    = $self->{'_image'} || '';
    my $script   = $self->_generateInlineScript();
    my $handler  = $self->_generateHandler();

    if (defined $tooltip) {
        $self->getOnloadService()->addEvent("Solstice.addToolTip('img_$name', '$tooltip')");
        $self->getOnloadService()->addEvent("Solstice.addToolTip('txt_$name', '$tooltip')");
    }

    return qq|<a href="javascript:void($handler);" name="$name" id="img_$name" title="$title" onmouseover="window.status='$jstitle'; return true;" onmouseout="window.status=''; return true;"><img src="$image" alt=""/></a> <a href="javascript:void($handler);" id="txt_$name" title="$title" tabindex="$tabindex" onmouseover="window.status='$jstitle'; return true;" onmouseout="window.status=''; return true;">$label</a>$script|;
}

sub getPseudoButton {
    my $self = shift;

    return $self->SUPER::getPseudoButton() if $self->{'_disabled'};
    return $self->getNoscriptButton() unless $self->{'_has_javascript'};

    my $name     = $self->{'_name'}  || '';
    my $label    = $self->_generateLabel(); 
    my $title    = $self->_generateTitle();
    my $tooltip  = $self->_generateTooltip();
    my $image    = $self->{'_image'} ? ('<img src="'.$self->{'_image'}.'" alt=""/> ') : '';
    my $tabindex = defined $self->{'_tabindex'} ? $self->{'_tabindex'} : 0;
    my $script   = $self->_generateInlineScript();
    my $handler  = $self->_generateHandler();
    my $keypress_handler = $self->_generateKeyPressHandler();

    if (defined $tooltip) {
        $self->getOnloadService()->addEvent("Solstice.addToolTip('pseudo_$name', '$tooltip')");
    }

    return qq|<div name="$name" id="pseudo_$name" title="$title" onmouseover="this.style.cursor='pointer';" onmouseout="this.style.cursor='default';" onclick="void($handler);" onkeydown="void($keypress_handler);" tabindex="$tabindex" >$image$label</div>$script|;
}

sub getDropDown {
    my $self = shift;

    return $self->SUPER::getDropDown() if $self->{'_disabled'};
    unless ($self->{'_has_javascript'}) {
        $self->{'_label'} = 'Go';
        return $self->getNoscriptButton();
    }
    
    my $name     = $self->{'_name'}  || '';
    my $label    = $self->_generateLabel();
    my $title    = $self->_generateTitle();
    my $tooltip  = $self->_generateTooltip();
    my $tabindex = defined $self->{'_tabindex'} ? $self->{'_tabindex'} : 0;
    my $script   = $self->_generateInlineScript();
    my $handler  = $self->_generateHandler();

    if (defined $tooltip) {
        $self->getOnloadService()->addEvent("Solstice.addToolTip('dropdown_$name', '$tooltip')");
    }

    my $options = '';
    for my $option ( @{$self->{'_options'}} ) {
        $options .= '<option value="'.$option->{'value'}.'"'.
            ($option->{'selected'} ? ' selected="selected"' : '').'>'.
            $option->{'label'}.'</option>';
    }

    return qq|<select id="dropdown_$name" name="$label" title="$title" tabindex="$tabindex" onchange="$handler">$options</select>$script|;
}

sub _getAccessorDefinition {
    return [
        {
            name => 'ScriptName',
            key  => '_script_name',
            type => 'String',
        },
    ];
}
            
1;
__END__