Advertisement
Guest User

Untitled

a guest
Feb 20th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.46 KB | None | 0 0
  1. package pt.europeia.casa_inteligente.controller;
  2.  
  3. import javafx.fxml.FXML;
  4. import javafx.scene.control.CheckBox;
  5. import javafx.scene.control.Label;
  6. import javafx.scene.control.ListView;
  7. import javafx.scene.control.TextField;
  8. import pt.europeia.casa_inteligente.models.ArCondicionado;
  9. import pt.europeia.casa_inteligente.models.Casa;
  10. import pt.europeia.casa_inteligente.models.Divisao;
  11. import pt.europeia.casa_inteligente.models.Estado;
  12. import pt.europeia.casa_inteligente.models.Utensilios;
  13.  
  14. public class Controller {
  15.  
  16.     @FXML
  17.     private Label estadoUtensilios;
  18.  
  19.     @FXML
  20.     private Label alarme;
  21.  
  22.     @FXML
  23.     private TextField adicionarDivisao;
  24.  
  25.     @FXML
  26.     private CheckBox alarmeCB;
  27.  
  28.     @FXML
  29.     private TextField adicionarUtensilio;
  30.  
  31.     @FXML
  32.     private ListView<Divisao> divisoes;
  33.  
  34.     @FXML
  35.     private ListView<Utensilios> utensilios;
  36.  
  37.     @FXML
  38.     private Label arCondicionado;
  39.  
  40.     @FXML
  41.     private Label olaola;
  42.  
  43.     Casa casa;
  44.  
  45.     @FXML
  46.     /**
  47.      * Método para iniciar o programa
  48.      */
  49.     private void initialize() {
  50.         casa = new Casa();
  51.  
  52.         divisoes.setItems(casa.getDivisoes());
  53.  
  54.         divisoes.getSelectionModel().selectedItemProperty().addListener((obs, oldVal, newVal) -> {
  55.             if (newVal == null) {
  56.                 utensilios.setItems(null);
  57.             } else {
  58.                 utensilios.setItems(newVal.getUtensiliosDivisao());
  59.             }
  60.         });
  61.  
  62.         utensilios.getSelectionModel().selectedItemProperty().addListener((obs, oldVal, newVal) -> {
  63.             if (newVal == null) {
  64.                 estadoUtensilios.setText(null);
  65.             } else {
  66.                 estadoUtensilios.setText(newVal.getEstado().toString());
  67.             }
  68.  
  69.         });
  70.  
  71.     }
  72.  
  73.     @FXML
  74.     /**
  75.      * Método para adicionar uma divisão, em que faz uma verificação caso o
  76.      * campo de texto não esteja preenchido
  77.      */
  78.     private void criarDivisao() {
  79.         if (!adicionarDivisao.getText().equals("")) {
  80.             casa.addDivisao(adicionarDivisao.getText());
  81.             adicionarDivisao.setText(null);
  82.         }
  83.  
  84.     }
  85.  
  86.     @FXML
  87.     /**
  88.      * Método para criar um utensilio quando se clicar no botão "Adicionar
  89.      * Utensilio" e o campo de texto não estiver em branco
  90.      */
  91.     private void criarUtensilio() {
  92.         Divisao divisaoSelecionada = divisoes.getSelectionModel().selectedItemProperty().getValue();
  93.         if (!adicionarUtensilio.getText().equals("")) {
  94.             divisaoSelecionada.addUtensilio(adicionarUtensilio.getText(), Estado.desligado);
  95.             adicionarUtensilio.setText(null);
  96.         }
  97.     }
  98.  
  99.     @FXML
  100.     /**
  101.      * Método que verifica o utensilio selecionado, e verfica também o seu
  102.      * estado de modo a muda-lo para o estado correto quando solicitado
  103.      */
  104.     public void setEstadoUtensilio() {
  105.         Utensilios utensilioSelecionado = utensilios.getSelectionModel().selectedItemProperty().getValue();
  106.         if (utensilioSelecionado != null) {
  107.             if (utensilioSelecionado.getEstado() == Estado.desligado) {
  108.                 utensilioSelecionado.setEstado(Estado.ligado);
  109.                 if (utensilioSelecionado instanceof ArCondicionado) {
  110.                     ArCondicionado ac = (ArCondicionado) utensilioSelecionado;
  111.                     ac.setTemperatura(20);
  112.                     arCondicionado.setText(String.valueOf(ac.getTemperatura()) + " ºC");
  113.                 }
  114.             } else {
  115.                 utensilioSelecionado.setEstado(Estado.desligado);
  116.                 arCondicionado.setText("");
  117.             }
  118.             estadoUtensilios.setText(utensilioSelecionado.getEstado().toString());
  119.         }
  120.     }
  121.  
  122.     @FXML
  123.     /**
  124.      * Método para mudar o estado do alarme e escreve-lo no XML
  125.      */
  126.     private void setAlarme() {
  127.         casa.setAlarme();
  128.         alarme.setText(casa.getAlarmeEstado().toString());
  129.  
  130.     }
  131.  
  132.     @FXML
  133.     /**
  134.      * Método que serve para aumentar a temperatura do ar condicionado quando o botão "+" for pressionado
  135.      */
  136.     private void aumentarTemperatura() {
  137.         Utensilios utensilioSelecionado = utensilios.getSelectionModel().selectedItemProperty().getValue();
  138.         if (utensilioSelecionado instanceof ArCondicionado) {
  139.             ArCondicionado ac = (ArCondicionado) utensilioSelecionado;
  140.             if (ac.getEstado() == Estado.ligado) {
  141.                 ac.upTemperatura();
  142.                 arCondicionado.setText(String.valueOf(ac.getTemperatura()) + " ºC");
  143.             }
  144.         }
  145.     }
  146.  
  147.     @FXML
  148.     /**
  149.      * Método que serve para diminuir a temperatura do ar condicionado quando o botão "-" for pressionado.
  150.      */
  151.     private void diminuirTemperatura() {
  152.         Utensilios utensilioSelecionado = utensilios.getSelectionModel().selectedItemProperty().getValue();
  153.         if (utensilioSelecionado instanceof ArCondicionado) {
  154.             ArCondicionado ac = (ArCondicionado) utensilioSelecionado;
  155.             if (ac.getEstado() == Estado.ligado) {
  156.                 ac.downTemperatura();
  157.                 arCondicionado.setText(String.valueOf(ac.getTemperatura()) + " ºC");
  158.             }
  159.         }
  160.     }
  161.  
  162. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement