App-Chart
view release on metacpan or search on metacpan
misc/t-raw.pl view on Meta::CPAN
#!/usr/bin/perl -w
# Copyright 2008, 2009, 2010, 2011 Kevin Ryde
# This file is part of Chart.
#
# Chart 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 3, or (at your option) any later version.
#
# Chart 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.
#
# You should have received a copy of the GNU General Public License along
# with Chart. If not, see <http://www.gnu.org/licenses/>.
use strict;
use warnings;
use Gtk2 '-init';
use App::Chart::Gtk2::RawDialog;
use App::Chart::Database;
use App::Chart::DBI;
use Gtk2::Ex::Datasheet::DBI;
use Gtk2::Ex::Units;
use App::Chart::Gtk2::GUI;
if (1) {
my $dialog = App::Chart::Gtk2::RawDialog->popup ('BHP.AX');
$dialog->signal_connect (unmap => sub { Gtk2->main_quit; });
Gtk2->main;
exit 0;
}
my $toplevel = Gtk2::Window->new('toplevel');
$toplevel->signal_connect (destroy => sub { Gtk2->main_quit });
my $vbox = Gtk2::VBox->new (0, 0);
$toplevel->add ($vbox);
my $em = Gtk2::Ex::Units::em($toplevel);
print "$em\n";
my $dbh = App::Chart::DBI->instance;
my $datasheet_def
= { dbh => $dbh,
sql => { select => "date, new, old, note",
from => "split",
order_by => "date"
},
vbox => $vbox,
fields => [ { name => 'date',
x_percent => 35,
# validation => sub { &validate_first_name(@_); }
},
{ name => 'new',
align => 'right',
x_percent => 35
},
{ name => 'old',
align => 'right',
x_percent => 30,
},
{ name => 'note',
align => 'right',
x_percent => 30,
},
],
};
sub validate_date {
my ($str) = @_;
return ($str =~ /^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$/);
}
$datasheet_def
= { dbh => $dbh,
sql => { select => 'ex_date, record_date, pay_date, amount, imputation, qualifier, note',
from => 'dividend',
order_by => 'ex_date',
where => 'symbol=?',
bind_values => [ 'BHP.AX' ],
},
vbox => $vbox,
fields => [ { name => 'ex_date',
# renderer => 'date',
validation => \&validate_date,
},
{ name => 'record_date',
# renderer => 'date',
validation => \&validate_date,
},
{ name => 'pay_date',
# renderer => 'date',
validation => \&validate_date,
},
{ name => 'amount',
align => 'right',
# x_percent => 35
},
{ name => 'imputation',
align => 'right',
# x_percent => 30,
},
{ name => 'qualifier',
header_markup => 'Qualifier',
},
{ name => 'note',
# x_percent => 30,
},
],
};
$datasheet_def
= { dbh => App::Chart::DBI->instance,
sql => { select => 'date, open, high, low, close, volume, openint',
from => 'daily',
order_by => 'date',
where => 'symbol=?',
bind_values => [ 'BHP.AX' ],
},
vbox => $vbox,
# treeview => $treeview,
fields => [ { name => 'date',
validation => \&validate_date,
x_absolute => 9 * $em,
},
{ name => 'open',
align => 'right',
x_absolute => 9 * $em,
},
{ name => 'high',
align => 'right',
x_absolute => 9 * $em,
},
{ name => 'low',
align => 'right',
x_absolute => 9 * $em,
},
{ name => 'close',
align => 'right',
x_absolute => 9 * $em,
},
{ name => 'volume',
align => 'right',
x_absolute => 10 * $em,
},
{ name => 'openint',
align => 'right',
x_absolute => 10 * $em,
},
],
};
my $treeview = Gtk2::TreeView->new;
$vbox->pack_start ($treeview, 0,0,0);
$datasheet_def = { dbh => $dbh,
sql => { select => 'key, value',
from => 'extra',
order_by => 'key ASC',
where => 'symbol=?',
bind_values => [ '' ],
},
treeview => $treeview,
fields => [
{ name => 'key',
header_markup => ('Key'),
x_absolute => 15 * $em,
( run in 1.185 second using v1.01-cache-2.11-cpan-39bf76dae61 )