Average Density: 0.05
 1 package nl.tudelft.jpacman.ui;
 2 
 3 import java.util.Map;
 4 
 5 import javax.swing.JButton;
 6 import javax.swing.JFrame;
 7 import javax.swing.JPanel;
 8 
 9 /**
10  * A panel containing a button for every registered action.
11  *
12  * @author Jeroen Roosen 
13  */
14 class ButtonPanel extends JPanel {
15 
16     /**
17      * Default serialisation ID.
18      */
19     private static final long serialVersionUID = 1L;
20 
21     /**
22      * Create a new button panel with a button for every action.
23      * @param buttons The map of caption - action for each button.
24      * @param parent The parent frame, used to return window focus.
25      */
26     ButtonPanel(final Map<String, Action> buttons, final JFrame parent) {
27         super();
28         assert buttons != null;
29         assert parent != null;
30 
31         for (final String caption : buttons.keySet()) {
32             JButton button = new JButton(caption);
33             button.addActionListener(e -> {
34                 buttons.get(caption).doAction();
35                 parent.requestFocusInWindow();
36             });
37             add(button);
38         }
39     }
40 }