浏览代码

added labels to canvas resize and it updates immediately

Kevin Trometer 7 年之前
父节点
当前提交
fed04a2be7
共有 2 个文件被更改,包括 111 次插入10 次删除
  1. 109 0
      src/ui/view/CanvasResizePopUp.java
  2. 2 10
      src/ui/view/GUI.java

+ 109 - 0
src/ui/view/CanvasResizePopUp.java

@@ -0,0 +1,109 @@
+package ui.view;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Image;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTabbedPane;
+import javax.swing.JTextField;
+
+import ui.controller.Control;
+import ui.model.Model;
+
+public class CanvasResizePopUp extends JDialog {
+
+	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();
+	private final JButton btnOk = new JButton("OK");
+	private final JButton btnCancel = new JButton("Cancel");
+
+	JTabbedPane tabbedPane;
+	JTabbedPane tabbedPane2;
+	Model model;
+	Control controller;
+	MyCanvas canvas;
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	public CanvasResizePopUp(Model model, Control controller, MyCanvas canvas, JTabbedPane tabbedPane,
+			JTabbedPane tabbedPane2) {
+		super((java.awt.Frame) null, true);
+		this.tabbedPane = tabbedPane;
+		this.tabbedPane2 = tabbedPane2;
+		this.model = model;
+		this.controller = controller;
+		this.canvas = canvas;
+
+		// properties and stuff
+		this.setIconImage(new ImageIcon(this.getClass().getResource("/Images/Dummy_House.png")).getImage()
+				.getScaledInstance(30, 30, Image.SCALE_SMOOTH));
+		this.setTitle("Set the Size of the View");
+		setBounds(200, 100, 200, 100);
+
+		// MainPanel
+		tFieldWidht.setText("" + model.getCanvasX());
+		tFieldHeight.setText("" + model.getCanvasY());
+		mainPanel.add(lblWidth);
+		mainPanel.add(tFieldHeight);
+		mainPanel.add(lblHeight);
+		mainPanel.add(tFieldWidht);
+		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()));
+				canvas.setPreferredSize(new Dimension(model.getCanvasX(), model.getCanvasY()));
+				for (int i = 4; i < tabbedPane.getTabCount(); i++) {
+					if (tabbedPane.getComponentAt(i) != null) {
+						UpperNodeCanvas unc = ((UpperNodeCanvas) ((JScrollPane) tabbedPane.getComponentAt(i))
+								.getViewport().getComponent(0));
+						unc.setPreferredSize(new Dimension(model.getCanvasX(), model.getCanvasY()));
+						unc.repaint();
+					}
+				}
+				if (tabbedPane2 != null && tabbedPane2.getSelectedIndex() >= 4) {
+					UpperNodeCanvas unc = ((UpperNodeCanvas) ((JScrollPane) tabbedPane2.getSelectedComponent())
+							.getViewport().getComponent(0));
+					unc.setPreferredSize(new Dimension(model.getCanvasX(), model.getCanvasY()));
+					unc.repaint();
+				}
+				canvas.repaint();
+				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);
+	}
+
+}

+ 2 - 10
src/ui/view/GUI.java

@@ -704,16 +704,8 @@ public class GUI<E> implements CategoryListener {
 		mntmCanvasSize.addActionListener(new ActionListener() {
 			@Override
 			public void actionPerformed(ActionEvent e) {
-				JPanel myPanel = new JPanel();
-				JTextField field1 = new JTextField("" + canvas.getWidth() + "");
-				JTextField field2 = new JTextField("" + canvas.getHeight() + "");
-				myPanel.add(field1);
-				myPanel.add(field2);
-				JOptionPane.showMessageDialog(null, myPanel);
-				controller.setCanvasX(Integer.parseInt(field1.getText()));
-				controller.setCanvasY(Integer.parseInt(field2.getText()));
-				canvas.setPreferredSize(new Dimension(model.getCanvasX(), model.getCanvasY()));
-				canvas.repaint();
+				CanvasResizePopUp popUp = new CanvasResizePopUp(model, controller, canvas, tabbedPane, tabbedPane2);
+				popUp.setVisible(true);
 			}
 		});