# $Id: Util.pm,v 1.2 2003/09/28 08:09:31 clajac Exp $
package CPANXR::Apache::Util;
use strict;
sub navigator {
my ($pkg, $r, $page, $base) = @_;
$r->print("
");
if($page->previous_page) {
$r->print("print($base);
$r->print("&p=");
$r->print($page->previous_page);
$r->print("\"><< ")
}
for(1..$page->last_page) {
$r->print("print($base);
$r->print("&p=" . $_ . "\">");
if($_ == $page->current_page) {
$r->print("" . $_ . "");
} else {
$r->print($_);
}
$r->print(" ");
}
if($page->next_page) {
$r->print("print($base);
$r->print("&p=");
$r->print($page->next_page);
$r->print("\">>>");
}
$r->print("");
}
package CPANXR::Apache::Util::Table;
our @Colors = qw(eeeeee ffffff);
sub new {
my ($pkg, $r, $columns, $width) = @_;
$pkg = ref $pkg || $pkg;
unless(ref $width eq 'ARRAY') {
my $cw = int(100/$columns);
@$width = map { $cw } 0..($columns - 1);
$width->[-1] += (100 - $cw * $columns) unless($cw * $columns == 100);
@$width = map { $_ . "%" } @$width;
}
return bless { r => $r,
columns => $columns,
row_num => 0,
width => $width }, $pkg;
}
sub begin {
my $self = shift;
$self->{r}->print("\n");
1;
}
sub print {
my ($self, @data) = @_;
my $color = $self->{row_num} & 1;
$self->{r}->print("");
for(0..($self->{columns} - 1)) {
$self->{r}->print("| {width}->[$_]\">");
$self->{r}->print($data[$_] ? $data[$_] : "");
$self->{r}->print(" | ");
}
$self->{r}->print("
");
$self->{row_num}++;
1;
}
sub header {
my ($self, @data) = @_;
$self->{r}->print("");
for(0..($self->{columns} - 1)) {
$self->{r}->print("| ");
$self->{r}->print($data[$_] ? $data[$_] : "");
$self->{r}->print(" | ");
}
$self->{r}->print("
");
$self->{row_num} = 1;
1;
}
sub end {
my $self = shift;
$self->{r}->print("
");
}
1;