first of all, congratulations for the great job you are doing.
After some days I'm using Banksia, I would have to report a bug and, if possible, some suggestions.
The bug occurs when I run a tournament. If I pause it (concurrency = 0) and exit the application as soon as the current game is over, I get an application error.
To avoid this I have to clean all the remaining information from the last game (Engine info, Moves and Score graph).
If I open a new game tab (human vs human) the information of those panels are still there, and again, if I exit the application, the error occurs.
If I open a second tab, those panels finally get clear and I can now exit without problems.
It seems that some information of the last game remains allocated and it cause an exception on exit.
My system has Win7 home edition, CPU i7 and 8GB of ram.
Suggestions (sorted by preference)
1) Assign a default elo (e.g. 2000 or 3000) when a new engine is created. Then apply the changes to any engine elo, based on the performance achieved in tournaments. It would be like an overall and historical performance indicator for its engine.
2) When a new tournament is created, sort the game list so that each engine has played at least one game before any other engine plays the second one. It would be like in a real live tournament. For example, in the simplest case, if there are 4 players, the current game list (without shuffling) is P1-P2 P1-P3 P1-P4 P2-P3 P2-P4 P3-P4, my proposal is to get P1-P2 P3-P4 P1-P3 P2-P4 P1-P4 P2-P3.
2) Remember, on application restart, which tab was selected in the tournament result panel, or save this information with the layout. Otherwise, make it possible to change the order of the tabs and save it.
4) Draw the whole crosstable of the tournament since the start, with all the cells empty of course.