/usr/local/CPAN/CPANXR/CPANXR/Apache/SubBrowser.pm
# $Id: SubBrowser.pm,v 1.1 2003/10/03 12:08:19 clajac Exp $
package CPANXR::Apache::SubBrowser;
use CPANXR::Parser qw(:constants);
use strict;
sub graph {
my ($self, $r, $q) = @_;
# Fetch sub id
my $sub = $q->param('sub');
my ($sub_id, $pkg_id) = split/_/,$sub,2;
my $sub_name = CPANXR::Database->select_symbol($sub_id)->[0]->[0];
my $package = CPANXR::Database->select_symbol($pkg_id)->[0]->[0];
# Fetch type
my $type = $q->param('type') || 'svg';
if($sub_id && $pkg_id) {
$r->print("<b>Visualizing subroutine</b>: ${package}::${sub_name} as ");
$r->print(qq{<a href="graph?sub=${sub}&type=svg">SVG</a> | });
$r->print(qq{<a href="graph?sub=${sub}&type=png">PNG</a>});
$r->print("\n<br><br>");
$r->print("<blockquote>\n");
if($type eq 'svg') {
$r->print(qq{<embed border="1" src="visualize?sub=${sub}&type=svg" type="image/svg-xml" pluginspace="http://www.adobe.com/svg/viewer/install/" width="640" height="480"></embed>});
} elsif($type eq 'png') {
$r->print(qq{<img border="1" src="visualize?sub=${sub}&type=png">});
}
$r->print("</blockquote>\n");
} else {
$r->print("No such package\n");
}
}
1;