[[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.)