CanvasResizePopUp.java 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package holeg.ui.view.dialog;
  2. import holeg.preferences.ImagePreference;
  3. import holeg.ui.controller.Control;
  4. import holeg.ui.model.GuiSettings;
  5. import holeg.ui.view.canvas.Canvas;
  6. import holeg.ui.view.image.Import;
  7. import holeg.ui.view.main.Gui;
  8. import java.awt.BorderLayout;
  9. import java.awt.Color;
  10. import javax.swing.JButton;
  11. import javax.swing.JDialog;
  12. import javax.swing.JLabel;
  13. import javax.swing.JPanel;
  14. import javax.swing.JTextField;
  15. /**
  16. * A Dialog for changing the canvas size.
  17. */
  18. public class CanvasResizePopUp extends JDialog {
  19. private final JTextField widthTextField = new JTextField();
  20. private final JTextField heightTextField = new JTextField();
  21. Control controller;
  22. public CanvasResizePopUp(Control controller, Gui gui) {
  23. super(gui, true);
  24. this.controller = controller;
  25. // properties and stuff
  26. this.setIconImage(Import.loadImage(ImagePreference.Logo, 30, 30));
  27. this.setTitle("Set the Size of the View");
  28. setBounds(200, 100, 200, 100);
  29. setLocationRelativeTo(gui);
  30. // MainPanel
  31. widthTextField.setText("" + GuiSettings.canvasSize.getX());
  32. heightTextField.setText("" + GuiSettings.canvasSize.getY());
  33. JPanel mainPanel = new JPanel();
  34. JLabel lblWidth = new JLabel("Width:");
  35. mainPanel.add(lblWidth);
  36. mainPanel.add(widthTextField);
  37. JLabel lblHeight = new JLabel("Height:");
  38. mainPanel.add(lblHeight);
  39. mainPanel.add(heightTextField);
  40. mainPanel.setBackground(Color.WHITE);
  41. // Button Panel
  42. JButton btnOk = new JButton("OK");
  43. btnOk.addActionListener(e -> {
  44. GuiSettings.canvasSize.setX(Integer.parseInt(widthTextField.getText()));
  45. GuiSettings.canvasSize.setY(Integer.parseInt(heightTextField.getText()));
  46. gui.canvasCollection.resetCanvasSizes();
  47. controller.getModel().getCanvas().getAllObjectsRecursive().forEach(obj -> {
  48. obj.setPosition(Canvas.boundsToCanvas(obj.getPosition()));
  49. });
  50. controller.OnCanvasUpdate.broadcast();
  51. dispose();
  52. });
  53. JButton btnCancel = new JButton("Cancel");
  54. btnCancel.addActionListener(clicked -> dispose());
  55. JPanel buttonPanel = new JPanel();
  56. buttonPanel.add(btnOk);
  57. buttonPanel.add(btnCancel);
  58. buttonPanel.setBackground(Color.WHITE);
  59. // Add to ContentPane
  60. getContentPane().add(mainPanel, BorderLayout.CENTER);
  61. getContentPane().add(buttonPanel, BorderLayout.SOUTH);
  62. this.setVisible(true);
  63. }
  64. }