SportsTracker-TODO
==================

General TODOs:
--------------
- Closing dialog with Escape key doesn't work when a JXDatePicker has the focus
- "Copy exercise" feature, see request:
  https://sourceforge.net/tracker/?func=detail&aid=2927194&group_id=133110&atid=726273
- Overview dialog: new display mode for comparing 2 seasons / years:
  (https://sourceforge.net/projects/sportstracker/forums/forum/451565/topic/4435642)
  - add a new diagram option in the selection combobox called "Compare two seasons"
  - in this mode the user gets following input fields:
    - year 1 (default: current year) 
    - year 2 (default: previous year)
    - season start month (default: January) 
  - it must display all the monthly data of year 1 on the left (line graph) and
    year 2 on the right vertical axis (dashed graph)
- Exercise Dialog (and all others): use JFormatedTextField for entering
  distance, duration etc.
- Exercise list view: right mouse click on the column header should open the
  Options Dialog tab for the list view
- translation updates (german is up to date)
- manual starting of Tasks (background) will be simpler in future AFW's,
  improve STController:startActionManually() then
  => https://appframework.dev.java.net/issues/show_bug.cgi?id=39
  => http://kenai.com/jira/browse/BSAF-92 (I've created a new issue in BSAF)
- Batch import for multiple exercise files (e.g. when migrating from Windows 
  Polar software): In the Import dialog the user needs to select the the sport 
  type, the subtype, the intensity and which value from distance, AVG speed or 
  duration needs to be recalculated (because these 3 values in the exercise 
  files does not fit together in most cases) first. Then all selected files 
  will be imported as exercises into SportsTracker. 
- FilterDialog should also make possible to show e.g. all bicycle
  sport subtypes, except those from "ergometer" (hint from Steffen Rehn)

Calendar view/widget:
- horizontal or vertical animation for scrolling through the months
  => create bitmaps of old and new month view and move those (much faster)
  => alternative: fade out and in via alpha channel
- draw small shadows?

Training route/lap support:
- requested by Bernd Mirbach and other users, see mail from Bernd:
- we need a dialog for editing possible routes/laps and the appropriate
  length, ascent and description
- the user can select a predefined route in the exercise dialog and
  the appropriate widgets will be pre-filled
- it should be possible to filter for specific routes for evaluation


ExerciseViewer-TODO
===================

Diagram panel:
- there's no space at the left side when the bottom axis displays "by distance"
  (between left axis and graph start)

Track panel:
- improve rendering for waypoints, use marker pins instead of circles
  (can the WaypointRenderer from SwingX be reused and enhanced?)

ExerciseParsers:
- GarminTcxParser:
  - refactor big method parseExercisePath(...), split into multiple methods
  - parse speed data for Trackpoints if available instead of calculation 
    (available when there's a speed sensor, e.g. on Edge 500 export files) 
  - average speed is wrong when there are pauses in the exercise (Auto-Stop)
- PolarHsrRawParser and PolarSRawParser:
  - Refactor: Extract duplicate methods/code
- HAC4 Parser:
  - more exercise data checks for parser in unit tests
- HRM Parser: 
  - recalculate average heartrate, speed, times within ranges ... from samples,
    there are often wrong values in the appropriate HRM fields (hint from 
    Steffen Rehn) - (Polar Windows software seems to recalculate this too :-)
  - When the monitor displays heartrate and ranges in percent instead in bpm
    the heartrate limit ranges in the HRM files are also stored in percent. 
    But it's not possible yet to determine whether it's bpm (default) or 
    percent. That's why the parses always assumes bpm values.
    (Calculate the BPM values with help of max. heartrate should work ...)  
