MainMenu.java 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. package panels;
  2. import java.awt.BorderLayout;
  3. import java.awt.event.MouseEvent;
  4. import java.awt.event.MouseListener;
  5. import java.io.File;
  6. import java.io.IOException;
  7. import java.nio.charset.Charset;
  8. import java.nio.charset.StandardCharsets;
  9. import java.nio.file.Files;
  10. import java.nio.file.Path;
  11. import java.nio.file.Paths;
  12. import java.util.List;
  13. import javax.activation.UnsupportedDataTypeException;
  14. import javax.swing.JFileChooser;
  15. import javax.swing.JOptionPane;
  16. import javax.swing.JPanel;
  17. import windows.Remote;
  18. import menubar.Menu_file;
  19. import menubar.Menubar;
  20. import customComponents.ComWriter;
  21. public class MainMenu extends JPanel{
  22. Menubar menubar;
  23. RouteSplitpane routeSplitpane;
  24. Iconbar iconbar;
  25. ComWriter bluetooth;
  26. String currentRouteFile;
  27. Remote remote;
  28. char[] currentRoute;
  29. final static Charset ENCODING = StandardCharsets.UTF_8;
  30. public MainMenu(){
  31. menubar = new Menubar();
  32. routeSplitpane = new RouteSplitpane();
  33. iconbar = new Iconbar();
  34. bluetooth = new ComWriter();
  35. remote = new Remote(new AfstandbedieningPanel(bluetooth));
  36. remote.dispose();
  37. setLayout(new BorderLayout(0,0));
  38. add(menubar, BorderLayout.NORTH);
  39. add(routeSplitpane);
  40. add(iconbar, BorderLayout.SOUTH);
  41. currentRouteFile = "Nieuwe route";
  42. iconbar.currentroute.setText("Nieuwe route");
  43. menubarMouseListeners();
  44. }
  45. public String getCurrentRouteFile() {
  46. return currentRouteFile;
  47. }
  48. public void setCurrentRouteFile(String route){
  49. int c = JOptionPane.showConfirmDialog(null, "Weet u zeker dat u de huidige route wilt afsluiten?", "Alert: " + "Weet u het zeker?", JOptionPane.YES_NO_OPTION);
  50. if (c == JOptionPane.YES_OPTION) {
  51. currentRouteFile = route;
  52. iconbar.currentroute.setText(route);
  53. }
  54. }
  55. //route uitlezen uit een file en de file controleren
  56. public void readRouteFile(String aFileName){
  57. Path path = Paths.get(aFileName);
  58. try {
  59. List<String> routebestand = Files.readAllLines(path, ENCODING);
  60. if(routebestand.size() == 0 || !routebestand.get(0).contains("broboticsrouteplanner")){
  61. JOptionPane.showConfirmDialog(null, "Route niet geldig!", "Alert: " + "Fout", JOptionPane.INFORMATION_MESSAGE);
  62. System.out.println("Route bestand niet geldig!");
  63. }else{
  64. setCurrentRouteFile(path.toString());
  65. String[] route = routebestand.get(2).split("|");
  66. for(String cor:route){
  67. System.out.println(cor);
  68. }
  69. }
  70. } catch (IOException e) {
  71. JOptionPane.showMessageDialog(null, "Route niet geldig!", "Alert: " + "Fout", JOptionPane.INFORMATION_MESSAGE);
  72. System.out.println("Route bestand niet geldig!");
  73. }
  74. }
  75. //route file schrijven
  76. public void writeRouteFile(List<String> aLines, String aFileName) throws IOException {
  77. Path path = Paths.get(aFileName);
  78. Files.write(path, aLines, ENCODING);
  79. }
  80. //route verzenden naar de boebot
  81. public void sendRoute(char[] route){
  82. char[] newroute = new char[route.length + 2];
  83. newroute[0] = '?';
  84. for(int i=0; i < route.length; i++){
  85. newroute[i+1] = route[i];
  86. }
  87. newroute[newroute.length] = '?';
  88. bluetooth.writeString(route.toString());
  89. }
  90. //nieuwe routefile aanmaken
  91. public void createRouteFile(String filename, List<String> aLines, String aFileName) throws IOException {
  92. File file = new File("example.txt");
  93. Path path = Paths.get(aFileName);
  94. Files.write(path, aLines, ENCODING);
  95. }
  96. public void menubarMouseListeners(){
  97. //maakt de mouse listners voor de menubar
  98. menubar.menu_file.openen.addMouseListener(new MouseListener() {
  99. @Override
  100. public void mouseReleased(MouseEvent e) {}
  101. @Override
  102. public void mousePressed(MouseEvent e) {
  103. JFileChooser c = new JFileChooser();
  104. // Demonstrate "Open" dialog:
  105. int rVal = c.showOpenDialog(MainMenu.this);
  106. if (rVal == JFileChooser.APPROVE_OPTION) {
  107. readRouteFile(c.getSelectedFile().getAbsolutePath());
  108. }
  109. if (rVal == JFileChooser.CANCEL_OPTION) {
  110. //filename.setText("You pressed cancel");
  111. //dir.setText("");
  112. }
  113. }
  114. @Override
  115. public void mouseExited(MouseEvent e) {}
  116. @Override
  117. public void mouseEntered(MouseEvent e) {}
  118. @Override
  119. public void mouseClicked(MouseEvent e) {}
  120. });
  121. menubar.menu_file.opslaan.addMouseListener(new MouseListener() {
  122. @Override
  123. public void mouseReleased(MouseEvent e) {
  124. // TODO Auto-generated method stub
  125. }
  126. @Override
  127. public void mousePressed(MouseEvent e) {
  128. if(currentRouteFile == "Nieuwe Route"){
  129. }
  130. }
  131. @Override
  132. public void mouseExited(MouseEvent e) {
  133. // TODO Auto-generated method stub
  134. }
  135. @Override
  136. public void mouseEntered(MouseEvent e) {
  137. // TODO Auto-generated method stub
  138. }
  139. @Override
  140. public void mouseClicked(MouseEvent e) {
  141. // TODO Auto-generated method stub
  142. }
  143. });
  144. menubar.menu_file.nieuw.addMouseListener(new MouseListener() {
  145. @Override
  146. public void mouseReleased(MouseEvent e) {
  147. }
  148. @Override
  149. public void mousePressed(MouseEvent e) {
  150. setCurrentRouteFile("Nieuwe route");
  151. }
  152. @Override
  153. public void mouseExited(MouseEvent e) {
  154. }
  155. @Override
  156. public void mouseEntered(MouseEvent e) {
  157. }
  158. @Override
  159. public void mouseClicked(MouseEvent e) {
  160. }
  161. });
  162. iconbar.irremote.addMouseListener(new MouseListener() {
  163. @Override
  164. public void mouseReleased(MouseEvent e) {
  165. // TODO Auto-generated method stub
  166. }
  167. @Override
  168. public void mousePressed(MouseEvent e) {
  169. createRemote();
  170. }
  171. @Override
  172. public void mouseExited(MouseEvent e) {
  173. // TODO Auto-generated method stub
  174. }
  175. @Override
  176. public void mouseEntered(MouseEvent e) {
  177. // TODO Auto-generated method stub
  178. }
  179. @Override
  180. public void mouseClicked(MouseEvent e) {
  181. // TODO Auto-generated method stub
  182. }
  183. });
  184. }
  185. public void createRemote(){
  186. if(remote.isShowing()){
  187. remote.dispose();
  188. }else{
  189. remote.show();
  190. }
  191. }
  192. }