Many ideas:
   Filter:
    *  allow filtering by identifier, e.g. SZ, AU, ... (e.g. ferdi has made many 
         nice 5x5 endgame problems)
    *  select all, which contain "TEXT" in any identifier X (e.g. NAME in 
         SourCe[] or CopyRight[] or GameComment[] or (Comment[] ...)
         (as the search for this may take some time, this is not done until it 
         is needed - and the user gets a warning) - + option to give a tag to 
         all found problems
    *  presets for filters

   Errors:
    *  DONE: if file error: option to edit file in text editor
    *  BYPASSED: after xy subsequent files with error: question, if the program shall 
         continue in this directory
    *  DONE: SGF file error, error message: allow to exit the program, same with 
         Selection dialog
    *  some more exception handling 
    *  BYPASSED: in the Error-/Exception-Message a button to exit the program
    
   Presentation:
    *  show my selection of identifiers from the sgf, e.g. SourCe, AUthor, GEnre, ...
    *  mark (my move and) the answer move
    *  fixed set of e.g. 20 problems of a big collection for a timed test 
         (~byoyomi style)
    *  time allotment for a problem depending on count of solution stones
    *  remember orientation and colors of the previous problem (so, when I go 
         back, the problem has the same orientation and colors as before; up to 
         e.g. 3 previous problems)
    *  switch to default orientation and colors for the actual problem (button, 
         resets when switching to the next problem)
    *  show labels (a-b-c-.../1-2-3...) and auto-switch orientation when needed 
         (button?). 
    *  enhance the random functions (e.g. random path often sticks too long on 
         one path, when retrying); also: don't prefer a path with only two 
         further branches against a path with 10 further branches
    *  try ~blindly: try to visualize without looking on the board (click button
         hides board) - time counting stops meanwhile (in count down mode we add
         seconds depending on count of stones on the board); switch hide/show with 
         the [Esc] key
    *  allow only xy seconds per problem/move, then autoswitch to next problem
         (so: not solved) (a bit similar to a 1x10 seconds blitz game - or may 
         be 3x10 seconds) 
    *  Spaced Repetition Flashcard Algorithm
    *  always black (or white) moves first (option)
    *  button for change orientation, mirror, switch colors
    *  better handling of problems with comments with "B", "W", "top", 
         coordinates etc.
    *  if less then xy stones AND spread on the board: don't switch colors
    *  if less then xy stones AND black stones are 2 to 8 stones more: don't 
         switch colors
    *  adjust or preset time "wait for auto-advance"
    *  option: also switch to next problem, when I didn't solve (logfile lets me
         analize later)
    *  show count of defined paths (incl. wrong) for this node, possibly with 
         count of right/wrong
    *  show count of pathes graphically, # of actual path, possibility to mark 
         this path for exclusion/preference (e.g. [1?][2!][3X][4?][5!])
    *  prefer same answer path, when retrying (option)
    *  let me set the time (steps of 1/10th second) for auto-switch after last 
         solution stone (beside depending on comment text) 
    *  animate solution
    *  don't overwrite the comment to my solution move or wait for me to read 
         it (so, if comment, then wait for 1 or 2 sec.  - or depending on length
         of the text); if there is a comment to the answer move, wait for autoswitch
  
   SGF Handling:
    *  FORCE, NOTTHIS etc. - do something with it
    *  have an editable set of words for replacements 
         e.g. black; noir; schwarz; ...
              right; a droit; rechts; ...
    *  the program still doesn't like pass moves
    *  export sgf with the tags saved in an identifier (e.g. PT - Problem Type)
    *  import problems: as admin to .../NAME/... or .../allusers/...
                        as normal user to .../NAME
    *  export sgf with the tags saved inside the sgf in a self defined identifier;
         preset: GEnre[], ProblemType[]
    
   GUI:
    *  reorder the Selection-window NOT REALLY DONE
    *  take back a move with backspace
    *  let me select the buttons to show up in the GUI
    *  changeable font and font size
    *  shortcuts for next/previous problem should fit to local keyboard 
         settings (z/x not everywhere side by side - and ,/.?)
    *  change language from the GUI
    
   Appearance:
    *  would be nice to render the board and the stones like in CGoban
       ->  less bytes for graphics
    *  let me select another sound for "wrong"
    *  easier to use own board graphic
    
   Tags:
    *  let me connect some tags with a sound (e.g. warning sound for "up to now 
         not solved") or blinking
    *  tags, which control the behavior of the program (e.g. colors, orientation,
         labels, noAutoAdvance, warnTenuki, warnQuestion, ...)
    *  DONE: export/import all tags as plain text 
    *  rename tag (e.g. shitcho to shicho)
    *  replace tags (groupwise) (e.g. if ko and Ko and KO are tags in the pool, 
         I replace ko and KO with Ko, afterwards I can delete ko and KO) (~same 
         as rename)
    *  rebuild the tags repertoire (if I needed to delete the grind.dat file)
    *  allow own sorting of the tags, possibly with deviding bars for groups
    *  bigger set of default tags? (e.g. Demo, solution suboptimal)
    *  register buttons for often used tags to quickly set them
    *  when importing a selection, where I have the same files: merge tags 
         (apparently T.K. worked already on it, but in vers. 1.14 it doesn't work)
    *  if file edited: move file or copy file to folder "edited"
    *  in tags pool list: go down a big list of tags or preselect tag by keyboard, 
         e.g. [T] selects Tesuji (if something similar is possible)
         oops: something similar was a "feature" since vers.1.02 or earlier

   Settings:
    *  save settings as plain text (some settings are already saved this way)
    *  save the tags repertoire in an extra file (not together with the settings)
    *  DONE: set directory for problems, stats, settings and logs to a user's directory
    *  DONE (2nd): button for 2nd and 3rd editor (e.g. for text editor, program with strong 
         engine, ...)
    *  possibility to connect an engine for finding another solution
    *  devide grind.dat (the configuration file) to separate plain text files 
         (tags.txt, grindcfg.txt, ...)
    *  combine problems from /Grinder/problems, $ALLUSERS/.grinder/problems and 
         $HOME/.grinder/problems (user's option), show them separated (e.g. 
         2 or 3 folders "30k")
    *  combine tags from /Grinder/stats and $HOME/.grinder/stats (user's option)
    *  after a set of problems: let me analize those, which I didn't solve
    *  selection window, select folder: "ignore sub-folders" [x] (option)
   
   Coding:
    *  DONE: bug: it's not possible to give java -jar cgoban.jar as editor
    *  IN PROGRESS: more comments in the code for faster reading and analizing the code
    *  SEEMINGLY DONE: bug: delete stats has a bug: sometimes also the highscores 
         are reset (connected: progress bar) 
         gives sometimes an ArrayIndexOutOfBoundsException, seemingly 
         connected to lists or the progress dialog. Before I added 2 lines with 
           thread.sleep (in Task.java), the program was with some repeated 
           action sometimes suddenly unresponsive: apply tag to selection, delete 
           tag from collection, reset stats
    *  reorganize the code: 
         IN PROGRESS: all with file in one class,
         all with error handling in one class,
         all with settings in one file,
         ...
    *  reorganize selection dialog
    *  reorganize problem frame
    *  NO MORE THOUGHTS FOR IT: reorganize WGF frame
    *  better naming of swing variables
    *  help in every window, depending on the context
    *  NO MORE THOUGHTS FOR IT: there could be a .wgf file, which demonstrates the usage (with local images?)
    *  the compiler sometimes complains about 
   "Note: PATH\NAME.java uses or overrides a deprecated API."
   and
   "Note: PATH\NAME.java uses unchecked or unsafe operations."
         the compiler option -Xlint... shows really many warnings
    
Compiled with jdk 1.6.0_35
If something goes wrong: 
  * try to reproduce, reduce the count of involved files (sgf, stats, config)
  * look into the grind.log file (which is now in the settings folder, and 
      possibly one in $TEMP (find it with e.g. echo $TEMP or echo %TEMP%))
  * start the program from a console in GoGrinders program directory 
      (c:\PathToYour\GoGrinder\>), usually with java -jar .\MyGoGrinder.jar -> 
      the console output may give a hint of what goes wrong (in Windows: don't 
      use javaw)
  * rename the grind.dat (the settings file)
  * is an sgf file part of the problem?
  * is one of the stats files part of the problem? (rename the stats folder to 
      e.g. xstats and retry)
  
RueLue@Sensei's / RuediRf@KGS / RuediRf@users.sourceforge.net / Ruediger Klehn