12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package ui.view.dialog;
- import ui.controller.Control;
- import ui.model.Model;
- import ui.view.canvas.Canvas;
- import ui.view.canvas.GroupNodeCanvas;
- import utility.ImageImport;
- import utility.Vector2Int;
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- public class CanvasResizePopUp extends JDialog {
- private final JButton btnOk = new JButton("OK");
- private final JButton btnCancel = new JButton("Cancel");
- JTabbedPane tabbedPane;
- Model model;
- Control controller;
- Canvas canvas;
- private JPanel mainPanel = new JPanel();
- private JTextField tFieldWidht = new JTextField();
- private JTextField tFieldHeight = new JTextField();
- private JLabel lblWidth = new JLabel("Width:");
- private JLabel lblHeight = new JLabel("Height:");
- private JPanel buttonPanel = new JPanel();
- public CanvasResizePopUp(Model model, Control controller, Canvas canvas, JTabbedPane tabbedPane, JFrame parentFrame) {
- super((java.awt.Frame) null, true);
- this.tabbedPane = tabbedPane;
- this.model = model;
- this.controller = controller;
- this.canvas = canvas;
- // properties and stuff
- this.setIconImage(ImageImport.loadImage("/Images/Holeg.png",30,30));
- this.setTitle("Set the Size of the View");
- setBounds(200, 100, 200, 100);
- setLocationRelativeTo(parentFrame);
- // MainPanel
- tFieldWidht.setText("" + model.getCanvasX());
- tFieldHeight.setText("" + model.getCanvasY());
- mainPanel.add(lblWidth);
- mainPanel.add(tFieldWidht);
- mainPanel.add(lblHeight);
- mainPanel.add(tFieldHeight);
- mainPanel.setBackground(Color.WHITE);
- // Button Panel
- btnOk.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- controller.setCanvasX(Integer.parseInt(tFieldWidht.getText()));
- controller.setCanvasY(Integer.parseInt(tFieldHeight.getText()));
- int width = model.getCanvasX();
- int height = model.getCanvasY();
- Dimension preferedSize = new Dimension(width, height);
- canvas.setPreferredSize(new Dimension(preferedSize));
- for (int i = 1; i < tabbedPane.getTabCount(); i++) {
- if (tabbedPane.getComponentAt(i) != null) {
- JScrollPane scollPane = (JScrollPane) tabbedPane.getComponentAt(i);
- GroupNodeCanvas groupNodeCanvas = ((GroupNodeCanvas) (scollPane)
- .getViewport().getComponent(0));
- groupNodeCanvas.setPreferredSize(new Dimension(preferedSize));
- groupNodeCanvas.repaint();
- }
- }
- canvas.revalidate();
- canvas.repaint();
-
- controller.getModel().getAllAbstractObjectsOnCanvas().stream().forEach(obj -> {
- Vector2Int position = obj.getPosition();
- position.clampX(0, width);
- position.clampY(0, height);
- });
- controller.updateCanvas();
- dispose();
- }
- });
- btnCancel.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- dispose();
- }
- });
- buttonPanel.add(btnOk);
- buttonPanel.add(btnCancel);
- buttonPanel.setBackground(Color.WHITE);
- // Add to ContentPane
- getContentPane().add(mainPanel, BorderLayout.CENTER);
- getContentPane().add(buttonPanel, BorderLayout.SOUTH);
- }
- }
|