posted 17 years ago
I interpreted that as to being able to easily add new functions to the user interface.
So I put all buttons on a JToolBar with Actions to launch them, created a JMenuBar using those same actions, and used abstract base classes for the search dialog content placed as a decorator into the actual dialog itself (which is a framework relegating actions to the panel containing the actual fields) so it can be easily swapped out for another one that has more functionality (like allowing searching on other fields, or different search algorithms).
Different search algorithms are implemented at database level in easily extensible way.
Adding methods to for example modify records instead of booking them would require just a new dialog box and adding a toolbar button and/or menu option.
I'm even considering placing the menu and/or toolbar into classes external to the main window so that they can be swapped out, determining which class to actually load would then depend on a setting in the config file only, requiring no code changes.