[[BackLinksMenu]] [[TicketQuery(summary=BASE_MENUS_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]] = Analysis = == Overview == Create a menu library that allows plugins to add menus and menu items. The library should have an extension point that allows a plugin to register itself and be queried for menus and menu items. == Task requirements == * Create a module for menubars, menus and menu items * Allow for extension point so plugins can register menu items in menus * Menubars should sort menus by the sort key * Refactor menu creation code in org.sophie2.main.view.menus [wiki:APP_BASIC_MENUS_R0] * Document the new library == Task result == The result shall be code and unit tests == Implementation idea == * Menus might have a sort key that allows menus to be sorted within a menu bar * Menu items might have a sort key that allows menu items to be sorted within a menu bar * The sort key could be a simple string. This will allow us to define a protocol for sorting in an initial pass of the code, and make the menu organization more sophisticated later. == Related == * [wiki:APP_BASIC_MENUS_R0] == How to demo == * Show the documentation for the menu library * Show how to create a menu, menu item and register them through the extension point = Design = = Implementation = ^(Implementation results should be described and linked here (from the wiki or the repository))^ = Testing = = Comments = ^(Write comments for this or later revisions here.)