MenuBar.java 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. package gui.menubar;
  2. import gui.frames.MainFrame;
  3. import gui.simulator.DrawEngine;
  4. import gui.simulator.SimIo;
  5. import gui.simulator.SimulatorDialogPane;
  6. import gui.simulator.SimulatorPane;
  7. import gui.simulator.Terrain;
  8. import gui.simulator.WalkingPathArrayList;
  9. import java.awt.FlowLayout;
  10. import java.awt.event.ActionEvent;
  11. import java.awt.event.ActionListener;
  12. import java.awt.event.KeyEvent;
  13. import java.io.IOException;
  14. import java.util.ArrayList;
  15. import java.util.List;
  16. import javax.swing.JMenu;
  17. import javax.swing.JMenuBar;
  18. import javax.swing.JMenuItem;
  19. import javax.swing.JOptionPane;
  20. import javax.swing.JPanel;
  21. import javax.swing.KeyStroke;
  22. import agenda.Agenda;
  23. import agenda.Database;
  24. import agenda.Io;
  25. @SuppressWarnings("serial")
  26. public class MenuBar extends JMenuBar{
  27. private MainFrame mainFrame;
  28. private Agenda agenda;
  29. private JPanel simPanel;
  30. private Terrain terrain;
  31. //add agenda because Database needs it to acces all inserted acts
  32. public MenuBar(MainFrame frame, Agenda agenda){
  33. this.mainFrame = frame;
  34. this.agenda = agenda;
  35. initialize();
  36. }
  37. private void initialize(){
  38. setLayout(new FlowLayout(80));
  39. JMenu fileMenu = new JMenu("File");
  40. JMenu editMenu = new JMenu("Edit");
  41. JMenu viewMenu = new JMenu("View");
  42. JMenu helpMenu = new JMenu("Help");
  43. this.add(fileMenu);
  44. this.add(editMenu);
  45. this.add(viewMenu);
  46. this.add(helpMenu);
  47. JMenuItem newAction = new JMenuItem("New");
  48. JMenuItem openAction = new JMenuItem("Open");
  49. JMenuItem exitAction = new JMenuItem("Exit");
  50. JMenuItem cutAction = new JMenuItem("Cut");
  51. JMenuItem copyAction = new JMenuItem("Copy");
  52. JMenuItem pasteAction = new JMenuItem("Paste");
  53. JMenuItem saveAction = new JMenuItem("Save");
  54. JMenuItem helpAction = new JMenuItem("Help");
  55. JMenuItem uploadAction = new JMenuItem("Upload agenda to DB");
  56. JMenuItem openSim = new JMenuItem("Open simulator");
  57. JMenuItem saveSim = new JMenuItem("Save simulator");
  58. //view
  59. JMenuItem editorView = new JMenuItem("Editor");
  60. JMenuItem agendaView = new JMenuItem("Agenda");
  61. JMenuItem simulatorView = new JMenuItem("Simulator");
  62. JMenuItem tableView = new JMenuItem("Table");
  63. newAction.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.CTRL_MASK));
  64. openAction.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK));
  65. exitAction.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, ActionEvent.CTRL_MASK));
  66. cutAction.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, ActionEvent.CTRL_MASK));
  67. copyAction.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK));
  68. pasteAction.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK));
  69. saveAction.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,ActionEvent.CTRL_MASK));
  70. uploadAction.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,ActionEvent.CTRL_MASK));
  71. fileMenu.add(newAction);
  72. newAction.addActionListener(new ActionListener() {
  73. public void actionPerformed(ActionEvent arg0) {
  74. System.out.println("You have clicked on the new action");
  75. new MainFrame();
  76. }
  77. });
  78. fileMenu.add(openAction);
  79. openAction.addActionListener(new ActionListener() {
  80. public void actionPerformed(ActionEvent arg0) {
  81. try {
  82. Agenda agenda= Io.readIo();
  83. if(agenda != null){
  84. mainFrame.setAgenda(agenda);
  85. System.out.println("read");
  86. }
  87. } catch (IOException e) {
  88. e.printStackTrace();
  89. }
  90. }
  91. });
  92. fileMenu.add(saveAction);
  93. saveAction.addActionListener(new ActionListener() {
  94. public void actionPerformed(ActionEvent e) {
  95. try {
  96. Io.writeIo(mainFrame.getAgenda());
  97. } catch (IOException e1) {
  98. e1.printStackTrace();
  99. }
  100. }
  101. });
  102. fileMenu.add(uploadAction);
  103. uploadAction.addActionListener(new ActionListener() {
  104. public void actionPerformed(ActionEvent arg0) {
  105. Database database = new Database(agenda);
  106. try {
  107. database.writeDatabase();
  108. System.out.println("Act data send to database");
  109. } catch (Exception e) {
  110. e.printStackTrace();
  111. System.out.println("Database error");
  112. }
  113. System.out.println("You have clicked on the database action");
  114. }
  115. });
  116. fileMenu.addSeparator();
  117. fileMenu.add(openSim);
  118. openSim.addActionListener(new ActionListener() {
  119. public void actionPerformed(ActionEvent e) {
  120. try {
  121. // simPanel = mainFrame.getSimulatorpanel();
  122. // System.out.println("Simpanel " + simPanel);
  123. // terrain = ((SimulatorPane) simPanel).getTerrain();
  124. // System.out.println(terrain);
  125. List <Object> list = new ArrayList<Object>();
  126. list = (List<Object>) SimIo.readIo();
  127. System.out.println(list);
  128. if(list != null){
  129. mainFrame.setLength((int)list.get(0));
  130. mainFrame.setTerainWidth((int)list.get(1));
  131. mainFrame.setTerrain((SimulatorPane.Terrains)list.get(2));
  132. simPanel = new SimulatorPane(mainFrame.getAgenda(), mainFrame.getLength(), mainFrame.getTerainWidth(), mainFrame.getTerrain());
  133. terrain = ((SimulatorPane) simPanel).getTerrain();
  134. terrain.setEntities((List<DrawEngine>)list.get(3));
  135. System.out.println(list.get(3));
  136. terrain.setPaths((WalkingPathArrayList)list.get(4));
  137. ((SimulatorPane) simPanel).setTerrain(terrain);
  138. mainFrame.setSimulatorpanel(simPanel);
  139. System.out.println("read simulator");
  140. }
  141. } catch (IOException ee) {
  142. ee.printStackTrace();
  143. }
  144. }
  145. });
  146. fileMenu.add(saveSim);
  147. saveSim.addActionListener(new ActionListener() {
  148. @Override
  149. public void actionPerformed(ActionEvent arg0) {
  150. try {
  151. //TODO simPanel value is null.
  152. simPanel = mainFrame.getSimulatorpanel();
  153. terrain = ((SimulatorPane) simPanel).getTerrain();
  154. if(simPanel != null){
  155. List<Object> objectlist = new ArrayList<Object>();
  156. objectlist.add(mainFrame.getLength());
  157. objectlist.add(mainFrame.getTerainWidth());
  158. objectlist.add(mainFrame.getTerrain());
  159. objectlist.add(terrain.getEntities());
  160. objectlist.add(terrain.getPaths());
  161. SimIo.writeIo(objectlist);
  162. }
  163. } catch (IOException e1) {
  164. e1.printStackTrace();
  165. }
  166. }
  167. });
  168. fileMenu.addSeparator();
  169. fileMenu.add(exitAction);
  170. exitAction.addActionListener(new ActionListener() {
  171. public void actionPerformed(ActionEvent arg0) {
  172. System.exit(0);
  173. }
  174. });
  175. editMenu.add(cutAction);
  176. cutAction.addActionListener(new ActionListener() {
  177. public void actionPerformed(ActionEvent arg0) {
  178. System.out.println("You have clicked on the cut action");
  179. }
  180. });
  181. editMenu.add(copyAction);
  182. copyAction.addActionListener(new ActionListener() {
  183. public void actionPerformed(ActionEvent arg0) {
  184. System.out.println("You have clicked on the copy action");
  185. }
  186. });
  187. editMenu.add(pasteAction);
  188. pasteAction.addActionListener(new ActionListener() {
  189. public void actionPerformed(ActionEvent arg0) {
  190. System.out.println("You have clicked on the paste action");
  191. }
  192. });
  193. //view
  194. viewMenu.add(editorView);
  195. editorView.addActionListener(new ActionListener() {
  196. @Override
  197. public void actionPerformed(ActionEvent e) {
  198. System.out.println("Editor View");
  199. mainFrame.changeView(MainFrame.Views.EDITOR);
  200. }
  201. });
  202. viewMenu.add(simulatorView);
  203. simulatorView.addActionListener(new ActionListener() {
  204. @Override
  205. public void actionPerformed(ActionEvent e) {
  206. System.out.println("Simulator View");
  207. if(mainFrame.getLength() == 100000 ||
  208. mainFrame.getWidth() == 100000 ||
  209. mainFrame.getTerrain() == SimulatorPane.Terrains.UNDEFINED){
  210. new SimulatorDialogPane(mainFrame);
  211. } else {
  212. mainFrame.changeView(MainFrame.Views.SIMULATOR);
  213. }
  214. }
  215. });
  216. viewMenu.add(agendaView);
  217. agendaView.addActionListener(new ActionListener() {
  218. @Override
  219. public void actionPerformed(ActionEvent e) {
  220. System.out.println("Agenda View");
  221. mainFrame.changeView(MainFrame.Views.AGENDA);
  222. }
  223. });
  224. viewMenu.add(tableView);
  225. tableView.addActionListener(new ActionListener() {
  226. @Override
  227. public void actionPerformed(ActionEvent e) {
  228. mainFrame.changeView(MainFrame.Views.TABLE);
  229. }
  230. });
  231. helpMenu.add(helpAction);
  232. helpAction.addActionListener(new ActionListener() {
  233. @Override
  234. public void actionPerformed(ActionEvent e) {
  235. JOptionPane.showMessageDialog(mainFrame,"Deze applicatie is gemaakt door: "
  236. + "\nJanco, Gillian, Tim, Davey en Jeroen"
  237. + "\n\nIn opdracht voor: "
  238. + "\n Ti Avans Breda"
  239. );
  240. }
  241. });
  242. }
  243. }