#  Copyright (c) 1997-2004
#  Ewgenij Gawrilow, Michael Joswig (Technische Universitaet Berlin, Germany)
#  http://www.math.tu-berlin.de/polymake,  mailto:polymake@math.tu-berlin.de
#
#  This program is free software; you can redistribute it and/or modify it
#  under the terms of the GNU General Public License as published by the
#  Free Software Foundation; either version 2, or (at your option) any
#  later version: http://www.gnu.org/licenses/gpl.txt.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#-----------------------------------------------------------------------------
#  $Project: polymake $$Id: splitstree.rules,v 1.9 2004/11/01 14:55:26 gawrilow Exp $

package SplitsTree::Viewer;

# path to SplitsTree
custom $splitstree;

CONFIGURE {
   $splitstree=find_via_path("SplitsTree")
   or die "SplitsTree package not found\n";
}

###########################################################################################
#
#  Static (file-based) implementation of the Viewer interface
#

use SplitsTree;
use BackgroundViewer;

use Struct [ '@ISA' => 'SimpleViewer' ];

sub new {
   my $self=&_new;
   $self;
}

sub command {
   $splitstree . " -i " .  $_[0]->graphics->{workfile};
}

# use the SplitsTree package
label splitstree

global_method splitstree: draw(Visual::FiniteMetricSpace) {
   my ($self, $M)=@_;
   $self->graphics=new SplitsTree::File( workfile => $self->tempfile.".nex",
					 metric => $M->metric,
					 taxa => $M->taxa );
}

# Local Variables:
# c-basic-offset:3
# mode: perl
# End:
