NewCategoryDialog.java 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package holeg.ui.view.dialog;
  2. import holeg.ui.controller.Control;
  3. import java.awt.BorderLayout;
  4. import java.awt.Dimension;
  5. import java.awt.FlowLayout;
  6. import java.awt.GridLayout;
  7. import javax.swing.JButton;
  8. import javax.swing.JDialog;
  9. import javax.swing.JFrame;
  10. import javax.swing.JLabel;
  11. import javax.swing.JPanel;
  12. import javax.swing.JTextField;
  13. public class NewCategoryDialog extends JDialog {
  14. private final JPanel contentPanel = new JPanel(new BorderLayout());
  15. private final JPanel mainPanel = new JPanel();
  16. private final JPanel buttonPanel = new JPanel();
  17. private final JLabel categoryLabel = new JLabel("Category:");
  18. private final JTextField nameTextField = new JTextField("Name");
  19. private final JButton okayButton = new JButton("Okay");
  20. private final JButton cancelButton = new JButton("Cancel");
  21. private final Control control;
  22. public NewCategoryDialog(Control control, JFrame parentFrame) {
  23. super(parentFrame);
  24. this.control = control;
  25. init();
  26. this.setVisible(true);
  27. this.pack();
  28. setLocationRelativeTo(parentFrame);
  29. }
  30. private void init() {
  31. this.setTitle("Create new category");
  32. initLayout();
  33. initButtons();
  34. }
  35. private void initLayout() {
  36. buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
  37. contentPanel.setPreferredSize(new Dimension(200, 60));
  38. mainPanel.setLayout(new GridLayout(1, 2));
  39. mainPanel.add(categoryLabel);
  40. mainPanel.add(nameTextField);
  41. okayButton.setDefaultCapable(true);
  42. buttonPanel.add(okayButton);
  43. buttonPanel.add(cancelButton);
  44. contentPanel.add(mainPanel);
  45. contentPanel.add(buttonPanel, BorderLayout.PAGE_END);
  46. this.setContentPane(contentPanel);
  47. }
  48. private void initButtons() {
  49. okayButton.addActionListener(clicked -> {
  50. control.createCategoryWithName(nameTextField.getText());
  51. dispose();
  52. });
  53. cancelButton.addActionListener(clicked -> dispose());
  54. }
  55. }