#!/usr/bin/perl

# Example of Tk::TableMatrix::SpreadsheetHideRows widget:
#   Table display with hidden detail data
#
# This example displays made-up average temperature data
#  for different time periods (quarter and months), and regions.

# Updated to have more spans. 3/8/06. Fully expanding Row 2 and the
#    lower level Rows should look ok, with the spans restoring back
#    to where they were.

use Tk;

use Tk::TableMatrix::SpreadsheetHideRows;

my $top = MainWindow->new;

my $arrayVar = {};

my @rawdata = (qw/ 
Quarter	Month	Region	State	AvgTemp	
1	--	South	--	39	
2	--	South	--	61	
3	--	South	--	65	
4	--	South	--	45	
/);



foreach my $row  (0..4){
	foreach my $col (0..5){
		next if( $col == 0);
			
		$arrayVar->{"$row,$col"} = shift @rawdata;
	}
}


my $expandData = {
	1 => { data => [ [ '','','Jan', 'South','--',33],
	                 [ '','','Feb', 'South','--',38],
	                 [ '','','Mar', 'South','--',45],
			 ],
	       tag => 'detail',		
	       expandData => {
	       			1 => { data => [ [ '','','', '','Texas',35],
				        	  [ '','','', '','Ok',36],
				        	  [ '','','', '','Ark',37],
						 ],
				       tag => 'detail2',
				       },
	       			2 => { data => [ [ '','','', '','Texas',41],
				        	  [ '','','', '','Ok',42],
				        	  [ '','','', '','Ark',43],
						 ],
				       tag => 'detail2',
				       },
	       			3 => { data => [ [ '','','', '','Texas',51],
				        	  [ '','','', '','Ok',52],
				        	  [ '','','', '','Ark',53],
						 ],
				       tag => 'detail2',
				       },
			      },
	       },
	       
	2 => { data => [ [ '','','Apr', 'South','--',55],
	        	 [ '','','May', 'South','--',61],
	        	 [ '','','Jun', 'South','--',68],
	        	 ],
	       tag => 'detail',
	       spans => [ 1 => '0,1'],
	       expandData => {
	       			2 => { data => [ [ '','','', '','Texas',58],
				        	  [ '','','', '','Ok',65],
				        	  [ '','','', '','Ark',60],
						 ],
				       tag => 'detail2',
				       }
			      }
	       },
	 4 => { data => [['','Sorry, Detail Data Not Available Until Next month']],
	 	tag => 'detail',
		spans => [ 1 => '0,3']
		},
	       
	};

my $t = $top->Scrolled('SpreadsheetHideRows', -rows => 5, -cols => 6, 
                              -width => 6, -height => 6,
			      -titlerows => 1, -titlecols => 1,
			      -variable => $arrayVar,
			      -selectmode => 'extended',
			      -resizeborders => 'both',
			      -selectorCol => 0,
			      -expandData => $expandData
			     #  -state => 'disabled'
			    #  -colseparator => "\t",
			    #  -rowseparator => "\n"
                    );

# Tags for the detail data:
$t->tagConfigure('detail', -bg => 'palegreen', -relief => 'sunken');
$t->tagConfigure('detail2', -bg => 'lightskyblue1', -relief => 'sunken');



$t->pack(-expand => 1, -fill => 'both');

Tk::MainLoop;
