123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- package holeg.ui.view.dialog;
- import javax.swing.*;
- import holeg.preferences.ImagePreference;
- import holeg.ui.controller.Control;
- import holeg.ui.model.GuiSettings;
- import holeg.model.Model;
- import holeg.ui.view.canvas.Canvas;
- import holeg.ui.view.canvas.CanvasCollectionPanel;
- import holeg.ui.view.image.Import;
- import holeg.utility.math.vector.Vec2i;
- 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;
- 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(Control controller, JFrame parentFrame) {
- super((java.awt.Frame) null, true);
- this.controller = controller;
- // properties and stuff
- this.setIconImage(Import.loadImage(ImagePreference.Logo,30,30));
- this.setTitle("Set the Size of the View");
- setBounds(200, 100, 200, 100);
- setLocationRelativeTo(parentFrame);
- // MainPanel
- tFieldWidht.setText("" + GuiSettings.canvasSize.getX());
- tFieldHeight.setText("" + GuiSettings.canvasSize.getY());
- 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) {
- GuiSettings.canvasSize.setX(Integer.parseInt(tFieldWidht.getText()));
- GuiSettings.canvasSize.setY(Integer.parseInt(tFieldHeight.getText()));
- Vec2i actualCanvasSize = GuiSettings.canvasSize;
-
- Dimension preferedSize = new Dimension(actualCanvasSize.getX(), actualCanvasSize.getY());
- canvas.setPreferredSize(new Dimension(preferedSize));
- for (int i = 1; i < tabbedPane.getTabCount(); i++) {
- if (tabbedPane.getComponentAt(i) != null) {
- JScrollPane scollPane = (JScrollPane) tabbedPane.getComponentAt(i);
- Canvas groupNodeCanvas = ((Canvas) (scollPane)
- .getViewport().getComponent(0));
- groupNodeCanvas.setPreferredSize(new Dimension(preferedSize));
- groupNodeCanvas.repaint();
- }
- }
- canvas.revalidate();
- canvas.repaint();
-
- controller.getModel().getCanvas().getAllObjectsRecursive().forEach(obj -> {
- Vec2i position = obj.getPosition();
- position.clampX(0, actualCanvasSize.getX());
- position.clampY(0, actualCanvasSize.getY());
- });
- 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);
- this.setVisible(true);
- }
- }
|