CanvasResizePopUp.java 2.2 KB

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