package gui.simulator; import gui.simulator.facilities.RestRoom; import gui.simulator.facilities.Stage; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.event.MouseEvent; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import java.util.ArrayList; public class Sidebar { private int sideBarWidth; private int sideBarHeight; private Terrain terrain; private ArrayList drawableFacilities = new ArrayList(); /* * Constructor for initializing all variables * @param: int sideBarWidth -> width of sidebar * @param int screenHeight -> Height of screen, so sidebar will be same height */ public Sidebar(int sideBarWidth, int screenHeight, Terrain terrain){ this.sideBarWidth = sideBarWidth; this.sideBarHeight = screenHeight; this.terrain = terrain; } public void draw(Graphics2D g2){ //setclip g2.setClip(new Rectangle2D.Double(0,0, sideBarWidth, sideBarHeight)); //header g2.setColor(Color.GRAY); g2.fill3DRect(0, 0, 200, 50, true); g2.setColor(Color.WHITE); g2.setFont(new Font("Serif", Font.BOLD, 20)); g2.drawString("Drag and drop", 30, 25); //draw seperation line g2.setColor(Color.BLACK); g2.setStroke(new BasicStroke(5)); g2.drawLine(199, 0, 199, sideBarHeight); //draw objects Draw object1 = new Stage(20,100, 0.4, 10); object1.draw(g2); g2.drawString("stage", 80, 275); Draw object2 = new RestRoom(60,350, 1 , 10); object2.draw(g2); g2.drawString("toilettage", 70, 500); Draw object3 = new AccessPoint(terrain, 0,550, 0.5, 10); object3.draw(g2); g2.drawString("ingang", 70, 675); Draw object4 = new ExitPoint(terrain, 0,700, 0.5, 10); object4.draw(g2); g2.drawString("uitgang", 70, 800); } private void getFacility(MouseEvent e){ Point2D clickPoint = terrain.getClickPoint(e.getPoint()); Draw dragObject = null; if(e.getX() < sideBarWidth) { if(e.getY() < 300){ dragObject = new Stage((int)clickPoint.getX(),(int)clickPoint.getY(), 0.5, 10); terrain.setDragObject(dragObject); }else if(e.getY() > 300 && e.getY() < 550){ dragObject = new RestRoom((int)clickPoint.getX(),(int)clickPoint.getY(), 0.5, 10); terrain.setDragObject(dragObject); }else if(e.getY() > 550 && e.getY() < 800){ dragObject = new AccessPoint(terrain, (int)clickPoint.getX(),(int)clickPoint.getY(), 0.5, 10); terrain.setDragObject(dragObject); } else if(e.getY() > 800){ dragObject = new ExitPoint(terrain, (int)clickPoint.getX(),(int)clickPoint.getY(), 0.5, 10); terrain.setDragObject(dragObject); } if(dragObject != null) terrain.addEntity(dragObject); } } public int getSideBarWidth(){ return sideBarWidth; } }