NewCategoryDialog.java 1.8 KB

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