File: /Users/shatabdi/Education/GitHub/se450_project/src/view/Gui.java

1     package view;
2     
3     import javax.swing.JButton;
4     import javax.swing.JOptionPane;
5     
6     import view.Enum.EventName;
7     import view.interfaces.IButtonListener;
8     import view.interfaces.IDialogChoice;
9     import view.interfaces.IGuiWindow;
10     import view.interfaces.IUiModule;
11     
12     public class Gui implements IUiModule {
13     
14         private final IGuiWindow iGuiWindow;
15     
16         public Gui(IGuiWindow gui) {
17             this.iGuiWindow = gui;
18         }
19     
20         @Override
21         public void addEvent(EventName eventName, IButtonListener callback) {
22             JButton selectedButton = iGuiWindow.getButton(eventName);
23             selectedButton.addActionListener(ActionEvent -> callback.run());
24         }
25     
26         @SuppressWarnings("unchecked")
27     	@Override
28         public <T> T getDialogChoiceResponse(IDialogChoice dialogChoiceSettings) {
29             Object selectedValue = JOptionPane.showInputDialog(null,
30                     dialogChoiceSettings.getDialogText(), dialogChoiceSettings.getDialogTitle(),
31                     JOptionPane.PLAIN_MESSAGE,
32                     null,
33                     dialogChoiceSettings.getDialogOptions(),
34                     dialogChoiceSettings.getCurrentSelection());
35             return selectedValue == null
36                     ? (T) dialogChoiceSettings.getCurrentSelection()
37                     : (T) selectedValue;
38         }
39     }
40