Advertisement
xlrnxnlx

aap

Jun 13th, 2014
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.12 KB | None | 0 0
  1. package aap.controller;
  2.  
  3. import aap.view.*;
  4. import app.dao.*;
  5. import app.model.*;
  6. import java.awt.event.*;
  7. import java.text.SimpleDateFormat;
  8. import java.util.Date;
  9. import java.util.Vector;
  10. import javax.swing.JButton;
  11. import javax.swing.JOptionPane;
  12. import javax.swing.JTable;
  13.  
  14. public class MainWindowController implements ActionListener {
  15.  
  16.     private MainWindow window;
  17.     private CategoryController categoryControll;
  18.     private PilotController pilotControll;
  19.     private PilotWindow pilotWindow;
  20.     private CategoryWindow categoryWindow;
  21.     private PilotDataAccess pilotDAO;
  22.     private AirplaneDataAccess airplaneDAO;
  23.     private TravelDataAccess travelDAO;
  24.     private Travel travel;
  25.     private Pilot pilot;
  26.     private Airplane airplane;
  27.     private AirplaneCategoryDataAccess airplaneCategoryDAO;
  28.    
  29.    
  30.     public MainWindowController(MainWindow window) {
  31.         this.window = window;
  32.  
  33.         //window.getBtAirplane().addActionListener(this);
  34.         window.getBtAirplane().setEnabled(false);
  35.         window.getBtAirplaneCategory().addActionListener(this);
  36.         window.getBtPilot().addActionListener(this);
  37.         window.getBtPilotCategory().addActionListener(this);
  38.         window.getBtNew().addActionListener(this);
  39.         window.getBtCancel().addActionListener(this);
  40.         window.getBtInsert().addActionListener(this);
  41.  
  42.         refreshTable();
  43.         window.setVisible(true);
  44.     }
  45.  
  46.     @Override
  47.     public void actionPerformed(ActionEvent e) {
  48.         JButton b = (JButton) e.getSource();
  49.  
  50.         switch (b.getText().toLowerCase()) {
  51.             case "pilotos":
  52.                 execPilotWindow();
  53.                 break;
  54.             case "categoria de pilotos":
  55.                 execCategoryWindow("pilot");
  56.                 break;
  57.             case "categoria de aviões":
  58.                 execCategoryWindow("airplane");
  59.                 break;
  60.             case "nova":
  61.                 execNewTravel();
  62.                 break;
  63.             case "inserir":
  64.                 execInsert();
  65.                 break;
  66.             case "cancelamento":
  67.                 if(EXEC_TYPE == 10) {
  68.                     window.isNewMode(false);
  69.                 } else {
  70.                     execCancel();
  71.                 }
  72.                 break;
  73.         }
  74.     }
  75.  
  76.     private int EXEC_TYPE = 0;
  77.     private int PILOT_BREVET, PLANE_ID, TOTAL_PASSENGERS;
  78.     private String LOCATION;
  79.     private Date TRAVEL_DATE;
  80.  
  81.     public boolean setData() {
  82.         boolean success = false;
  83.         try {
  84.             pilotDAO = new PilotDataAccess();
  85.             PILOT_BREVET = pilotDAO.selectByName(window.getPilotCombo().getSelectedItem().toString());
  86.             PLANE_ID = Integer.parseInt(window.getAirplaneCombo().getSelectedItem().toString());
  87.             TOTAL_PASSENGERS = Integer.parseInt(window.getTfPassengers().getText());
  88.             LOCATION = window.getTfLocation().getText();
  89.             SimpleDateFormat formater = new SimpleDateFormat("dd-MM-yyyy");
  90.             TRAVEL_DATE = formater.parse(window.getTfDate().getText());
  91.            
  92.             pilot = new Pilot(
  93.                     null,
  94.                     PILOT_BREVET,
  95.                     null, null, null
  96.             );
  97.            
  98.             airplane = new Airplane(
  99.                     null,
  100.                     PLANE_ID,
  101.                     TOTAL_PASSENGERS
  102.             );
  103.            
  104.             travel = new Travel(
  105.                     pilot,
  106.                     airplane,
  107.                     TRAVEL_DATE,
  108.                     LOCATION,
  109.                     TOTAL_PASSENGERS
  110.             );
  111.             success = true;
  112.         } catch (Exception e) {
  113.             JOptionPane.showMessageDialog(null, "Verifique os dados antes de prosseguir.", "", JOptionPane.ERROR_MESSAGE);
  114.             System.out.println("ERRO DE CONVERSAO");
  115.         }
  116.         return success;
  117.     }
  118.  
  119.     public void execPilotWindow() {
  120.         pilotWindow = new PilotWindow(window, true);
  121.         pilotControll = new PilotController(pilotWindow);
  122.     }
  123.  
  124.     public void execCategoryWindow(String type) {
  125.         if (categoryControll == null) {
  126.             categoryWindow = new CategoryWindow();
  127.             categoryControll = new CategoryController(categoryWindow);
  128.         }
  129.         if (type.equals("airplane")) {
  130.             categoryWindow.changeCategory("airplane");
  131.         } else {
  132.             categoryWindow.changeCategory("pilot");
  133.         }
  134.         categoryControll.updateComboBox();
  135.         categoryWindow.setVisible(true);
  136.     }
  137.  
  138.     public void execNewTravel() {
  139.         window.isNewMode(true);
  140.         refreshComboBox();
  141.         EXEC_TYPE = 10;
  142.     }
  143.  
  144.     public void execInsert() {
  145.         window.isNewMode(false);
  146.         if(setData()) {
  147.             travelDAO = new TravelDataAccess(travel);
  148.             if(travelDAO.insert())
  149.                 JOptionPane.showMessageDialog(null, "Viagem registrada!", "", JOptionPane.PLAIN_MESSAGE);
  150.         }
  151.         window.tfNormalState();
  152.         refreshTable();
  153.     }
  154.    
  155.     public void execCancel() {
  156.         boolean selected = false;
  157.         JTable table = window.getTable();
  158.         for(int i = 0; i < table.getRowCount(); i++) {
  159.             if(table.isRowSelected(i)) {
  160.                 window.getBtNew().setEnabled(false);
  161.                 table.setEnabled(false);
  162.                 selected = true;
  163.                 String pilotName = table.getModel().getValueAt(i, 0).toString();
  164.                 pilotDAO = new PilotDataAccess();
  165.                 PILOT_BREVET = pilotDAO.selectByName(pilotName);
  166.                 PLANE_ID = Integer.parseInt(table.getModel().getValueAt(i, 1).toString());
  167.                 pilot = new Pilot(
  168.                         null,
  169.                         PILOT_BREVET,
  170.                         null, null, null
  171.                 );
  172.                 airplane = new Airplane(
  173.                         null,
  174.                         PLANE_ID,
  175.                         TOTAL_PASSENGERS
  176.                 );
  177.                 travel = new Travel(
  178.                         pilot,
  179.                         airplane,
  180.                         null,
  181.                         null,
  182.                         TOTAL_PASSENGERS
  183.                 );
  184.                 int confirm = JOptionPane.showConfirmDialog(null, "Remover esta viagem?", "", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
  185.                 if( confirm == JOptionPane.YES_OPTION ) {
  186.                     travelDAO = new TravelDataAccess(travel);
  187.                     if( travelDAO.delete() )
  188.                         JOptionPane.showConfirmDialog(null, "Viagem removida!", "", JOptionPane.PLAIN_MESSAGE);
  189.                 }
  190.             }
  191.         }
  192.         if(!selected)
  193.             JOptionPane.showConfirmDialog(null, "Selecione uma Viagem antes de clicar em cancelar", "", JOptionPane.PLAIN_MESSAGE);
  194.         window.isNewMode(false);
  195.         refreshTable();
  196.     }
  197.  
  198.  
  199.     private void refreshTable() {
  200.         travelDAO = new TravelDataAccess();
  201.         window.popTable(travelDAO.select());
  202.         BrevetToName();
  203.         //IDToGenre();
  204.     }
  205.  
  206.     private void refreshComboBox() {
  207.         pilotDAO = new PilotDataAccess();
  208.         window.popComboBox(pilotDAO.selectAllPilotNames(), 1);
  209.         airplaneDAO = new AirplaneDataAccess();
  210.         window.popComboBox(airplaneDAO.selectAllPlaneIDs(), 2);
  211.     }
  212.  
  213.     private void BrevetToName() {
  214.         JTable table = window.getTable();
  215.         int rows = table.getRowCount();
  216.        
  217.         pilotDAO = new PilotDataAccess();
  218.         for (int i = 0; i < rows; i++) {
  219.             int brevet = Integer.parseInt(table.getModel().getValueAt(i, 0).toString());
  220.             table.getModel().setValueAt(pilotDAO.selectByID(brevet), i, 0);
  221.         }
  222.     }
  223.    
  224.     /*private void IDToGenre() {
  225.         JTable table = window.getTable();
  226.         int rows = table.getRowCount();
  227.        
  228.         airplaneCategoryDAO  = new AirplaneCategoryDataAccess();
  229.         for (int i = 0; i < rows; i++) {
  230.             int id = Integer.parseInt(table.getModel().getValueAt(i, 1).toString());
  231.             table.getModel().setValueAt(airplaneCategoryDAO.selectByID(id), i, 1);
  232.         }
  233.     }*/
  234. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement