views:

107

answers:

1

Hi, What is a design pattern I can use for generating "context-sensitive" right click menus ? I have in mind a "Windows Explorer"-like application where a user can right click on a folder and get a list of menu items but right click on a drive and get a totally different list. What design pattern should I use ? Would the factory design pattern be appropiate for handling such a menu ? Regards, Seb

+2  A: 

You may want to check out the visitor pattern and the builder- and factory-pattern. In pseudocode you may do something like this:

OnRightClick(Item ClickedItem) {
    ContextMenu = MenuBuilder.Visit( ClickedItem );
    Choice = ContextMenu.Show();
}

The MenuBuilder would construct an appropriate context method based on the item it visits.

Space_C0wb0y