package Catalyst::Helper::View::GraphView; use strict; =head1 NAME Catalyst::Helper::View::GraphView - Helper for GraphView Views =head1 SYNOPSIS script/create.pl view GraphView GraphView =head1 DESCRIPTION Helper for GraphView Views. =head2 METHODS =head3 mk_compclass =cut sub mk_compclass { my ( $self, $helper ) = @_; my $file = $helper->{file}; $helper->render_file( 'compclass', $file ); } =head1 SEE ALSO L, L, L, L, L =head1 AUTHOR Johan Lindstrom, C =head1 LICENSE This library is free software . You can redistribute it and/or modify it under the same terms as perl itself. =cut 1; __DATA__ __compclass__ package [% class %]; use strict; use base 'Catalyst::View'; =head1 NAME [% class %] - Catalyst GraphView View =head1 SYNOPSIS See L<[% app %]> =head1 DESCRIPTION Catalyst GraphView View. =head1 METHODS =head2 process Render the object specified in C<$c-Estash-E{graphview}-E{object}> and store the output in C<$c-Eresponse-Eoutput>. =cut sub process { my ($self, $c) = @_; #This is an example. Adjust to your needs. #1. This is your model object containing the abstract graph you are about # to render into a GraphViz object. my $graph = $c->stash->{graphview}->{object} or die('No object specified in $c->stash->{graphview}->{object} for rendering'); #2. Render the model object. This is your View code where you adapt the # look of the graph (node shape, color, etc.) my $graphViz = GraphViz->new(node => { fontname => "Verdana", fontsize => 7, name => "graph", }); $graphViz->add_node("something from $graph", shape => "triangle", color => "black"); #3. Forward to the GraphViz View $c->stash->{graphviz}->{graph} = $graphViz; $c->forward('[% app %]::V::GraphViz'); if($c->res->content_type eq "text/plain") { #imap #4. You may want to post-process imagemap output # Transform it here using something more interesting # than lc(). Useful e.g. for adding javascript events. $c->response->body( lc( $c->response->body ) ); } return 1; } =head1 AUTHOR [% author %] =head1 LICENSE This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself. =cut 1;