You need to show small number of related commands.
Display related commands using buttons that are grouped together and similarly aligned and styled.
If you have more than a few related commands, you should consider other possibilities such as the Ribbon, Drop Down Button, or a toolbar. You might be able to get away with breaking them into more than one group, but be careful to not clutter the display such that the value of the grouping is lost.
It’s ideal to make all of the buttons look and feel the same—same size, same styling, use of icons, etc. One exception would be if you have a Primary Action you want to emphasize; in that case, you could make that one stand out and keep the others the same. Put them all together either horizontally or vertically, depending on what works best for your view, but try to keep them in one column or row.
If the commands all act on a specific object in the view, locate them close to that object if possible to indicate their relation to it. For objects (such as tables/grids/lists) that have variable length, put the button group to the right or above.
Lastly, if it is a common button group for which there is a convention, follow the convention to help users find them. For example, it is very common to put buttons that act on an entire form at the bottom right in a group. And on Windows, buttons that act on the window are located in the top right.
Infragistics has some tools that can jumpstart your efforts to implement this pattern. Broken down by technology, they are as follows.
Button Groups pattern is implemented in the following ASP.NET control: WebToolbar. Check out the samples browser to see it in action.
You can implement this pattern for other scenarios using WebImageButton controls to create button groups.
You can use the NetAdvantage for Windows Forms controls: WinToolbarsManager or WinButton to implement this pattern. If you download the NetAdvantage for Win Client bundle, you can find a sample in the WinForms sample browser called Ribbon With FormattedTextEditorto see it in action.
You can implement this pattern using the NetAdvantage for WPF XamRibbon Control. If you download the NetAdvantage for Win Client bundle, you can find a sample in the xamFeatureBrowser called Menu Tools to see it in action.
Creating button groups in JSF is simple. The core component h:commandButton creates the button, and groups can be created by wrapping the buttons in an h:panelGrid. Remember that the commanButton will be a submit button by default. Use it’s TYPE attribute to change that. See an example of button groups in JSF here.
The primary example for this pattern is a Firefox dialog box that has two button groups, one for the dialog’s actions and another that perform actions on one object, the home page text box.
http://quince.infragistics.com/1158
Amazon uses button groups on its recommendations page. They look and feel similar, though the primary action is highlighted and has an icon. They are located together, horizontally aligned, and work on the same object—the product they are next to. Also, because they are located in the same place in relation to the product in the list, there is added consistency while browsing the list.
http://quince.infragistics.com/11bl
iTunes uses several button groups. The back, play, and forward buttons act on the currently playing item and are located together at the top left. Users can use one of three buttons to toggle the current view. Using the button group at the bottom left, users can affect the playlists; note the proximity of the button group to what it acts on. Lastly, the standard window buttons are on the top right as usual for Microsoft Windows.
http://quince.infragistics.com/111m
Jennifer Tidwell, Designing Interfaces