diff --git a/Applicatie/DrawObject.java b/Applicatie/DrawObject.java index 5dde355..924c036 100644 --- a/Applicatie/DrawObject.java +++ b/Applicatie/DrawObject.java @@ -129,6 +129,7 @@ public abstract class DrawObject try { return getTransform().inverseTransform(point, null); + } catch (NoninvertibleTransformException e) { e.printStackTrace(); @@ -166,6 +167,7 @@ public abstract class DrawObject return true; else return false; + } if (point.getX() > chosenCorner.getX() && point.getX() < chosenCorner.getX() + chosenCorner.getWidth() && point.getY() > chosenCorner.getY() && point.getY() < chosenCorner.getY() + chosenCorner.getHeight()) return true; diff --git a/Applicatie/MenuBar.java b/Applicatie/MenuBar.java index 0740a8b..ea7d268 100644 --- a/Applicatie/MenuBar.java +++ b/Applicatie/MenuBar.java @@ -1,4 +1,5 @@ package Applicatie; + import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -7,24 +8,26 @@ import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; +public class MenuBar extends JMenuBar +{ -public class MenuBar extends JMenuBar { - public MenuBar(Window w) { super(); - + JMenu file = new JMenu("File"); - - JMenuItem exit = new JMenuItem("Exit"); - exit.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - System.exit(0); + + JMenuItem exit = new JMenuItem("Exit"); + exit.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + System.exit(0); } }); - + file.add(exit); - + add(file); } } diff --git a/Applicatie/Panel.java b/Applicatie/Panel.java index ddf9fba..d7d0940 100644 --- a/Applicatie/Panel.java +++ b/Applicatie/Panel.java @@ -114,6 +114,7 @@ public class Panel extends JPanel { switch (index) { + case 0: return new Stage(null); case 1: @@ -142,10 +143,6 @@ public class Panel extends JPanel Graphics2D g2 = (Graphics2D) g; g2.setClip(new Rectangle2D.Double(0, 0, getWidth(), 300)); - // g2.fill(new Ellipse2D.Double(0,0,300,300)); - - // g2.drawImage(podiumImage, 0, 0, null); - g2.drawLine(0, 150, getWidth(), 150); for (BufferedImage image : panelInfo) { @@ -164,7 +161,6 @@ public class Panel extends JPanel BasicStroke stroke = new BasicStroke(10); g2.setStroke(stroke); - for (DrawObject o : objects) { o.draw(g2); @@ -178,7 +174,6 @@ public class Panel extends JPanel { AffineTransform tx = new AffineTransform(); tx.translate(-cameraPoint.getX() + getWidth() / 2, -cameraPoint.getY() + getHeight() / 2); - tx.scale(cameraScale, cameraScale); return tx; } diff --git a/Applicatie/PropertiesPanel.java b/Applicatie/PropertiesPanel.java index 3c8ad98..e1b154e 100644 --- a/Applicatie/PropertiesPanel.java +++ b/Applicatie/PropertiesPanel.java @@ -21,7 +21,8 @@ import javax.swing.JPanel; import javax.swing.JTextField; @SuppressWarnings("serial") -public class PropertiesPanel extends JPanel { +public class PropertiesPanel extends JPanel +{ DrawObject selectedObject = null; Panel p = null; @@ -35,7 +36,8 @@ public class PropertiesPanel extends JPanel { JTextField scaleField; JTextField rotationField; - PropertiesPanel() { + PropertiesPanel() + { super(); BoxLayout box = new BoxLayout(this, BoxLayout.PAGE_AXIS); setLayout(box); @@ -78,8 +80,10 @@ public class PropertiesPanel extends JPanel { JPanel deletePanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); JButton deleteButton = new JButton("Delete"); deleteButton.setFont(new Font("Segoe UI", Font.PLAIN, 20)); - deleteButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { + deleteButton.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { p.removeObject(selectedObject); } }); @@ -109,27 +113,30 @@ public class PropertiesPanel extends JPanel { locationXField = new JTextField(); locationXField.setPreferredSize(new Dimension(150, 25)); { - locationXField.addKeyListener(new KeyListener() { + locationXField.addKeyListener(new KeyListener() + { - public void keyTyped(KeyEvent e) { + public void keyTyped(KeyEvent e) + { } - public void keyReleased(KeyEvent e) { - try { + public void keyReleased(KeyEvent e) + { + try + { locationXField.setBackground(Color.WHITE); - double xpos = Double.parseDouble(locationXField - .getText()); - selectedObject.setPosition(new Point2D.Double(xpos, - selectedObject.getPosition().getY())); + double xpos = Double.parseDouble(locationXField.getText()); + selectedObject.setPosition(new Point2D.Double(xpos, selectedObject.getPosition().getY())); p.update(); - } catch (NumberFormatException nfe) { + } catch (NumberFormatException nfe) + { locationXField.setBackground(Color.RED); } } - public void keyPressed(KeyEvent e) { + public void keyPressed(KeyEvent e) + { } - }); } locationXPanel.add(locationXField); @@ -144,28 +151,32 @@ public class PropertiesPanel extends JPanel { locationYField = new JTextField(); locationYField.setPreferredSize(new Dimension(150, 25)); { - locationYField.addKeyListener(new KeyListener() { + locationYField.addKeyListener(new KeyListener() + { - public void keyTyped(KeyEvent e) { - try { + public void keyTyped(KeyEvent e) + { + } + + public void keyReleased(KeyEvent e) + { + try + { locationYField.setBackground(Color.WHITE); - double ypos = Double.parseDouble(locationYField - .getText()); - selectedObject.setPosition(new Point2D.Double( - selectedObject.getPosition().getX(), ypos)); + double ypos = Double.parseDouble(locationYField.getText()); + selectedObject.setPosition(new Point2D.Double(selectedObject.getPosition().getX(), ypos)); ; p.update(); - } catch (NumberFormatException nfe) { + } catch (NumberFormatException nfe) + { locationYField.setBackground(Color.RED); } } - public void keyReleased(KeyEvent e) { - } - - public void keyPressed(KeyEvent e) { + public void keyPressed(KeyEvent e) + { } }); } @@ -190,26 +201,29 @@ public class PropertiesPanel extends JPanel { scaleField = new JTextField(); scaleField.setPreferredSize(new Dimension(150, 25)); { - scaleField.addKeyListener(new KeyListener() { + scaleField.addKeyListener(new KeyListener() + { - public void keyTyped(KeyEvent e) { + public void keyTyped(KeyEvent e) + { + } - try { + public void keyReleased(KeyEvent e) + { + try + { scaleField.setBackground(Color.WHITE); - double scale = Double.parseDouble(scaleField - .getText()); + double scale = Double.parseDouble(scaleField.getText()); selectedObject.setScale(scale); p.update(); - } catch (NumberFormatException nfe) { + } catch (NumberFormatException nfe) + { scaleField.setBackground(Color.RED); } - } - public void keyReleased(KeyEvent e) { - } - - public void keyPressed(KeyEvent e) { + public void keyPressed(KeyEvent e) + { } }); } @@ -234,27 +248,30 @@ public class PropertiesPanel extends JPanel { rotationField = new JTextField(); rotationField.setPreferredSize(new Dimension(150, 25)); { - rotationField.addKeyListener(new KeyListener() { + rotationField.addKeyListener(new KeyListener() + { - public void keyTyped(KeyEvent e) { + public void keyTyped(KeyEvent e) + { + } - try { + public void keyReleased(KeyEvent e) + { + try + { rotationField.setBackground(Color.WHITE); - int rotation = Integer.parseInt(rotationField - .getText()) % 360; + int rotation = Integer.parseInt(rotationField.getText()) % 360; rotationField.setText(rotation + ""); selectedObject.setRotation(rotation); p.update(); - } catch (NumberFormatException nfe) { + } catch (NumberFormatException nfe) + { rotationField.setBackground(Color.RED); } - } - public void keyReleased(KeyEvent e) { - } - - public void keyPressed(KeyEvent e) { + public void keyPressed(KeyEvent e) + { } }); } @@ -264,53 +281,63 @@ public class PropertiesPanel extends JPanel { // SPACER add(Box.createRigidArea(spacerDimension)); - // EXAMPLE - JPanel examplePanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); - JLabel exampleLabel = new JLabel("Example"); - exampleLabel.setFont(new Font("Segoe UI", Font.ITALIC, 20)); - examplePanel.setPreferredSize(new Dimension(200, 100)); - examplePanel.setMaximumSize(new Dimension(200, 100)); - examplePanel.add(exampleLabel); - add(examplePanel); + // AGENDA + JPanel agendaPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + JLabel agendaLabel = new JLabel("Agenda"); + agendaLabel.setFont(new Font("Segoe UI", Font.ITALIC, 20)); + agendaPanel.setPreferredSize(new Dimension(200, 100)); + agendaPanel.setMaximumSize(new Dimension(200, 100)); + agendaPanel.add(agendaLabel); + add(agendaPanel); enableComponents(this, false); } - public void setSelected(DrawObject drOb) { + public void setSelected(DrawObject drOb) + { selectedObject = drOb; fillFields(); enableComponents(this, true); } - public void clearSelected() { + public void clearSelected() + { enableComponents(this, false); clearFields(this); selectedObject = null; } - public void update() { + public void update() + { fillFields(); } - private void enableComponents(Container container, boolean enable) { + private void enableComponents(Container container, boolean enable) + { Component[] components = container.getComponents(); - for (Component component : components) { + for (Component component : components) + { component.setEnabled(enable); - if (component instanceof Container) { + if (component instanceof Container) + { enableComponents((Container) component, enable); } } } - private void clearFields(Container container) { + private void clearFields(Container container) + { Component[] components = container.getComponents(); - for (Component component : components) { - if (component instanceof JTextField) { + for (Component component : components) + { + if (component instanceof JTextField) + { ((JTextField) component).setText(""); ((JTextField) component).setBackground(Color.WHITE); } - if (component instanceof Container) { + if (component instanceof Container) + { clearFields((Container) component); } } @@ -319,25 +346,23 @@ public class PropertiesPanel extends JPanel { } - private void fillFields() { - if (selectedObject != null) { + private void fillFields() + { + if (selectedObject != null) + { nameLabel.setText(selectedObject.getName()); - locationXField.setText(Math.round(selectedObject.getPosition() - .getX()) + ""); - locationYField.setText(Math.round(selectedObject.getPosition() - .getY()) + ""); - scaleField - .setText((double) Math.round(selectedObject.getScale() * 10) - / 10 + ""); - rotationField - .setText(Math.round(selectedObject.getRotation() % 360) - + ""); + locationXField.setText(Math.round(selectedObject.getPosition().getX()) + ""); + locationYField.setText(Math.round(selectedObject.getPosition().getY()) + ""); + scaleField.setText((double) Math.round(selectedObject.getScale() * 10) / 10 + ""); + rotationField.setText(Math.round(selectedObject.getRotation() % 360) + ""); + } } - public void setPanel(Panel p) { + public void setPanel(Panel p) + { this.p = p; } } diff --git a/Applicatie/Window.java b/Applicatie/Window.java index 03bc644..fda7174 100644 --- a/Applicatie/Window.java +++ b/Applicatie/Window.java @@ -7,7 +7,8 @@ import javax.swing.JPanel; import Listeners.Keyboard; -public class Window extends JFrame { +public class Window extends JFrame +{ private static final long serialVersionUID = -1324363758675184283L; Window() { @@ -24,7 +25,6 @@ public class Window extends JFrame { contentPanel.add(pp, BorderLayout.EAST); addKeyListener(new Keyboard(fp)); - setContentPane(contentPanel); // END CONTENT PANELS diff --git a/Listeners/Mouse.java b/Listeners/Mouse.java index 31ffd23..51e9752 100644 --- a/Listeners/Mouse.java +++ b/Listeners/Mouse.java @@ -12,31 +12,35 @@ import Applicatie.Panel; import Objects.Stage; -public class Mouse extends MouseAdapter { +public class Mouse extends MouseAdapter +{ private Panel panel; private DrawObject selectedObject; - public Mouse(Panel panel) { + public Mouse(Panel panel) + { this.panel = panel; selectedObject = null; } - public void mousePressed(MouseEvent e) { + public void mousePressed(MouseEvent e) + { Point2D clickPoint = panel.getClickPoint(e.getPoint()); panel.setLastClickPosition(clickPoint); panel.setLastMousePosition(e.getPoint()); - if (e.getY() < 150) { + if (e.getY() < 150) + { // if(e.getX() < 51) //51 = width podium image // panel.setDragObject(new Podium(clickPoint)); // else // panel.setDragObject(new Toilet(clickPoint)); int i = 0; int last = 0; - for (BufferedImage image : panel.getPanelInfo()) { - if (e.getX() >= panel.getScrollfactor() - && e.getX() < last + image.getWidth() - + panel.getScrollfactor()) { + for (BufferedImage image : panel.getPanelInfo()) + { + if (e.getX() >= panel.getScrollfactor() && e.getX() < last + image.getWidth() + panel.getScrollfactor()) + { DrawObject tempDrawObj = panel.createNewDrawObject(i); tempDrawObj.setPosition(clickPoint); panel.setDragObject(tempDrawObj); @@ -46,29 +50,46 @@ public class Mouse extends MouseAdapter { last += image.getWidth(); } - if (panel.getDragObject() != null) { + if (panel.getDragObject() != null) + { panel.add(panel.getDragObject()); } - } else { - for (DrawObject o : panel.getObjects()) { - if (o.contains(clickPoint)) { - if (o == selectedObject) { + } + else + { + for (DrawObject o : panel.getObjects()) + { + if (o.contains(clickPoint)) + { + if (o == selectedObject) + { boolean upperLeft = o.containsCorner(clickPoint, 0); boolean upperRight = o.containsCorner(clickPoint, 1); boolean bottomLeft = o.containsCorner(clickPoint, 2); boolean bottomRight = o.containsCorner(clickPoint, 3); boolean rotate = o.containsCorner(clickPoint, 4); - if (upperLeft) { + if (upperLeft) + { panel.setClickedOption("upperLeft"); - } else if (upperRight) { + } + else if (upperRight) + { panel.setClickedOption("upperRight"); - } else if (bottomLeft) { + } + else if (bottomLeft) + { panel.setClickedOption("bottomLeft"); - } else if (bottomRight) { + } + else if (bottomRight) + { panel.setClickedOption("bottomRight"); - } else if (rotate) { + } + else if (rotate) + { panel.setClickedOption("rotate"); - } else { + } + else + { panel.setClickedOption("drag"); } } @@ -84,7 +105,8 @@ public class Mouse extends MouseAdapter { } } } - if (panel.getDragObject() == null && selectedObject != null) { + if (panel.getDragObject() == null && selectedObject != null) + { selectedObject.setSelected(false); panel.getPP().clearSelected(); selectedObject = null; @@ -92,9 +114,10 @@ public class Mouse extends MouseAdapter { panel.repaint(); } - public void mouseReleased(MouseEvent e) { + public void mouseReleased(MouseEvent e) + { panel.setDragObject(null); panel.setClickedOption("drag"); panel.repaint(); } -} \ No newline at end of file +} diff --git a/Listeners/MouseMotion.java b/Listeners/MouseMotion.java index af72fc4..3c42596 100644 --- a/Listeners/MouseMotion.java +++ b/Listeners/MouseMotion.java @@ -73,6 +73,7 @@ public class MouseMotion extends MouseMotionAdapter { panel.setCameraPoint(new Point2D.Double(panel.getCameraPoint().getX() + (panel.getLastMousePosition().getX() - e.getX()), panel.getCameraPoint().getY() + (panel.getLastMousePosition().getY() - e.getY()))); } + panel.repaint(); panel.setLastMousePosition(e.getPoint()); panel.setLastClickPosition(clickPoint); @@ -82,7 +83,7 @@ public class MouseMotion extends MouseMotionAdapter private void resizeBigger() { double scale = panel.getDragObject().getScale() + 0.05; - + panel.getDragObject().setScale(scale); panel.getDragObject().setPosition(new Point2D.Double(panel.getDragObject().getPosition().getX(), panel.getDragObject().getPosition().getY() - 5)); @@ -96,6 +97,7 @@ public class MouseMotion extends MouseMotionAdapter double scale = panel.getDragObject().getScale() - 0.05; panel.getDragObject().setScale(scale); panel.getDragObject().setPosition(new Point2D.Double(panel.getDragObject().getPosition().getX() - clickPoint.getX(), panel.getDragObject().getPosition().getY() - clickPoint.getY())); + } } } diff --git a/Listeners/MouseWheel.java b/Listeners/MouseWheel.java index 59aa825..85893a4 100644 --- a/Listeners/MouseWheel.java +++ b/Listeners/MouseWheel.java @@ -7,41 +7,46 @@ import java.awt.geom.Point2D; import Applicatie.DrawObject; import Applicatie.Panel; -public class MouseWheel implements MouseWheelListener { +public class MouseWheel implements MouseWheelListener +{ private Panel panel; private int scrollfactor; - public MouseWheel(Panel panel) { + public MouseWheel(Panel panel) + { this.panel = panel; scrollfactor = 20; } - public void mouseWheelMoved(MouseWheelEvent e) { - if (e.getY() < 150) { + public void mouseWheelMoved(MouseWheelEvent e) + { + if (e.getY() < 150) + { - if (e.getPreciseWheelRotation() < 0) { - if (panel.getScrollfactor() + scrollfactor - + panel.getPanelInfoLength() < panel.getWidth()) { - panel.setScrollfactor(panel.getScrollfactor() - + scrollfactor); + if (e.getPreciseWheelRotation() < 0) + { + if (panel.getScrollfactor() + scrollfactor + panel.getPanelInfoLength() < panel.getWidth()) + { + panel.setScrollfactor(panel.getScrollfactor() + scrollfactor); } - } else { - if (panel.getScrollfactor() - scrollfactor >= 0) { - panel.setScrollfactor(panel.getScrollfactor() - - scrollfactor); + } else + { + if (panel.getScrollfactor() - scrollfactor >= 0) + { + panel.setScrollfactor(panel.getScrollfactor() - scrollfactor); } } - } else { + } else + { // cameraPoint - double cameraScale = panel.getCameraScale() * 1 - - (e.getPreciseWheelRotation() / 10); + double cameraScale = panel.getCameraScale() * 1 - (e.getPreciseWheelRotation() / 10); panel.setCameraScale((float) cameraScale); } panel.repaint(); } -} \ No newline at end of file +} diff --git a/Objects/Entrance.java b/Objects/Entrance.java index e8b905a..69a7033 100644 --- a/Objects/Entrance.java +++ b/Objects/Entrance.java @@ -1,18 +1,21 @@ package Objects; + import java.awt.geom.Point2D; import Applicatie.DrawObject; +public class Entrance extends DrawObject +{ -public class Entrance extends DrawObject { - - public Entrance(Point2D position) { + public Entrance(Point2D position) + { super("images/entrance.png", position); } @Override - public String getName() { + public String getName() + { return "Entrance"; } -} \ No newline at end of file +} diff --git a/Objects/Path.java b/Objects/Path.java index 84f2f39..1cde2ff 100644 --- a/Objects/Path.java +++ b/Objects/Path.java @@ -1,17 +1,20 @@ package Objects; + import java.awt.geom.Point2D; import Applicatie.DrawObject; +public class Path extends DrawObject +{ -public class Path extends DrawObject { - - public Path(Point2D position) { + public Path(Point2D position) + { super("images/path.jpg", position); } @Override - public String getName() { + public String getName() + { return "Path"; } diff --git a/Objects/Stage.java b/Objects/Stage.java index c11f02a..705cde6 100644 --- a/Objects/Stage.java +++ b/Objects/Stage.java @@ -1,19 +1,20 @@ package Objects; + import java.awt.geom.Point2D; import Applicatie.DrawObject; - -public class Stage extends DrawObject { - - public Stage(Point2D position) { - super("images/stage4.png", position); +public class Stage extends DrawObject +{ + public Stage(Point2D position) + { + super("images/stage3.png", position); } @Override - public String getName() { + public String getName() + { return "Stage"; } - } diff --git a/Objects/Toilet.java b/Objects/Toilet.java index 6adbc97..f0a0aa8 100644 --- a/Objects/Toilet.java +++ b/Objects/Toilet.java @@ -1,19 +1,21 @@ package Objects; + import java.awt.geom.Point2D; import Applicatie.DrawObject; +public class Toilet extends DrawObject +{ -public class Toilet extends DrawObject { - - public Toilet(Point2D position) { + public Toilet(Point2D position) + { super("images/wc.png", position); } @Override - public String getName() { + public String getName() + { return "Toilet"; } - } diff --git a/Objects/Wall.java b/Objects/Wall.java index a65247d..6c213d4 100644 --- a/Objects/Wall.java +++ b/Objects/Wall.java @@ -1,18 +1,21 @@ package Objects; + import java.awt.geom.Point2D; import Applicatie.DrawObject; +public class Wall extends DrawObject +{ -public class Wall extends DrawObject { - - public Wall(Point2D position) { + public Wall(Point2D position) + { super("images/wall.png", position); } @Override - public String getName() { + public String getName() + { return "Wall"; } -} \ No newline at end of file +}