MuMech/MechJeb2 — pull request #403 by xytovl (2014-07-30 20:15:46+00:00)
Title: Modular maneuver planner

I initially wanted to see how to add a new maneuver to Mechjeb and found that the GUI class was har dto understand so I split it into parts.

There is now a directory "Maneuver" with all operation GUI inside.
In order to implement a new maneuver one now simply inherits the Operation class and overrides the 3 abstract methods:
getName()
DoParameterGUI
MakeNodeImpl

The object contains the input values, which are not part of the maneuverplanner module anymore, MakeNodeImpl can throw an exception in case of error, in this case the text will be displayed in the GUI and no node will be added.
A TimeSelector class is added to factorize all the time related selections, it is simply extracted from the previous code.

Operation base class uses reflection in order to find all available Operations, which would even make it possible to deliver modules outside of MechJeb releases.

Secondly I have modified the selection mechanism with a menu-like system instead of the arrowselector, I find the new system much faster, even if it does not look as nice as a real dropdown.