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