From 24790d8d198f1c8a68f0030a968574e7be5faa46 Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Mon, 6 Apr 2015 16:27:49 +0200 Subject: [PATCH] Added area in Objects and made new panel for changing them. --- Applicatie/Panel.java | 1 + Applicatie/PropertiesPanel.java | 185 ++++++++++++++++++++++++++++++-- Listeners/Mouse.java | 2 +- Listeners/MouseMotion.java | 2 +- Listeners/MouseWheel.java | 2 +- Objects/Entrance.java | 2 - Objects/Food.java | 2 - Objects/Path.java | 2 - Objects/Stage.java | 2 - Objects/Toilet.java | 2 - Objects/Wall.java | 2 - 11 files changed, 182 insertions(+), 22 deletions(-) diff --git a/Applicatie/Panel.java b/Applicatie/Panel.java index db758a8..f96bcec 100644 --- a/Applicatie/Panel.java +++ b/Applicatie/Panel.java @@ -23,6 +23,7 @@ import javax.swing.JPanel; import Listeners.Mouse; import Listeners.MouseMotion; import Listeners.MouseWheel; +import Objects.DrawObject; import Objects.Entrance; import Objects.Food; import Objects.Path; diff --git a/Applicatie/PropertiesPanel.java b/Applicatie/PropertiesPanel.java index e1b154e..070e1bd 100644 --- a/Applicatie/PropertiesPanel.java +++ b/Applicatie/PropertiesPanel.java @@ -20,6 +20,8 @@ import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; +import Objects.DrawObject; + @SuppressWarnings("serial") public class PropertiesPanel extends JPanel { @@ -30,11 +32,16 @@ public class PropertiesPanel extends JPanel Dimension spacerDimension = new Dimension(200, 30); JLabel nameLabel; + JPanel areaPanel; JTextField locationXField; JTextField locationYField; JTextField scaleField; JTextField rotationField; + JTextField areaTopField; + JTextField areaBottomField; + JTextField areaLeftField; + JTextField areaRightField; PropertiesPanel() { @@ -75,9 +82,13 @@ public class PropertiesPanel extends JPanel buttonPanel.setMaximumSize(new Dimension(200, 40)); buttonPanel.add(buttonLabel); add(buttonPanel); + + //AREA PANEL: AVAILABLE FOR ACTIONLISTENER + areaPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + areaPanel.setVisible(false); - // DELETE - JPanel deletePanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + // BUTTONS ROW 1 + JPanel row1ButtonPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); JButton deleteButton = new JButton("Delete"); deleteButton.setFont(new Font("Segoe UI", Font.PLAIN, 20)); deleteButton.addActionListener(new ActionListener() @@ -87,10 +98,165 @@ public class PropertiesPanel extends JPanel p.removeObject(selectedObject); } }); - deletePanel.setPreferredSize(new Dimension(200, 50)); - deletePanel.setMaximumSize(new Dimension(200, 50)); - deletePanel.add(deleteButton); - add(deletePanel); + JButton areaButton = new JButton("Area"); + areaButton.setFont(new Font("Segoe UI", Font.PLAIN, 20)); + areaButton.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + areaPanel.setVisible(!areaPanel.isVisible()); + } + }); + row1ButtonPanel.setPreferredSize(new Dimension(200, 50)); + row1ButtonPanel.setMaximumSize(new Dimension(200, 50)); + row1ButtonPanel.add(deleteButton); + row1ButtonPanel.add(areaButton); + add(row1ButtonPanel); + + + //AREA PANEL + JLabel areaLabel = new JLabel("Area size"); + areaLabel.setFont(new Font("Segoe UI", Font.ITALIC, 20)); + areaPanel.setPreferredSize(new Dimension(200, 150)); + areaPanel.setMaximumSize(new Dimension(200, 250)); + areaPanel.add(areaLabel); + add(areaPanel); + { + JPanel areaTopPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + areaTopPanel.setPreferredSize(new Dimension(200, 50)); + areaPanel.add(areaTopPanel); + + JLabel areaTopLabel = new JLabel("Top"); + areaTopPanel.add(areaTopLabel); + areaTopField = new JTextField(); + areaTopField.setPreferredSize(new Dimension(140, 25)); + { + areaTopField.addKeyListener(new KeyListener() + { + + public void keyTyped(KeyEvent e){} + + public void keyReleased(KeyEvent e) + { + try + { + areaTopField.setBackground(Color.WHITE); + int top = Integer.parseInt(areaTopField.getText()); + selectedObject.setAreaTop(top); + p.update(); + } catch (NumberFormatException nfe) + { + areaTopField.setBackground(Color.RED); + } + } + + public void keyPressed(KeyEvent e){} + }); + } + areaTopPanel.add(areaTopField); + } + { + JPanel areaBottomPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + areaBottomPanel.setPreferredSize(new Dimension(200, 50)); + areaPanel.add(areaBottomPanel); + + JLabel areaBottomLabel = new JLabel("Bottom"); + areaBottomPanel.add(areaBottomLabel); + areaBottomField = new JTextField(); + areaBottomField.setPreferredSize(new Dimension(120, 25)); + { + areaBottomField.addKeyListener(new KeyListener() + { + + public void keyTyped(KeyEvent e){} + + public void keyReleased(KeyEvent e) + { + try + { + areaBottomField.setBackground(Color.WHITE); + int bottom = Integer.parseInt(areaBottomField.getText()); + selectedObject.setAreaBottom(bottom); + p.update(); + } catch (NumberFormatException nfe) + { + areaBottomField.setBackground(Color.RED); + } + } + + public void keyPressed(KeyEvent e){} + }); + } + areaBottomPanel.add(areaBottomField); + } + { + JPanel areaLeftPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + areaLeftPanel.setPreferredSize(new Dimension(200, 50)); + areaPanel.add(areaLeftPanel); + + JLabel areaLeftLabel = new JLabel("Left"); + areaLeftPanel.add(areaLeftLabel); + areaLeftField = new JTextField(); + areaLeftField.setPreferredSize(new Dimension(138, 25)); + { + areaLeftField.addKeyListener(new KeyListener() + { + + public void keyTyped(KeyEvent e){} + + public void keyReleased(KeyEvent e) + { + try + { + areaLeftField.setBackground(Color.WHITE); + int left = Integer.parseInt(areaLeftField.getText()); + selectedObject.setAreaLeft(left); + p.update(); + } catch (NumberFormatException nfe) + { + areaLeftField.setBackground(Color.RED); + } + } + + public void keyPressed(KeyEvent e){} + }); + } + areaLeftPanel.add(areaLeftField); + } + { + JPanel areaRightPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + areaRightPanel.setPreferredSize(new Dimension(200, 50)); + areaPanel.add(areaRightPanel); + + JLabel areaRightLabel = new JLabel("Right"); + areaRightPanel.add(areaRightLabel); + areaRightField = new JTextField(); + areaRightField.setPreferredSize(new Dimension(130, 25)); + { + areaRightField.addKeyListener(new KeyListener() + { + + public void keyTyped(KeyEvent e){} + + public void keyReleased(KeyEvent e) + { + try + { + areaRightField.setBackground(Color.WHITE); + int right = Integer.parseInt(areaRightField.getText()); + selectedObject.setAreaRight(right); + p.update(); + } catch (NumberFormatException nfe) + { + areaRightField.setBackground(Color.RED); + } + } + + public void keyPressed(KeyEvent e){} + }); + } + areaRightPanel.add(areaRightField); + } // SPACER add(Box.createRigidArea(spacerDimension)); @@ -343,7 +509,7 @@ public class PropertiesPanel extends JPanel } nameLabel.setText("No Selection"); - + areaPanel.setVisible(false); } private void fillFields() @@ -356,6 +522,11 @@ public class PropertiesPanel extends JPanel locationYField.setText(Math.round(selectedObject.getPosition().getY()) + ""); scaleField.setText((double) Math.round(selectedObject.getScale() * 10) / 10 + ""); rotationField.setText(Math.round(selectedObject.getRotation() % 360) + ""); + + areaTopField.setText(selectedObject.getAreaTop() + ""); + areaBottomField.setText(selectedObject.getAreaBottom() + ""); + areaLeftField.setText(selectedObject.getAreaLeft() + ""); + areaRightField.setText(selectedObject.getAreaRight() + ""); } diff --git a/Listeners/Mouse.java b/Listeners/Mouse.java index 0ae68a6..c2e87e6 100644 --- a/Listeners/Mouse.java +++ b/Listeners/Mouse.java @@ -6,8 +6,8 @@ import java.awt.event.MouseEvent; import java.awt.geom.Point2D; import java.awt.image.BufferedImage; -import Applicatie.DrawObject; import Applicatie.Panel; +import Objects.DrawObject; import Objects.Stage; public class Mouse extends MouseAdapter diff --git a/Listeners/MouseMotion.java b/Listeners/MouseMotion.java index a5922c3..82184a0 100644 --- a/Listeners/MouseMotion.java +++ b/Listeners/MouseMotion.java @@ -5,8 +5,8 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import java.awt.geom.Point2D; -import Applicatie.DrawObject; import Applicatie.Panel; +import Objects.DrawObject; public class MouseMotion extends MouseMotionAdapter { diff --git a/Listeners/MouseWheel.java b/Listeners/MouseWheel.java index c841884..4f6fcea 100644 --- a/Listeners/MouseWheel.java +++ b/Listeners/MouseWheel.java @@ -4,8 +4,8 @@ import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelListener; import java.awt.geom.Point2D; -import Applicatie.DrawObject; import Applicatie.Panel; +import Objects.DrawObject; public class MouseWheel implements MouseWheelListener { diff --git a/Objects/Entrance.java b/Objects/Entrance.java index 69a7033..eab28db 100644 --- a/Objects/Entrance.java +++ b/Objects/Entrance.java @@ -2,8 +2,6 @@ package Objects; import java.awt.geom.Point2D; -import Applicatie.DrawObject; - public class Entrance extends DrawObject { diff --git a/Objects/Food.java b/Objects/Food.java index cdd5028..d6bdb65 100644 --- a/Objects/Food.java +++ b/Objects/Food.java @@ -1,8 +1,6 @@ package Objects; import java.awt.geom.Point2D; -import Applicatie.DrawObject; - public class Food extends DrawObject { diff --git a/Objects/Path.java b/Objects/Path.java index 1cde2ff..0cf64da 100644 --- a/Objects/Path.java +++ b/Objects/Path.java @@ -2,8 +2,6 @@ package Objects; import java.awt.geom.Point2D; -import Applicatie.DrawObject; - public class Path extends DrawObject { diff --git a/Objects/Stage.java b/Objects/Stage.java index 9827adc..2c3b82c 100644 --- a/Objects/Stage.java +++ b/Objects/Stage.java @@ -2,8 +2,6 @@ package Objects; import java.awt.geom.Point2D; -import Applicatie.DrawObject; - public class Stage extends DrawObject { public Stage(Point2D position) diff --git a/Objects/Toilet.java b/Objects/Toilet.java index f0a0aa8..3a8708a 100644 --- a/Objects/Toilet.java +++ b/Objects/Toilet.java @@ -2,8 +2,6 @@ package Objects; import java.awt.geom.Point2D; -import Applicatie.DrawObject; - public class Toilet extends DrawObject { diff --git a/Objects/Wall.java b/Objects/Wall.java index 6c213d4..e79b3c1 100644 --- a/Objects/Wall.java +++ b/Objects/Wall.java @@ -2,8 +2,6 @@ package Objects; import java.awt.geom.Point2D; -import Applicatie.DrawObject; - public class Wall extends DrawObject {