Commit 39f52578 authored by Xavier de Blas's avatar Xavier de Blas

report (doing task 295)

- widget make report done
- class report.cs done (added src/report.cs)
- button "add to report" added on stats widget (added src/gui/report.cs). It comunicates with report.cs

- doing: select the file and print the report, and show some "ok" info (inherites from exportSession).
-pending: manage how stats and graphs classes print in HTML


exportSession record runs and runsInterval

All widgets (except app1, jumps_runs_more, stats_window, report_window) converted to "dialog type", now they cannot be hided under main window. Changed the "modal" value to "No" in stats_window and report_window, now they can be loaded all time (and work normal in the others)

fixed bug in graphs, global indexesQ, and fv in multisession when in a session there is no data
parent 354c55f2
......@@ -18,7 +18,7 @@ MCS = mcs
CHRONOJUMP = chronojump
CHRONOJUMP_DEP_GUI = src/gui/confirm.cs src/gui/error.cs src/gui/jump.cs src/gui/jumpType.cs src/gui/run.cs src/gui/runType.cs src/gui/person.cs src/gui/preferences.cs src/gui/session.cs src/gui/stats.cs
CHRONOJUMP_DEP_GUI = src/gui/confirm.cs src/gui/error.cs src/gui/jump.cs src/gui/jumpType.cs src/gui/run.cs src/gui/runType.cs src/gui/person.cs src/gui/preferences.cs src/gui/session.cs src/gui/stats.cs src/gui/report.cs
CHRONOJUMP_DEP_STATS = src/stats/main.cs src/stats/global.cs src/stats/sjCmjAbk.cs src/stats/sjCmjAbkPlus.cs src/stats/djIndex.cs src/stats/djQ.cs src/stats/rjIndex.cs src/stats/rjPotencyBosco.cs src/stats/rjEvolution.cs src/stats/ieIub.cs src/stats/fv.cs
CHRONOJUMP_DEP_GRAPHS = src/stats/graphs/graphData.cs src/stats/graphs/graphSerie.cs src/stats/graphs/global.cs src/stats/graphs/sjCmjAbk.cs src/stats/graphs/sjCmjAbkPlus.cs src/stats/graphs/djIndex.cs src/stats/graphs/djQ.cs src/stats/graphs/rjIndex.cs src/stats/graphs/rjPotencyBosco.cs src/stats/graphs/rjEvolution.cs src/stats/graphs/ieIub.cs src/stats/graphs/fv.cs
......@@ -26,7 +26,7 @@ CHRONOJUMP_DEP_GRAPHS = src/stats/graphs/graphData.cs src/stats/graphs/graphSeri
CHRONOJUMP_DEP_SQLITE = src/sqlite/main.cs src/sqlite/preferences.cs src/sqlite/person.cs src/sqlite/session.cs src/sqlite/jump.cs src/sqlite/jumpType.cs src/sqlite/run.cs src/sqlite/runType.cs src/sqlite/personSession.cs src/sqlite/stat.cs
CHRONOJUMP_DEP = src/chronojump.cs src/person.cs src/jump.cs src/jumpType.cs src/run.cs src/runType.cs src/session.cs src/catalog.cs src/exportSession.cs src/treeViewJump.cs src/treeViewRun.cs src/util.cs $(CHRONOJUMP_DEP_GUI) $(CHRONOJUMP_DEP_STATS) $(CHRONOJUMP_DEP_GRAPHS) $(CHRONOJUMP_DEP_SQLITE)
CHRONOJUMP_DEP = src/chronojump.cs src/person.cs src/jump.cs src/jumpType.cs src/run.cs src/runType.cs src/session.cs src/catalog.cs src/exportSession.cs src/treeViewJump.cs src/treeViewRun.cs src/util.cs src/report.cs $(CHRONOJUMP_DEP_GUI) $(CHRONOJUMP_DEP_STATS) $(CHRONOJUMP_DEP_GRAPHS) $(CHRONOJUMP_DEP_SQLITE)
RESOURCES = -resource:glade/chronojump.glade,chronojump.glade
CHRONOJUMP_LIB = -pkg:gtk-sharp -pkg:gnome-sharp -pkg:glade-sharp -r System.Data -r Mono.Data.SqliteClient
......
CHANGELOG:
9 set 2005
report (doing task 295)
- widget make report done
- class report.cs done (added src/report.cs)
- button "add to report" added on stats widget (added
src/gui/report.cs). It comunicates with report.cs
- doing: select the file and print the report, and show some
"ok" info (inherites from exportSession).
-pending: manage how stats and graphs classes print in HTML
exportSession record runs and runsInterval
All widgets (except app1, jumps_runs_more, stats_window,
report_window) converted to "dialog type", now they cannot be hided
under main window. Changed the "modal" value to "No" in stats_window and
report_window, now they can be loaded all time (and work normal in the
others)
fixed bug in graphs, global indexesQ, and fv in multisession when in a
session there is no data
1 set 2005 (RELEASE 0.3)
stats global and jumper with every combination between indexestype and
selected jumps
......
No preview for this file type
This diff is collapsed.
......@@ -196,6 +196,7 @@ public class ChronoJump
private static bool lastRunIsInterval; //if last run is interval or not (obvious)
private static JumpType currentJumpType;
private static RunType currentRunType;
private static Report report;
//windows needed
SessionAddWindow sessionAddWin;
......@@ -223,6 +224,7 @@ public class ChronoJump
ConfirmWindowJumpRun confirmWinJumpRun; //for deleting jumps and RJ jumps (and runs)
StatsWindow statsWin;
ReportWindow reportWin;
//Progress bar
......@@ -294,6 +296,11 @@ public class ChronoJump
createComboSujetoCurrent();
createdStatsWin = false;
report = new Report(-1); //when a session is loaded or created, it will change the report.SessionID value
//TODO: check what happens if a session it's deleted
//i suppose report it's deactivated until a new session is created or loaded,
//but check what happens if report window is opened
//We have no session, mark some widgets as ".Sensitive = false"
sensitiveGuiNoSession();
......@@ -907,6 +914,9 @@ public class ChronoJump
//update combo sujeto current
updateComboSujetoCurrent();
combo_person_current.Sensitive = false;
//update report
report.SessionID = currentSession.UniqueID;
}
}
......@@ -972,6 +982,9 @@ public class ChronoJump
//activate the gui for persons in main window
sensitiveGuiYesPerson();
}
//update report
report.SessionID = currentSession.UniqueID;
}
......@@ -1144,7 +1157,8 @@ public class ChronoJump
private void on_menuitem_view_stats_activate(object o, EventArgs args) {
statsWin = StatsWindow.Show(app1, currentSession,
prefsDigitsNumber, weightStatsPercent, heightPreferred);
prefsDigitsNumber, weightStatsPercent, heightPreferred,
report, reportWin);
createdStatsWin = true;
statsWin.InitializeSession(currentSession);
}
......@@ -1293,6 +1307,12 @@ public class ChronoJump
}
}
private void on_show_report_activate (object o, EventArgs args) {
Console.WriteLine("open report window");
reportWin = ReportWindow.Show(app1, report);
}
/* ---------------------------------------------------------
* ---------------- JUMPS EXECUTION (no RJ) ----------------
......
......@@ -27,9 +27,11 @@ using Gtk; //FileSelection widget
public class ExportSession
{
protected string [] myJumpers;
protected string [] myPersons;
protected string [] myJumps;
protected string [] myJumpsRj;
protected string [] myRuns;
protected string [] myRunsInterval;
protected Session mySession;
protected TextWriter writer;
protected static Gtk.Window app1;
......@@ -40,10 +42,10 @@ public class ExportSession
}
public ExportSession(Session mySession, Gtk.Window app1, Gnome.AppBar mainAppbar)
//public ExportSession(Session mySession, Gtk.Window app1)
{
this.mySession = mySession;
myAppbar = mainAppbar;
checkFile("none");
}
......@@ -93,19 +95,13 @@ public class ExportSession
closeWriter();
}
protected void getData()
protected virtual void getData()
{
myJumpers = SqlitePersonSession.SelectCurrentSession(mySession.UniqueID);
bool sortJumpsByType = false;
if(sortJumpsByType) {
myJumps= SqliteJump.SelectAllNormalJumps(mySession.UniqueID, "ordered_by_type"); //returns a string of values separated by ':'
}
else {
myJumps= SqliteJump.SelectAllNormalJumps(mySession.UniqueID, "ordered_by_time"); //returns a string of values separated by ':'
}
myPersons = SqlitePersonSession.SelectCurrentSession(mySession.UniqueID);
myJumps= SqliteJump.SelectAllNormalJumps(mySession.UniqueID, "ordered_by_time");
myJumpsRj = SqliteJump.SelectAllRjJumps(mySession.UniqueID, "ordered_by_time");
myRuns= SqliteRun.SelectAllNormalRuns(mySession.UniqueID, "ordered_by_time");
myRunsInterval = SqliteRun.SelectAllIntervalRuns(mySession.UniqueID, "ordered_by_time");
}
protected virtual void printData ()
......@@ -114,6 +110,8 @@ public class ExportSession
printJumpers();
printJumps();
printJumpsRj();
printRuns();
printRunsInterval();
printFooter();
}
......@@ -133,6 +131,14 @@ public class ExportSession
{
}
protected virtual void printRuns()
{
}
protected virtual void printRunsInterval()
{
}
protected virtual void printFooter()
{
}
......@@ -173,7 +179,7 @@ public class ExportSessionCSV : ExportSession
protected override void printJumpers()
{
writer.WriteLine( "\n" + Catalog.GetString ( "Jumpers" ) );
foreach (string jumperString in myJumpers) {
foreach (string jumperString in myPersons) {
string [] myStr = jumperString.Split(new char[] {':'});
writer.WriteLine ("{0}, {1}",
......@@ -268,6 +274,67 @@ public class ExportSessionCSV : ExportSession
}
}
protected override void printRuns()
{
writer.WriteLine( "\n" + Catalog.GetString ( "Normal Runs" ) );
writer.WriteLine( "\n" +
Catalog.GetString("Runner name") + ", " +
Catalog.GetString("run ID") + ", " +
Catalog.GetString("Type") + ", " +
Catalog.GetString("Distance") + ", " +
Catalog.GetString("Time") + ", " +
Catalog.GetString("Speed") + ", " +
Catalog.GetString("Description") );
foreach (string runString in myRuns) {
string [] myStr = runString.Split(new char[] {':'});
writer.WriteLine ("{0}, {1}, {2}, {3}, {4}, {5}",
myStr[0], myStr[1], //person.name, run.uniqueID
myStr[4], myStr[5], //run.type, run.distance
myStr[6], Util.GetSpeed(myStr[5], myStr[6]), //run.time, speed
myStr[7] //run.description
);
}
}
protected override void printRunsInterval()
{
writer.WriteLine( "\n" + Catalog.GetString ( "Interval Runs" ) );
writer.WriteLine( "\n" +
Catalog.GetString("Runner name") + ", " +
Catalog.GetString("run ID") + ", " +
Catalog.GetString("Type") + ", " +
Catalog.GetString("Distance total") + ", " +
Catalog.GetString("Time total") + ", " +
Catalog.GetString("Average speed") + ", " +
Catalog.GetString("Distance interval") + ", " +
Catalog.GetString("Tracks") + ", " +
Catalog.GetString("Limited") + ", " +
Catalog.GetString("Description") );
foreach (string runString in myRunsInterval) {
string [] myStr = runString.Split(new char[] {':'});
writer.WriteLine ("{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}",
myStr[0], myStr[1], //person.name, run.uniqueID
myStr[4], myStr[5], //run.type, run.distancetotal
myStr[6], //run.timetotal,
Util.GetSpeed(myStr[5], myStr[6]), //speed AVG
myStr[7], //run.distanceInterval
myStr[9], myStr[11], //tracks, limited
myStr[10] //description
);
//print intervalTimesString
string [] timeString = myStr[8].Split(new char[] {'='});
writer.WriteLine( Catalog.GetString ( "Interval speed, interval times" ) );
foreach(string myTime in timeString) {
writer.WriteLine("{0}, {1}", Util.GetSpeed(myStr[7], myTime), myTime);
}
}
}
protected override void printFooter()
{
Console.WriteLine( "Correctly exported" );
......@@ -341,6 +408,14 @@ public class ExportSessionXML : ExportSession
{
}
protected override void printRuns()
{
}
protected override void printRunsInterval()
{
}
protected override void printFooter()
{
//xr.Flush();
......
/*
* This file is part of ChronoJump
*
* ChronoJump 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 of the License, or
* (at your option) any later version.
*
* ChronoJump 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 this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Xavier de Blas:
* http://www.xdeblas.com, http://www.deporteyciencia.com (parleblas)
*/
using System;
using Gtk;
using Glade;
using Gnome;
using GLib; //for Value
using System.Collections; //ArrayList
public class ReportWindow {
TreeStore store;
bool selected;
[Widget] Gtk.Window report_window;
[Widget] Gtk.TreeView treeview1;
[Widget] Gtk.CheckButton cb_session_data;
[Widget] Gtk.CheckButton cb_jumpers;
[Widget] Gtk.CheckButton cb_jumps_simple;
[Widget] Gtk.CheckButton cb_jumps_reactive;
[Widget] Gtk.CheckButton cb_runs_simple;
[Widget] Gtk.CheckButton cb_runs_interval;
static ReportWindow ReportWindowBox;
protected Gtk.Window parent;
//protected int sessionID;
Report report;
protected ReportWindow () {
}
ReportWindow (Gtk.Window parent, Report report ) {
Glade.XML gladeXML = Glade.XML.FromAssembly ("chronojump.glade", "report_window", null);
gladeXML.Autoconnect(this);
this.parent = parent;
this.report = report;
//treeview
createTreeView(treeview1);
store = new TreeStore( typeof (string), typeof (string), typeof (string),
typeof (string), typeof (string), typeof (string) );
treeview1.Model = store;
}
//if it's created
static public ReportWindow Show (Gtk.Window parent, Report report)
{
if (ReportWindowBox == null) {
ReportWindowBox = new ReportWindow (parent, report);
//checkboxes
ReportWindowBox.loadCheckBoxes();
ReportWindowBox.fillTreeView();
ReportWindowBox.report_window.Show ();
}
//update all widget only if it's hidden
if(! ReportWindowBox.report_window.Visible)
{
//checkboxes
ReportWindowBox.loadCheckBoxes();
ReportWindowBox.fillTreeView();
ReportWindowBox.report_window.Show ();
}
return ReportWindowBox;
}
protected void createTreeView (Gtk.TreeView tv) {
tv.HeadersVisible=true;
int count = 0;
tv.AppendColumn ( Catalog.GetString("Type"), new CellRendererText(), "text", count++);
tv.AppendColumn ( Catalog.GetString("Subtype"), new CellRendererText(), "text", count++);
tv.AppendColumn ( Catalog.GetString("Apply to"), new CellRendererText(), "text", count++);
tv.AppendColumn ( Catalog.GetString("Session/s"), new CellRendererText(), "text", count++);
tv.AppendColumn ( Catalog.GetString("Show jumps"), new CellRendererText(), "text", count++);
tv.AppendColumn ( Catalog.GetString("Show sex"), new CellRendererText(), "text", count++);
}
void loadCheckBoxes ()
{
if(report.ShowCurrentSessionData) { cb_session_data.Active = true; }
if(report.ShowCurrentSessionJumpers) { cb_jumpers.Active = true; }
if(report.ShowSimpleJumps) { cb_jumps_simple.Active = true; }
if(report.ShowReactiveJumps) { cb_jumps_reactive.Active = true; }
if(report.ShowSimpleRuns) { cb_runs_simple.Active = true; }
if(report.ShowIntervalRuns) { cb_runs_interval.Active = true; }
}
void fillTreeView ()
{
//delete rows
store.Clear();
for (int i=0; i < report.StatisticsData.Count ; i++) {
string [] myStringFull = report.StatisticsData[i].ToString().Split(new char[] {':'});
store.AppendValues (
myStringFull[0], //type
myStringFull[1], //subtype
myStringFull[2], //applyTo
myStringFull[3], //sessionString
myStringFull[4], //showJumps
myStringFull[5] //showSex
);
}
}
//comes from stats window
public void Add(string type, string subtype, string applyTo, string sessionString, string showJumps, string showSex)
{
store.AppendValues (
type,
subtype,
applyTo,
sessionString,
showJumps,
showSex
);
//show report window if it's not shown
report_window.Show ();
}
protected virtual void on_treeview_cursor_changed (object o, EventArgs args)
{
TreeView tv = (TreeView) o;
TreeModel model;
TreeIter iter;
selected = false;
// you get the iter and the model if something is selected
if (tv.Selection.GetSelected (out model, out iter)) {
selected = true;
}
}
protected virtual void on_button_up_clicked (object o, EventArgs args) {
if(selected)
{
TreeModel model;
TreeIter iter_pre; //iter_old
TreeIter iter_post; //iter new_ordered
TreePath path;
if (treeview1.Selection.GetSelected (out model, out iter_pre)) {
path=store.GetPath(iter_pre);
path.Prev();
bool notFirst = store.GetIter(out iter_post, path);
if(notFirst) {
store.MoveBefore (iter_pre, iter_post);
}
}
}
}
protected virtual void on_button_down_clicked (object o, EventArgs args) {
if(selected)
{
TreeModel model;
TreeIter iter_pre; //iter_old
TreeIter iter_post; //iter new_ordered
TreePath path;
if (treeview1.Selection.GetSelected (out model, out iter_pre)) {
path=store.GetPath(iter_pre);
path.Next();
bool notLast = store.GetIter(out iter_post, path);
if(notLast) {
store.MoveAfter (iter_pre, iter_post);
}
}
}
}
protected virtual void on_button_delete_clicked (object o, EventArgs args) {
if(selected)
{
TreeModel model;
TreeIter iter1;
if (treeview1.Selection.GetSelected (out model, out iter1)) {
store.Remove(ref iter1);
}
}
}
private void recordData()
{
//myReport.SessionID = sessionID;
//checkboxes
if(cb_session_data.Active) { report.ShowCurrentSessionData = true; }
else { report.ShowCurrentSessionData = false; }
if(cb_jumpers.Active) { report.ShowCurrentSessionJumpers = true; }
else { report.ShowCurrentSessionJumpers = false; }
if(cb_jumps_simple.Active) { report.ShowSimpleJumps = true; }
else { report.ShowSimpleJumps = false; }
if(cb_jumps_reactive.Active) { report.ShowReactiveJumps = true; }
else { report.ShowReactiveJumps = false; }
if(cb_runs_simple.Active) { report.ShowSimpleRuns = true; }
else { report.ShowSimpleRuns = false; }
if(cb_runs_interval.Active) { report.ShowIntervalRuns = true; }
else { report.ShowIntervalRuns = false; }
//treeview
TreeIter myIter = new TreeIter ();
bool iterOk = true;
ArrayList arrayToRecord = new ArrayList (1);
for (int count=0 ; iterOk; count ++) {
if (count == 0) {
iterOk = store.GetIterFirst (out myIter);
}
else {
iterOk = store.IterNext (ref myIter);
}
if (iterOk) {
arrayToRecord.Add (
(string) treeview1.Model.GetValue (myIter, 0) + ":" + //type
(string) treeview1.Model.GetValue (myIter, 1) + ":" + //subtype
(string) treeview1.Model.GetValue (myIter, 2) + ":" + //apply to
(string) treeview1.Model.GetValue (myIter, 3) + ":" + //sessionString
(string) treeview1.Model.GetValue (myIter, 4) + ":" + //showJumps
(string) treeview1.Model.GetValue (myIter, 5) //showSex
);
}
}
report.StatisticsData = arrayToRecord;
}
protected virtual void on_button_close_clicked (object o, EventArgs args)
{
recordData();
ReportWindowBox.report_window.Hide();
//ReportWindowBox = null;
}
protected virtual void on_delete_event (object o, EventArgs args)
{
recordData();
ReportWindowBox.report_window.Hide();
//ReportWindowBox = null;
}
protected virtual void on_button_make_report_clicked (object o, EventArgs args)
{
recordData();
report.PrepareFile();
}
}
......@@ -108,9 +108,13 @@ public class StatsWindow {
iubIndexFormula
};
Report report;
ReportWindow reportWin;
StatsWindow (Gtk.Window parent, Session currentSession,
int prefsDigitsNumber, bool weightStatsPercent, bool heightPreferred)
int prefsDigitsNumber, bool weightStatsPercent, bool heightPreferred,
Report report, ReportWindow reportWin)
{
Glade.XML gladeXML = Glade.XML.FromAssembly ("chronojump.glade", "stats_window", null);
......@@ -121,6 +125,9 @@ public class StatsWindow {
this.weightStatsPercent = weightStatsPercent;
this.heightPreferred = heightPreferred;
this.report = report;
this.reportWin= reportWin;
myStat = new Stat(); //create and instance of myStat
createComboStatsType();
......@@ -135,11 +142,13 @@ public class StatsWindow {
static public StatsWindow Show (Gtk.Window parent, Session currentSession,
int prefsDigitsNumber, bool weightStatsPercent, bool heightPreferred)
int prefsDigitsNumber, bool weightStatsPercent, bool heightPreferred,
Report report, ReportWindow reportWin)
{
if (StatsWindowBox == null) {
StatsWindowBox = new StatsWindow (parent, currentSession,
prefsDigitsNumber, weightStatsPercent, heightPreferred);
prefsDigitsNumber, weightStatsPercent, heightPreferred,
report, reportWin);
}
StatsWindowBox.stats_window.Show ();
......@@ -830,8 +839,6 @@ public class StatsWindow {
fillTreeView_stats(false);
}
}
private void on_button_stats_select_sessions_clicked (object o, EventArgs args) {
Console.WriteLine("select sessions for stats");
......@@ -855,6 +862,60 @@ public class StatsWindow {
fillTreeView_stats(false);
}
private void on_button_add_to_report_clicked (object o, EventArgs args) {
Console.WriteLine("add to report window");
string statisticType = combo_stats_stat_type.Entry.Text;
string statisticSubType = combo_stats_stat_subtype.Entry.Text;
if(statisticType == "" || statisticSubType == "") {
//for an unknown reason, when we select an option in the combo stats,
//the on_combo_stats_stat_type_changed it's called two times?
//in the first the value of Entry.Text is "";
return;
} else {
string statisticApplyTo = combo_stats_stat_apply_to.Entry.Text;
if(statisticApplyTo.Length == 0) {
statisticApplyTo = "-";
}
string sessionsAsAString = "";
if (radiobutton_current_session.Active) {
sessionsAsAString = (currentSession.Name + "[" + currentSession.UniqueID + "]");
} else if (radiobutton_selected_sessions.Active) {
for (int i=0; i < selectedSessions.Count ; i++) {
string [] myStrFull = selectedSessions[i].ToString().Split(new char[] {':'});
sessionsAsAString += myStrFull[1] + "[" + myStrFull[0] + "] ";
}
}
string statsShowJumps = "";
if (radiobutton_stats_jumps_all.Active) {
statsShowJumps = Catalog.GetString("All");
} else if (radiobutton_stats_jumps_limit.Active) {
statsShowJumps = Catalog.GetString("Limit") + " " + spin_stats_jumps_limit.Value.ToString();
} else if (radiobutton_stats_jumps_person_bests.Active) {
statsShowJumps = Catalog.GetString("Jumper's best") + " " + spin_stats_jumps_person_bests.Value.ToString();
} else {
statsShowJumps = Catalog.GetString("Jumper's average");
}
bool showSex = false;
if(checkbutton_stats_sex.Active) {
showSex = true;
}
//create or show the report window
reportWin = ReportWindow.Show(parent, report);
//add current stat
reportWin.Add(statisticType, statisticSubType, statisticApplyTo,
sessionsAsAString, statsShowJumps, showSex.ToString());
}
}
void on_button_close_clicked (object o, EventArgs args)
{
StatsWindowBox.stats_window.Hide();
......
/*
* This file is part of ChronoJump
*
* ChronoJump 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 of the License, or
* (at your option) any later version.
*
* ChronoJump 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 this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Xavier de Blas:
* http://www.xdeblas.com, http://www.deporteyciencia.com (parleblas)
*/
using System;
using System.Data;
using System.Collections; //ArrayList
using Gtk;
using Glade;
using Gnome;
public class Report : ExportSession
{
private int sessionID;
public bool ShowCurrentSessionData;
public bool ShowCurrentSessionJumpers;
public bool ShowSimpleJumps;
public bool ShowReactiveJumps;
public bool ShowSimpleRuns;
public bool ShowIntervalRuns;
public ArrayList StatisticsData;
public Report(int sessionID)
{
this.SessionID = sessionID;
ShowCurrentSessionData = true;
ShowCurrentSessionJumpers = true;
ShowSimpleJumps = true;
ShowReactiveJumps = true;
ShowSimpleRuns = true;
ShowIntervalRuns = true;