Sidebar.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package gui.simulator;
  2. import gui.simulator.facilities.RestRoom;
  3. import gui.simulator.facilities.SimulatorStage;
  4. import java.awt.BasicStroke;
  5. import java.awt.Color;
  6. import java.awt.Font;
  7. import java.awt.Graphics2D;
  8. import java.awt.event.MouseEvent;
  9. import java.awt.geom.Point2D;
  10. import java.awt.geom.Rectangle2D;
  11. import java.util.ArrayList;
  12. public class Sidebar {
  13. private int sideBarWidth;
  14. private int sideBarHeight;
  15. private Terrain terrain;
  16. private ArrayList<DrawEngine> drawableFacilities = new ArrayList<DrawEngine>();
  17. /*
  18. * Constructor for initializing all variables
  19. * @param: int sideBarWidth -> width of sidebar
  20. * @param int screenHeight -> Height of screen, so sidebar will be same height
  21. */
  22. public Sidebar(int sideBarWidth, int screenHeight, Terrain terrain){
  23. this.sideBarWidth = sideBarWidth;
  24. this.sideBarHeight = screenHeight;
  25. this.terrain = terrain;
  26. }
  27. public void draw(Graphics2D g2){
  28. //setclip
  29. g2.setClip(new Rectangle2D.Double(0,0, sideBarWidth, sideBarHeight));
  30. //header
  31. g2.setColor(Color.GRAY);
  32. g2.fill3DRect(0, 0, 200, 50, true);
  33. g2.setColor(Color.WHITE);
  34. g2.setFont(new Font("Serif", Font.BOLD, 20));
  35. g2.drawString("Drag and drop", 30, 25);
  36. //draw seperation line
  37. g2.setColor(Color.BLACK);
  38. g2.setStroke(new BasicStroke(5));
  39. g2.drawLine(199, 0, 199, sideBarHeight);
  40. //draw objects
  41. DrawEngine object1 = new SimulatorStage(20,100, 0.4, 10);
  42. object1.draw(g2);
  43. g2.drawString("stage", 80, 275);
  44. DrawEngine object2 = new RestRoom(60,350, 1 , 10);
  45. object2.draw(g2);
  46. g2.drawString("toilettage", 70, 500);
  47. DrawEngine object3 = new AccessPoint(terrain, 0,550, 0.5, 10);
  48. object3.draw(g2);
  49. g2.drawString("ingang", 70, 675);
  50. DrawEngine object4 = new ExitPoint(terrain, 0,700, 0.5, 10);
  51. object4.draw(g2);
  52. g2.drawString("uitgang", 70, 800);
  53. }
  54. private void getFacility(MouseEvent e){
  55. Point2D clickPoint = terrain.getClickPoint(e.getPoint());
  56. DrawEngine dragObject = null;
  57. if(e.getX() < sideBarWidth)
  58. {
  59. if(e.getY() < 300){
  60. dragObject = new SimulatorStage((int)clickPoint.getX(),(int)clickPoint.getY(), 0.5, 10);
  61. terrain.setDragObject(dragObject);
  62. }else if(e.getY() > 300 && e.getY() < 550){
  63. dragObject = new RestRoom((int)clickPoint.getX(),(int)clickPoint.getY(), 0.5, 10);
  64. terrain.setDragObject(dragObject);
  65. }else if(e.getY() > 550 && e.getY() < 800){
  66. dragObject = new AccessPoint(terrain, (int)clickPoint.getX(),(int)clickPoint.getY(), 0.5, 10);
  67. terrain.setDragObject(dragObject);
  68. }
  69. else if(e.getY() > 800){
  70. dragObject = new ExitPoint(terrain, (int)clickPoint.getX(),(int)clickPoint.getY(), 0.5, 10);
  71. terrain.setDragObject(dragObject);
  72. }
  73. if(dragObject != null)
  74. terrain.addEntity(dragObject);
  75. }
  76. }
  77. public int getSideBarWidth(){
  78. return sideBarWidth;
  79. }
  80. }