| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- package panels;
- import java.awt.BorderLayout;
- import java.awt.GridLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.io.IOException;
- import java.text.NumberFormat;
- import java.util.ArrayList;
- import javax.swing.JFileChooser;
- import javax.swing.JFormattedTextField;
- import javax.swing.JLabel;
- import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- import javax.swing.filechooser.FileNameExtensionFilter;
- import javax.swing.text.NumberFormatter;
- import menubar.Menubar;
- import windows.Remote;
- import customComponents.ComWriter;
- import customComponents.Filehandling;
- public class MainMenu extends JPanel{
- Menubar menubar;
- RouteSplitpane routeSplitpane;
- Iconbar iconbar;
- ComWriter bluetooth;
- Remote remote;
- Filehandling file;
- String currentRouteFile;
- boolean startup;
-
- public MainMenu(){
- menubar = new Menubar();
- routeSplitpane = new RouteSplitpane();
- iconbar = new Iconbar();
- file = new Filehandling();
- bluetooth = new ComWriter();
- remote = new Remote(new AfstandbedieningPanel(bluetooth));
-
- setLayout(new BorderLayout(0,0));
- add(menubar, BorderLayout.NORTH);
- add(routeSplitpane);
- add(iconbar, BorderLayout.SOUTH);
- menubarMouseListeners();
-
- currentRouteFile = "";
- startup = true;
- iconbar.currentroute.setText("Geen bestand");
- menubar.menu_file.opslaan.setEnabled(false);
- menubar.menu_file.opslaanals.setEnabled(false);
-
- Thread bt = new Thread(){
- public void run(){
- char c;
- while(true){
- try {
- c = (char) bluetooth.getInput().read();
- if(c == 'b'){
- iconbar.setMessage("Botsing gedetecteerd!", 2000);
- }else if(c == 'g'){
- iconbar.setMessage("Gat gedetecteerd!", 2000);
- }else if(c == 'k');
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
-
- };
- bt.start();
- }
-
-
- public String getCurrentRouteFile() {
- return currentRouteFile;
- }
-
- //methode om een route in te laden of om een nieuwe route aan te maken.
- public void setCurrentRouteFile(String route, ArrayList<ArrayList<Integer>> tempcorarray ){
- int c;
- if(startup){
- c = 0;
- startup = false;
- }else{
- c = JOptionPane.showConfirmDialog(null, "Weet u zeker dat u de huidige route wilt afsluiten?", "Alert: " + "Weet u het zeker?", JOptionPane.YES_NO_OPTION);
- }
- if (c == JOptionPane.YES_OPTION) {
- if(tempcorarray != null){
- // route openen via bestand
- int maxx = tempcorarray.get(0).get(0);
- int maxy = tempcorarray.get(0).get(1);
- iconbar.currentGridSize.setText( maxx + " x " + maxy);
- tempcorarray.remove(0);
- routeSplitpane.setFieldSize(maxx, maxy, tempcorarray);
- currentRouteFile = route;
- iconbar.currentroute.setText(currentRouteFile);
- menubar.menu_file.opslaan.setEnabled(true);
- menubar.menu_file.opslaanals.setEnabled(true);
- }else{
- // Geen route ingeladen, nieuwe route openen
- int[] tempsize = sizePopup();
- if(tempsize != null){
- routeSplitpane.setFieldSize(tempsize[0], tempsize[1], new ArrayList<ArrayList<Integer>>());
- iconbar.currentGridSize.setText(tempsize[0] + " x " + tempsize[1]);
- currentRouteFile = "new";
- iconbar.currentroute.setText("Nieuw bestand");
- menubar.menu_file.opslaan.setEnabled(false);
- menubar.menu_file.opslaanals.setEnabled(true);
- }
- }
- }
- }
-
- //popup om de grootte van het veld in te voeren.
- public int[] sizePopup(){
- NumberFormatter formatter = new NumberFormatter(NumberFormat.getInstance());
- formatter.setValueClass(Integer.class);
- formatter.setMinimum(0);
- formatter.setMaximum(40);
- formatter.setCommitsOnValidEdit(true);
-
- JFormattedTextField field1 = new JFormattedTextField(formatter);
- JFormattedTextField field2 = new JFormattedTextField(formatter);
- JPanel panel = new JPanel(new GridLayout(0, 1));
- panel.add(new JLabel("Hoogte:"));
- panel.add(field1);
- panel.add(new JLabel("Breedte:"));
- panel.add(field2);
- int result = JOptionPane.showConfirmDialog(null, panel, "Veld grootte", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
- if (result == JOptionPane.OK_OPTION) {
- if(field1.getValue() == null || field2.getValue() == null){
- JOptionPane.showMessageDialog(null, "Ongeldige grootte");
- return null;
- }else{
- return new int[]{(int) field1.getValue(),(int) field2.getValue()} ;
- }
- } else {
- return null;
- }
- }
-
- public void menubarMouseListeners(){
- //maakt de mouse listners voor de menubar
- menubar.menu_file.openen.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- JFileChooser c = new JFileChooser();
- c.setFileFilter(new FileNameExtensionFilter("Route bestanden", "rt"));
- int rVal = c.showOpenDialog(MainMenu.this);
- if (rVal == JFileChooser.APPROVE_OPTION) {
- setCurrentRouteFile(c.getSelectedFile().getAbsolutePath(), file.readRouteFile(c.getSelectedFile().getAbsolutePath()));
- }
- }
- });
- menubar.menu_file.opslaan.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent arg0) {
- file.writeRouteFile(routeSplitpane.getColumns(), routeSplitpane.getRows(), routeSplitpane.leftpanel.coordinaten, currentRouteFile);
- }
- });
- menubar.menu_file.opslaanals.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent arg0) {
- JFileChooser c = new JFileChooser();
- c.setFileFilter(new FileNameExtensionFilter("Route bestanden", "rt"));
- int rVal = c.showOpenDialog(MainMenu.this);
- if (rVal == JFileChooser.APPROVE_OPTION) {
- file.writeRouteFile(routeSplitpane.getColumns(), routeSplitpane.getRows(), routeSplitpane.leftpanel.coordinaten, c.getSelectedFile().getAbsolutePath());
- setCurrentRouteFile(c.getSelectedFile().getAbsolutePath(), file.readRouteFile(c.getSelectedFile().getAbsolutePath()));
- }
- }
- });
- menubar.menu_file.nieuw.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- setCurrentRouteFile("Nieuwe route", null);
- }
- });
-
- iconbar.irremote.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- createRemote();
- }
- });
- routeSplitpane.pauze.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent arg0) {
- bluetooth.writeString("p");
- }
- });
- routeSplitpane.hervatten.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent arg0) {
- bluetooth.writeString("h");
- }
- });
- routeSplitpane.upload.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent arg0) {
- bluetooth.sendRoute(routeSplitpane.leftpanel.steps);
- }
- });
- routeSplitpane.automatisch.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent arg0) {
- routeSplitpane.automatischBerekenen(iconbar);
- }
- });
- }
- public void createRemote(){
- if(remote.isShowing()){
- remote.dispose();
- }else{
- remote.show(true);
- }
- }
- }
|