CanvasResizePopUp.java 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. public class CanvasResizePopUp extends JDialog {
  16. private final JTextField widthTextField = new JTextField();
  17. private final JTextField heightTextField = new JTextField();
  18. Control controller;
  19. public CanvasResizePopUp(Control controller, Gui gui) {
  20. super(gui, true);
  21. this.controller = controller;
  22. // properties and stuff
  23. this.setIconImage(Import.loadImage(ImagePreference.Logo, 30, 30));
  24. this.setTitle("Set the Size of the View");
  25. setBounds(200, 100, 200, 100);
  26. setLocationRelativeTo(gui);
  27. // MainPanel
  28. widthTextField.setText("" + GuiSettings.canvasSize.getX());
  29. heightTextField.setText("" + GuiSettings.canvasSize.getY());
  30. JPanel mainPanel = new JPanel();
  31. JLabel lblWidth = new JLabel("Width:");
  32. mainPanel.add(lblWidth);
  33. mainPanel.add(widthTextField);
  34. JLabel lblHeight = new JLabel("Height:");
  35. mainPanel.add(lblHeight);
  36. mainPanel.add(heightTextField);
  37. mainPanel.setBackground(Color.WHITE);
  38. // Button Panel
  39. JButton btnOk = new JButton("OK");
  40. btnOk.addActionListener(e -> {
  41. GuiSettings.canvasSize.setX(Integer.parseInt(widthTextField.getText()));
  42. GuiSettings.canvasSize.setY(Integer.parseInt(heightTextField.getText()));
  43. gui.canvasCollection.resetCanvasSizes();
  44. controller.getModel().getCanvas().getAllObjectsRecursive().forEach(obj -> {
  45. obj.setPosition(Canvas.boundsToCanvas(obj.getPosition()));
  46. });
  47. controller.OnCanvasUpdate.broadcast();
  48. dispose();
  49. });
  50. JButton btnCancel = new JButton("Cancel");
  51. btnCancel.addActionListener(clicked -> dispose());
  52. JPanel buttonPanel = new JPanel();
  53. buttonPanel.add(btnOk);
  54. buttonPanel.add(btnCancel);
  55. buttonPanel.setBackground(Color.WHITE);
  56. // Add to ContentPane
  57. getContentPane().add(mainPanel, BorderLayout.CENTER);
  58. getContentPane().add(buttonPanel, BorderLayout.SOUTH);
  59. this.setVisible(true);
  60. }
  61. }