# $Id: ClassBrowser.pm,v 1.2 2003/09/30 20:49:02 clajac Exp $ package CPANXR::Apache::ClassBrowser; use CPANXR::Parser qw(:constants); use strict; sub browse { my ($self, $r, $q) = @_; my $current = $q->param('p') || 1; my $classes = CPANXR::Database->select_connections(limit_types => [CONN_ISA]); my %classes = map { $_->[1] => $_->[0] } @$classes; my @classes = sort { lc($a) cmp lc($b) } keys %classes; $r->print("
\n"); my $table = CPANXR::Apache::Util::Table->new($r, 2, [qw(80% 20%)]); $table->begin; $table->header("Class:", "ID:"); my $page = Data::Page->new(scalar @classes, 10, $current); for($page->splice(\@classes)) { my $url = qq{$_}; $table->print($url, $classes{$_}); } $table->end; # Write navigation my $base = "classes?a=1"; CPANXR::Apache::Util->navigator($r, $page, $base); $r->print("
"); } sub graph { my ($self, $r, $q) = @_; # Fetch id of file to show my $class_id = $q->param('class'); my $type = $q->param('type') || 'svg'; my $class = CPANXR::Database->select_symbol($class_id)->[0]->[0]; if($class) { $r->print("Visualizing package: $class as "); $r->print(qq{SVG | }); $r->print(qq{PNG}); $r->print("\n

"); $r->print("
\n"); if($type eq 'svg') { $r->print(qq{}); } elsif($type eq 'png') { $r->print(qq{}); } $r->print("
\n"); } else { $r->print("No such package\n"); } } 1;