MenuBar.java 6.8 KB

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