diff --git a/Applicatie/DrawObject.java b/Applicatie/DrawObject.java index fa5ec5a..c5a8637 100644 --- a/Applicatie/DrawObject.java +++ b/Applicatie/DrawObject.java @@ -1,4 +1,5 @@ package Applicatie; + import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics2D; @@ -12,8 +13,8 @@ import java.awt.geom.Rectangle2D; import javax.swing.ImageIcon; - -public abstract class DrawObject { +public abstract class DrawObject +{ Point2D position; double rotation; double scale; @@ -39,17 +40,19 @@ public abstract class DrawObject { rotation = 0; this.position = position; } - + public abstract String getName(); - + public void draw(Graphics2D g) { AffineTransform tx = getTransform(); g.drawImage(image, tx, null); - if(selected) { -// g.rotate(Math.toRadians(rotation), image.getWidth(null)/2, image.getHeight(null)/2); - - AffineTransform rotate = AffineTransform.getRotateInstance(Math.toRadians(rotation), position.getX() + image.getWidth(null)/2, position.getY() +image.getHeight(null)/2); + if (selected) + { + // g.rotate(Math.toRadians(rotation), image.getWidth(null)/2, + // image.getHeight(null)/2); + + AffineTransform rotate = AffineTransform.getRotateInstance(Math.toRadians(rotation), position.getX() + image.getWidth(null) / 2, position.getY() + image.getHeight(null) / 2); g.transform(rotate); g.setColor(Color.BLACK); g.setStroke(new BasicStroke(7)); @@ -58,31 +61,32 @@ public abstract class DrawObject { rektAngle.setFrame(tx.createTransformedShape(rektAngle).getBounds()); g.draw(rektAngle); g.setColor(Color.YELLOW); - upperLeftCorner = new Rectangle2D.Double(rektAngle.getX()-7,rektAngle.getY()-7,15,15); - upperRightCorner = new Rectangle2D.Double(rektAngle.getX() + rektAngle.getWidth()-8,rektAngle.getY()-7,15,15); - bottomLeftCorner = new Rectangle2D.Double(rektAngle.getX()-7,rektAngle.getY() + rektAngle.getHeight()-8,15,15); - bottomRightCorner = new Rectangle2D.Double(rektAngle.getX() + rektAngle.getWidth()-8,rektAngle.getY() + rektAngle.getHeight()-8,15,15); - g.fill(upperLeftCorner); //upperleft - g.fill(upperRightCorner); //upperright - g.fill(bottomLeftCorner); //bottomleft - g.fill(bottomRightCorner); //bottomright + upperLeftCorner = new Rectangle2D.Double(rektAngle.getX() - 7, rektAngle.getY() - 7, 15, 15); + upperRightCorner = new Rectangle2D.Double(rektAngle.getX() + rektAngle.getWidth() - 8, rektAngle.getY() - 7, 15, 15); + bottomLeftCorner = new Rectangle2D.Double(rektAngle.getX() - 7, rektAngle.getY() + rektAngle.getHeight() - 8, 15, 15); + bottomRightCorner = new Rectangle2D.Double(rektAngle.getX() + rektAngle.getWidth() - 8, rektAngle.getY() + rektAngle.getHeight() - 8, 15, 15); + g.fill(upperLeftCorner); // upperleft + g.fill(upperRightCorner); // upperright + g.fill(bottomLeftCorner); // bottomleft + g.fill(bottomRightCorner); // bottomright g.setColor(Color.RED); - rotateDot = new Ellipse2D.Double((rektAngle.getX() + (rektAngle.getWidth()/2))-8,rektAngle.getY()-8,15,15); + rotateDot = new Ellipse2D.Double((rektAngle.getX() + (rektAngle.getWidth() / 2)) - 8, rektAngle.getY() - 8, 15, 15); g.fill(rotateDot); - - + } } - protected AffineTransform getTransform() { + protected AffineTransform getTransform() + { AffineTransform tx = new AffineTransform(); tx.scale(scale, scale); tx.translate(position.getX(), position.getY()); tx.rotate(Math.toRadians(rotation), image.getWidth(null) / 2, image.getHeight(null) / 2); return tx; } - - protected AffineTransform getTransformSelection() { + + protected AffineTransform getTransformSelection() + { AffineTransform tx = new AffineTransform(); tx.scale(scale, scale); tx.translate(position.getX(), position.getY()); @@ -90,119 +94,143 @@ public abstract class DrawObject { } /** - * Special transformation for the selection rectangle, because the translation of the image one places the rectangle translated from the image. + * Special transformation for the selection rectangle, because the + * translation of the image one places the rectangle translated from the + * image. + * * @return affineTransform */ - private AffineTransform getTransformRectangle() { + private AffineTransform getTransformRectangle() + { AffineTransform tx = new AffineTransform(); tx.scale(scale, scale); return tx; } - - public boolean contains(Point2D clickPoint) { + + public boolean contains(Point2D clickPoint) + { Shape shape; - if(rektAngle == null) { - shape = new Rectangle2D.Double(0,0,image.getWidth(null), image.getHeight(null)); + if (rektAngle == null) + { + shape = new Rectangle2D.Double(0, 0, image.getWidth(null), image.getHeight(null)); return getTransform().createTransformedShape(shape).contains(clickPoint); } - else { - shape = new Rectangle2D.Double(-7,-7,image.getWidth(null)+7, image.getHeight(null)+7); + else + { + shape = new Rectangle2D.Double(-7, -7, image.getWidth(null) + 7, image.getHeight(null) + 7); return getTransformSelection().createTransformedShape(shape).contains(clickPoint); } - + } - - public Point2D getObjectPoint(Point2D point) { - try { + + public Point2D getObjectPoint(Point2D point) + { + try + { return getTransform().inverseTransform(point, null); - } catch (NoninvertibleTransformException e) { + } + catch (NoninvertibleTransformException e) + { e.printStackTrace(); } return null; } - + /** - * This method checks if the place thats clicked is inside one of the corners. + * This method checks if the place thats clicked is inside one of the + * corners. * * @param point * @param corner * @return if the clicked point is inside one of the corners */ - public boolean containsCorner(Point2D point, int corner) { + public boolean containsCorner(Point2D point, int corner) + { Rectangle2D chosenCorner = null; - switch(corner) { - case 0: - chosenCorner = upperLeftCorner; - break; - case 1: - chosenCorner = upperRightCorner; - break; - case 2: - chosenCorner = bottomLeftCorner; - break; - case 3: - chosenCorner = bottomRightCorner; - break; - case 4: - if(point.getX() > rotateDot.getX() && point.getX() < rotateDot.getX() + rotateDot.getWidth() - && point.getY() > rotateDot.getY() && point.getY() < rotateDot.getY() + rotateDot.getHeight()) - return true; - else - return false; + switch (corner) + { + case 0: + chosenCorner = upperLeftCorner; + break; + case 1: + chosenCorner = upperRightCorner; + break; + case 2: + chosenCorner = bottomLeftCorner; + break; + case 3: + chosenCorner = bottomRightCorner; + break; + case 4: + if (point.getX() > rotateDot.getX() && point.getX() < rotateDot.getX() + rotateDot.getWidth() && point.getY() > rotateDot.getY() && point.getY() < rotateDot.getY() + rotateDot.getHeight()) + 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()) + if (point.getX() > chosenCorner.getX() && point.getX() < chosenCorner.getX() + chosenCorner.getWidth() && point.getY() > chosenCorner.getY() && point.getY() < chosenCorner.getY() + chosenCorner.getHeight()) return true; - else + else return false; } - - public void setSelected(boolean b) { + + public void setSelected(boolean b) + { selected = b; } - public Point2D getPosition() { + public Point2D getPosition() + { return position; } - public void setPosition(Point2D position) { + public void setPosition(Point2D position) + { this.position = position; } - public double getRotation() { + public double getRotation() + { return rotation; } - public void setRotation(double rotation) { + public void setRotation(double rotation) + { this.rotation = rotation; } - public double getScale() { + public double getScale() + { return scale; } - public void setScale(double scale) { + public void setScale(double scale) + { this.scale = scale; } - public Image getImage() { + public Image getImage() + { return image; } - public void setImage(Image image) { + public void setImage(Image image) + { this.image = image; } - public boolean isSelected() { + public boolean isSelected() + { return selected; } - - public Rectangle2D getRectangle() { + + public Rectangle2D getRectangle() + { return rektAngle; } - - public void setRectangle(Rectangle2D rectangle) { + + public void setRectangle(Rectangle2D rectangle) + { rektAngle = rectangle; } - + } diff --git a/Applicatie/Main.java b/Applicatie/Main.java index 37dc7d7..46156c0 100644 --- a/Applicatie/Main.java +++ b/Applicatie/Main.java @@ -1,8 +1,10 @@ package Applicatie; -public class Main { +public class Main +{ - public static void main(String[] args) { + public static void main(String[] args) + { new Window(); } 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 ea37085..e43bf7e 100644 --- a/Applicatie/Panel.java +++ b/Applicatie/Panel.java @@ -27,11 +27,11 @@ import Objects.Toilet; import Objects.Wall; @SuppressWarnings("serial") -public class Panel extends JPanel { +public class Panel extends JPanel +{ BufferedImage background; - BufferedImage podiumImage, toiletImage, entranceImage, pathImage, - wallImage; + BufferedImage podiumImage, toiletImage, entranceImage, pathImage, wallImage; private int panelInfox, panelInfoy, scrollfactor; @@ -57,17 +57,21 @@ public class Panel extends JPanel { // en maak een case statement die een new Object returnt in // createNewDrawObject. - Panel(PropertiesPanel pp) { + Panel(PropertiesPanel pp) + { this.pp = pp; pp.setPanel(this); - try { + try + { background = ImageIO.read(new File("images/grass.jpg")); podiumImage = ImageIO.read(new File("images/stageIcon.png")); toiletImage = ImageIO.read(new File("images/wcIcon.png")); entranceImage = ImageIO.read(new File("images/entranceIcon.png")); pathImage = ImageIO.read(new File("images/pathIcon.png")); wallImage = ImageIO.read(new File("images/wallIcon.png")); - } catch (IOException e) { + } + catch (IOException e) + { e.printStackTrace(); } panelInfo.add(podiumImage); @@ -92,17 +96,21 @@ public class Panel extends JPanel { } - public int getPanelInfoLength() { + public int getPanelInfoLength() + { int panelInfoLength = 0; - for (BufferedImage image : panelInfo) { + for (BufferedImage image : panelInfo) + { panelInfoLength += image.getWidth(); } return panelInfoLength; } - public DrawObject createNewDrawObject(int index) { - switch (index) { + public DrawObject createNewDrawObject(int index) + { + switch (index) + { case 0: return new Stage(null); case 1: @@ -118,11 +126,13 @@ public class Panel extends JPanel { } } - public void add(DrawObject dragObject) { + public void add(DrawObject dragObject) + { objects.add(dragObject); } - public void paintComponent(Graphics g) { + public void paintComponent(Graphics g) + { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; g2.setClip(new Rectangle2D.Double(0, 0, getWidth(), 300)); @@ -130,7 +140,8 @@ public class Panel extends JPanel { // g2.fill(new Ellipse2D.Double(0,0,300,300)); // g2.drawImage(podiumImage, 0, 0, null); - for (BufferedImage image : panelInfo) { + for (BufferedImage image : panelInfo) + { g2.drawImage(image, panelInfox + scrollfactor, panelInfoy, null); panelInfox += image.getWidth(); } @@ -140,12 +151,12 @@ public class Panel extends JPanel { AffineTransform oldTransform = g2.getTransform(); g2.setTransform(getCamera()); - TexturePaint p = new TexturePaint(background, new Rectangle2D.Double(0, - 0, 100, 100)); + TexturePaint p = new TexturePaint(background, new Rectangle2D.Double(0, 0, 100, 100)); g2.setPaint(p); g2.fill(new Rectangle2D.Double(-1920, -1080, 3840, 2160)); - for (DrawObject o : objects) { + for (DrawObject o : objects) + { o.draw(g2); } @@ -153,136 +164,170 @@ public class Panel extends JPanel { g2.setTransform(oldTransform); } - public AffineTransform getCamera() { + public AffineTransform getCamera() + { AffineTransform tx = new AffineTransform(); - tx.translate(-cameraPoint.getX() + getWidth() / 2, -cameraPoint.getY() - + getHeight() / 2); + tx.translate(-cameraPoint.getX() + getWidth() / 2, -cameraPoint.getY() + getHeight() / 2); tx.scale(cameraScale, cameraScale); return tx; } - public Point2D getClickPoint(Point point) { - try { + public Point2D getClickPoint(Point point) + { + try + { return getCamera().inverseTransform(point, null); - } catch (NoninvertibleTransformException e1) { + } + catch (NoninvertibleTransformException e1) + { e1.printStackTrace(); } return null; } - public void setBackground(BufferedImage background) { + public void setBackground(BufferedImage background) + { this.background = background; } - public ArrayList getObjects() { + public ArrayList getObjects() + { return objects; } - public void setObjects(ArrayList objects) { + public void setObjects(ArrayList objects) + { this.objects = objects; } - public DrawObject getDragObject() { + public DrawObject getDragObject() + { return dragObject; } - public void setDragObject(DrawObject dragObject) { + public void setDragObject(DrawObject dragObject) + { this.dragObject = dragObject; } - public Point2D getCameraPoint() { + public Point2D getCameraPoint() + { return cameraPoint; } - public void setCameraPoint(Point2D cameraPoint) { + public void setCameraPoint(Point2D cameraPoint) + { this.cameraPoint = cameraPoint; } - public float getCameraScale() { + public float getCameraScale() + { return cameraScale; } - public void setCameraScale(float cameraScale) { + public void setCameraScale(float cameraScale) + { this.cameraScale = cameraScale; } - public Point2D getLastClickPosition() { + public Point2D getLastClickPosition() + { return lastClickPosition; } - public void setLastClickPosition(Point2D lastClickPosition) { + public void setLastClickPosition(Point2D lastClickPosition) + { this.lastClickPosition = lastClickPosition; } - public Point getLastMousePosition() { + public Point getLastMousePosition() + { return lastMousePosition; } - public void setLastMousePosition(Point lastMousePosition) { + public void setLastMousePosition(Point lastMousePosition) + { this.lastMousePosition = lastMousePosition; } - public BufferedImage getPodiumImage() { + public BufferedImage getPodiumImage() + { return podiumImage; } - public void setPodiumImage(BufferedImage podiumImage) { + public void setPodiumImage(BufferedImage podiumImage) + { this.podiumImage = podiumImage; } - public ArrayList getPanelInfo() { + public ArrayList getPanelInfo() + { return panelInfo; } - public void setPanelInfo(ArrayList panelInfo) { + public void setPanelInfo(ArrayList panelInfo) + { this.panelInfo = panelInfo; } - public int getScrollfactor() { + public int getScrollfactor() + { return scrollfactor; } - public void setScrollfactor(int scrollfactor) { + public void setScrollfactor(int scrollfactor) + { this.scrollfactor = scrollfactor; } - public int getPanelInfox() { + public int getPanelInfox() + { return panelInfox; } - public void setPanelInfox(int panelInfox) { + public void setPanelInfox(int panelInfox) + { this.panelInfox = panelInfox; } - public PropertiesPanel getPP() { + public PropertiesPanel getPP() + { return pp; } - public void update() { + public void update() + { repaint(); } - public DrawObject getSelectedObject() { + public DrawObject getSelectedObject() + { return selectedObject; } - public void setSelectedObject(DrawObject selectedObject) { + public void setSelectedObject(DrawObject selectedObject) + { this.selectedObject = selectedObject; } - public String getClickedOption() { + public String getClickedOption() + { return clickedOption; } - public void setClickedOption(String clickedOption) { + public void setClickedOption(String clickedOption) + { this.clickedOption = clickedOption; } - public void removeObject(DrawObject o) { + public void removeObject(DrawObject o) + { Iterator itr = objects.iterator(); - while(itr.hasNext()) { + while (itr.hasNext()) + { DrawObject nextObject = (DrawObject) itr.next(); - if(nextObject.equals(o)) { + if (nextObject.equals(o)) + { pp.clearSelected(); itr.remove(); } diff --git a/Applicatie/PropertiesPanel.java b/Applicatie/PropertiesPanel.java index 1f6ae30..fddb628 100644 --- a/Applicatie/PropertiesPanel.java +++ b/Applicatie/PropertiesPanel.java @@ -21,21 +21,22 @@ 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; - - Dimension spacerDimension = new Dimension(200,30); + + Dimension spacerDimension = new Dimension(200, 30); JLabel nameLabel; JTextField locationXField; JTextField locationYField; JTextField scaleField; JTextField rotationField; - - PropertiesPanel() { + PropertiesPanel() + { super(); BoxLayout box = new BoxLayout(this, BoxLayout.PAGE_AXIS); setLayout(box); @@ -52,8 +53,8 @@ public class PropertiesPanel extends JPanel { propPanel.setMaximumSize(new Dimension(200, 60)); propPanel.add(propLabel); add(propPanel); - - //NAME + + // NAME JPanel namePanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); nameLabel = new JLabel("No Selection"); nameLabel.setFont(new Font("Segoe UI", Font.PLAIN, 20)); @@ -61,11 +62,11 @@ public class PropertiesPanel extends JPanel { namePanel.setMaximumSize(new Dimension(200, 40)); namePanel.add(nameLabel); add(namePanel); - + // SPACER add(Box.createRigidArea(spacerDimension)); - - //BUTTONS + + // BUTTONS JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); JLabel buttonLabel = new JLabel("Actions"); buttonLabel.setFont(new Font("Segoe UI", Font.ITALIC, 20)); @@ -73,13 +74,15 @@ public class PropertiesPanel extends JPanel { buttonPanel.setMaximumSize(new Dimension(200, 40)); buttonPanel.add(buttonLabel); add(buttonPanel); - - //DELETE + + // DELETE 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); } }); @@ -87,7 +90,7 @@ public class PropertiesPanel extends JPanel { deletePanel.setMaximumSize(new Dimension(200, 50)); deletePanel.add(deleteButton); add(deletePanel); - + // SPACER add(Box.createRigidArea(spacerDimension)); @@ -109,26 +112,29 @@ 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); @@ -143,29 +149,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) { - } + public void keyTyped(KeyEvent e) + {} - public void keyReleased(KeyEvent e) { - try { + 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 keyPressed(KeyEvent e) { - } + public void keyPressed(KeyEvent e) + {} }); } locationYPanel.add(locationYField); @@ -189,25 +198,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) + {} - public void keyReleased(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 keyPressed(KeyEvent e) { - } + public void keyPressed(KeyEvent e) + {} }); } scalePanel2.add(scaleField); @@ -231,26 +244,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) + {} - public void keyReleased(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 keyPressed(KeyEvent e) { - } + public void keyPressed(KeyEvent e) + {} }); } rotationPanel2.add(rotationField); @@ -259,76 +276,83 @@ 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); } } nameLabel.setText("No Selection"); } - 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 e22ee95..1736408 100644 --- a/Applicatie/Window.java +++ b/Applicatie/Window.java @@ -1,35 +1,35 @@ package Applicatie; + import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JPanel; - -public class Window extends JFrame { +public class Window extends JFrame +{ private static final long serialVersionUID = -1324363758675184283L; Window() { super("Festival Plannner"); setDefaultCloseOperation(EXIT_ON_CLOSE); - setSize(500,600); - setExtendedState( getExtendedState()|JFrame.MAXIMIZED_BOTH ); - - //CONTENT PANELS + setSize(500, 600); + setExtendedState(getExtendedState() | JFrame.MAXIMIZED_BOTH); + + // CONTENT PANELS JPanel contentPanel = new JPanel(new BorderLayout()); PropertiesPanel pp = new PropertiesPanel(); Panel fp = new Panel(pp); contentPanel.add(fp, BorderLayout.CENTER); contentPanel.add(pp, BorderLayout.EAST); - + setContentPane(contentPanel); - //END CONTENT PANELS - - - //MENUBAR + // END CONTENT PANELS + + // MENUBAR setJMenuBar(new MenuBar(this)); - //END MENUBAR - + // END MENUBAR + setFocusable(true); setVisible(true); } diff --git a/Listeners/Mouse.java b/Listeners/Mouse.java index 30548ae..9a4c260 100644 --- a/Listeners/Mouse.java +++ b/Listeners/Mouse.java @@ -11,31 +11,35 @@ import Applicatie.DrawObject; 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); @@ -45,29 +49,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"); } } @@ -81,7 +102,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; @@ -89,9 +111,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 a9c927c..cc9d802 100644 --- a/Listeners/MouseMotion.java +++ b/Listeners/MouseMotion.java @@ -1,11 +1,13 @@ package Listeners; + import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import java.awt.geom.Point2D; import Applicatie.Panel; -public class MouseMotion extends MouseMotionAdapter { +public class MouseMotion extends MouseMotionAdapter +{ private Panel panel; @@ -14,78 +16,88 @@ public class MouseMotion extends MouseMotionAdapter { this.panel = panel; } - public void mouseDragged(MouseEvent e) { + public void mouseDragged(MouseEvent e) + { Point2D clickPoint = panel.getClickPoint(e.getPoint()); - if(panel.getDragObject() != null) { + if (panel.getDragObject() != null) + { Point2D objectPoint = panel.getDragObject().getObjectPoint(panel.getDragObject().getPosition()); - switch(panel.getClickedOption()) { - case "drag": - if(panel.getDragObject() != null) - panel.getDragObject().setPosition(new Point2D.Double( - (panel.getDragObject().getPosition().getX() ) - ((panel.getLastClickPosition().getX() - clickPoint.getX()) ), - (panel.getDragObject().getPosition().getY()) - (panel.getLastClickPosition().getY() - clickPoint.getY()) )); - break; - case "upperLeft": - if(clickPoint.getX() < panel.getDragObject().getPosition().getX() && clickPoint.getY() < panel.getDragObject().getPosition().getY()) { - resizeBigger(); - } - else if (clickPoint.getX() > panel.getDragObject().getPosition().getX() && clickPoint.getY() > panel.getDragObject().getPosition().getY()) { - resizeSmaller(); - } - break; - case "upperRight": - if(clickPoint.getX() > panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() < panel.getDragObject().getRectangle().getY()) { - resizeBigger(); - } - else if (clickPoint.getX() < panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() > panel.getDragObject().getRectangle().getY()) { - resizeSmaller(); - } - break; - case "bottomLeft": - if(clickPoint.getX() < panel.getDragObject().getRectangle().getX() && clickPoint.getY() > panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight()) { - resizeBigger(); - } - else if (clickPoint.getX() > panel.getDragObject().getRectangle().getX() && clickPoint.getY() < panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight()) { - resizeSmaller(); - } - break; - case "bottomRight": - if(clickPoint.getX() > panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() > panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight()) { - resizeBigger(); - } - else if (clickPoint.getX() < panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() < panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight()) { - resizeSmaller(); - } - break; - case "rotate": - double tempval = panel.getDragObject().getRotation() + (panel.getLastClickPosition().getX() - clickPoint.getX()); - panel.getDragObject().setRotation(tempval); - break; + switch (panel.getClickedOption()) + { + case "drag": + if (panel.getDragObject() != null) + panel.getDragObject().setPosition(new Point2D.Double((panel.getDragObject().getPosition().getX()) - ((panel.getLastClickPosition().getX() - clickPoint.getX())), (panel.getDragObject().getPosition().getY()) - (panel.getLastClickPosition().getY() - clickPoint.getY()))); + break; + case "upperLeft": + if (clickPoint.getX() < panel.getDragObject().getPosition().getX() && clickPoint.getY() < panel.getDragObject().getPosition().getY()) + { + resizeBigger(); + } + else if (clickPoint.getX() > panel.getDragObject().getPosition().getX() && clickPoint.getY() > panel.getDragObject().getPosition().getY()) + { + resizeSmaller(); + } + break; + case "upperRight": + if (clickPoint.getX() > panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() < panel.getDragObject().getRectangle().getY()) + { + resizeBigger(); + } + else if (clickPoint.getX() < panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() > panel.getDragObject().getRectangle().getY()) + { + resizeSmaller(); + } + break; + case "bottomLeft": + if (clickPoint.getX() < panel.getDragObject().getRectangle().getX() && clickPoint.getY() > panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight()) + { + resizeBigger(); + } + else if (clickPoint.getX() > panel.getDragObject().getRectangle().getX() && clickPoint.getY() < panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight()) + { + resizeSmaller(); + } + break; + case "bottomRight": + if (clickPoint.getX() > panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() > panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight()) + { + resizeBigger(); + } + else if (clickPoint.getX() < panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() < panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight()) + { + resizeSmaller(); + } + break; + case "rotate": + double tempval = panel.getDragObject().getRotation() + (panel.getLastClickPosition().getX() - clickPoint.getX()); + panel.getDragObject().setRotation(tempval); + break; } } - else { - panel.setCameraPoint(new Point2D.Double( - panel.getCameraPoint().getX() + (panel.getLastMousePosition().getX() - e.getX()), - panel.getCameraPoint().getY() + (panel.getLastMousePosition().getY() - e.getY()) - )); - } + else + { + 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); panel.getPP().update(); } - - private void resizeBigger() { - double scale = panel.getDragObject().getScale()*1 + 0.02; + + private void resizeBigger() + { + double scale = panel.getDragObject().getScale() * 1 + 0.02; panel.getDragObject().setScale(scale); - panel.getDragObject().setPosition(new Point2D.Double(panel.getDragObject().getPosition().getX()-2,panel.getDragObject().getPosition().getY()-2)); + panel.getDragObject().setPosition(new Point2D.Double(panel.getDragObject().getPosition().getX() - 2, panel.getDragObject().getPosition().getY() - 2)); } - - private void resizeSmaller() { - if(panel.getDragObject().getScale() > 0.2) { - double scale = panel.getDragObject().getScale()*1 - 0.02; + + private void resizeSmaller() + { + if (panel.getDragObject().getScale() > 0.2) + { + double scale = panel.getDragObject().getScale() * 1 - 0.02; panel.getDragObject().setScale(scale); - panel.getDragObject().setPosition(new Point2D.Double(panel.getDragObject().getPosition().getX()+2,panel.getDragObject().getPosition().getY()+2)); + panel.getDragObject().setPosition(new Point2D.Double(panel.getDragObject().getPosition().getX() + 2, panel.getDragObject().getPosition().getY() + 2)); } } } diff --git a/Listeners/MouseWheel.java b/Listeners/MouseWheel.java index c92c43f..19e1bac 100644 --- a/Listeners/MouseWheel.java +++ b/Listeners/MouseWheel.java @@ -7,21 +7,25 @@ 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) { + public void mouseWheelMoved(MouseWheelEvent e) + { Point2D clickPoint = panel.getClickPoint(e.getPoint()); - for (DrawObject o : panel.getObjects()) { - if (o.contains(clickPoint)) { - double scale = o.getScale() * 1 - + (e.getPreciseWheelRotation() / 10.0); + for (DrawObject o : panel.getObjects()) + { + if (o.contains(clickPoint)) + { + double scale = o.getScale() * 1 + (e.getPreciseWheelRotation() / 10.0); o.setScale(scale); panel.getPP().update(); panel.repaint(); @@ -29,31 +33,35 @@ public class MouseWheel implements MouseWheelListener { } } - if (e.getY() < 150) { + 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 82e47f2..345f16b 100644 --- a/Objects/Stage.java +++ b/Objects/Stage.java @@ -1,19 +1,21 @@ package Objects; + import java.awt.geom.Point2D; import Applicatie.DrawObject; +public class Stage extends DrawObject +{ -public class Stage extends DrawObject { - - public Stage(Point2D position) { + 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 +}