# -*- perl -*-
#
#
# Wizard - A Perl package for implementing system administration
# applications in the style of Windows wizards.
#
#
# This module is
#
# Copyright (C) 1999 Jochen Wiedmann
# Am Eisteich 9
# 72555 Metzingen
# Germany
#
# Email: joe@ispsoft.de
# Phone: +49 7123 14887
#
# and Amarendran R. Subramanian
# Grundstr. 32
# 72810 Gomaringen
# Germany
#
# Email: amar@ispsoft.de
# Phone: +49 7072 920696
#
# All Rights Reserved.
#
# You may distribute under the terms of either the GNU General Public
# License or the Artistic License, as specified in the Perl README file.
#
use strict;
use Wizard::Form ();
package Wizard::Form::HTML;
@Wizard::Form::HTML::ISA = qw(Wizard::Form);
sub Display {
my($self, $wiz, $state) = @_;
$self->ResetHTML();
$self->AddHTML('
');
my $table_finished=0;
$self->{'objects'} = {};
$wiz->{'ep'}->{'_ep_wizard_form'} = $self;
foreach my $elem (@{$self->{'elems'}}) {
if((ref($elem) =~ /Submit\:\:/) && (!($table_finished))) {
$table_finished = 1;
$self->AddHTML('
') ;
}
$elem->Display($wiz, $self, $state);
}
}
sub ResetHTML { shift->{'html-' . (shift || 'body')} = '';};
sub HelpUrl {
my $self = shift;
$self->{'help_url'} = shift if @_;
$self->{'help_url'};
}
sub AddHTML {
my $self = shift; my $htmlout = shift;
my $part = shift || 'body';
$self->{'html-' . $part} .= "$htmlout\n";
}
sub object {
my $self = shift; my $o = $self->{'objects'};
my $name = shift;
return (keys %$o) if wantarray && !$name;
if(@_) {
my $obj = shift;
$name ||= $obj->{'name'};
unless($name) {
my $pre = ref($obj); my $num = 0;
$pre = $2 if($pre =~ /^([^\:]+\:\:)*([^\:]+)\:\:HTML$/);
while(exists($o->{$pre. '_' . (++$num)})) {};
$name = $pre . '_' . $num;
$obj->{'name'} = $name;
}
$o->{$name} = $obj;
}
$o->{$name};
}