Advertisement
MarceloSousa

Fx

Nov 23rd, 2014
446
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.75 KB | None | 0 0
  1. package view;
  2.  
  3. import entidades.Veiculo;
  4. import java.net.URL;
  5. import java.util.ResourceBundle;
  6. import java.util.regex.Pattern;
  7. import javafx.collections.ObservableList;
  8. import javafx.event.ActionEvent;
  9. import javafx.fxml.FXML;
  10. import javafx.fxml.Initializable;
  11. import javafx.scene.control.Button;
  12. import javafx.scene.control.CheckBox;
  13. import javafx.scene.control.ComboBox;
  14. import javafx.scene.control.Label;
  15. import javafx.scene.control.TableView;
  16. import javafx.scene.control.TextField;
  17. import javafx.scene.input.KeyCode;
  18. import javafx.scene.input.KeyEvent;
  19. import javafx.scene.input.MouseEvent;
  20. import javafx.scene.layout.AnchorPane;
  21. import model.util.MaskFieldUtil;
  22. import model.util.Util;
  23. import org.controlsfx.control.action.Action;
  24. import org.controlsfx.dialog.Dialogs;
  25.  
  26. public class TelaParceirosController implements Initializable, ControlledScreen {
  27.  
  28.     ScreensController myController;
  29.  
  30.     @FXML
  31.     private ComboBox cmbTipoPessoa,
  32.             cmbUF,
  33.             cmbPorte;
  34.  
  35.     @FXML
  36.     private CheckBox chkAtivo;
  37.  
  38.     @FXML
  39.     private Label lblDescricao,
  40.             lblCPF_CNPJ,
  41.             lblBairro,
  42.             lblCEP,
  43.             lblCidade,
  44.             lblComplemento,
  45.             lblEmail,
  46.             lblFone1,
  47.             lblFone2,
  48.             lblLogradouro,
  49.             lblNumero,
  50.             lblPlaca,
  51.             lblUF,
  52.             lblVeiculo;
  53.  
  54.     @FXML
  55.     private TextField txtCodigo,
  56.             txtNome,
  57.             ftxtCPF_CNPJ,
  58.             txtLogradouro,
  59.             txtComplemento,
  60.             txtNumero,
  61.             txtBairro,
  62.             ftxtCEP,
  63.             txtCidade,
  64.             txtFone1,
  65.             txtFone2,
  66.             txtEmail,
  67.             txtDescricao,
  68.             txtPlaca;
  69.  
  70.     @FXML
  71.     private Button btnIncluirParceiros,
  72.             btnNovoParceiros,
  73.             btnPesquisar,
  74.             btnLimparParceiros,
  75.             btnIncluirVeiculo,
  76.             btnRemoverVeiculo,
  77.             btnLimparCampos;
  78.  
  79.     @FXML
  80.     private TableView tblVeiculos,
  81.             tblPesquisa;
  82.  
  83.     @FXML
  84.     private AnchorPane anchorPanePesquisa;
  85.  
  86.     @Override
  87.     public void initialize(URL url, ResourceBundle rb) {
  88.         // TODO
  89.     }
  90.  
  91.     public void setScreenParent(ScreensController screenParent) {
  92.         myController = screenParent;
  93.         cmbTipoPessoa.getSelectionModel().select(0);
  94.         txtCidade.setText("GOIÂNIA");
  95.         cmbUF.getSelectionModel().select(8);
  96.         cmbPorte.getSelectionModel().select(1);
  97.     }
  98.  
  99.     //volta para a tela principal
  100.     @FXML
  101.     private void keyReleased(KeyEvent keyEvent) {
  102.         if (keyEvent.getCode() == KeyCode.ESCAPE) {
  103.             Util.voltar(myController);
  104.         }
  105.     }
  106.  
  107.     @FXML
  108.     private void onMouseEntered(MouseEvent mouseEvent) {
  109.         Button b = (Button) mouseEvent.getSource();
  110.  
  111.         if (null != b.getText()) switch (b.getText()) {
  112.             case "Novo":
  113.                 lblDescricao.setText("Habilita campos para cadastro de novo cliente.");
  114.                 break;
  115.             case "Limpar":
  116.                 lblDescricao.setText("Limpa os campos e volta todos para o estado inicial.");
  117.                 break;
  118.             case "Salvar":
  119.                 lblDescricao.setText("Valida as alterações e salva o registro.");
  120.                 break;
  121.             case "Deletar":
  122.                 lblDescricao.setText("Valida as alterações e salva o registro.");
  123.                 break;
  124.             case "Incluir":
  125.                 lblDescricao.setText("Valida as informações e inclui o novo registro.");
  126.                 break;
  127.             case "Voltar":
  128.                 lblDescricao.setText("Volta para a tela principal.");
  129.                 break;
  130.         }
  131.         mouseEvent.consume();
  132.     }
  133.  
  134.     @FXML
  135.     private void onMouseExited(MouseEvent mouseEvent) {
  136.         lblDescricao.setText(null);
  137.     }
  138.  
  139.     @FXML
  140.     private void btnVoltarOnAction(ActionEvent event) {
  141.         clear();
  142.         elementChangeStatus(false);
  143.         Util.voltar(myController);
  144.     }
  145.  
  146.     //alterna o nome da label entre cpf e cnpj de acordo com a seleção na combo
  147.     @FXML
  148.     private void cmbTipoPessoaOnAction(ActionEvent event) {
  149.         if (cmbTipoPessoa.getSelectionModel().getSelectedIndex() == 1) {
  150.             ftxtCPF_CNPJ.setText(null);
  151.             lblCPF_CNPJ.setText("CNPJ");
  152.         } else {
  153.             ftxtCPF_CNPJ.setText(null);
  154.             lblCPF_CNPJ.setText("CPF");
  155.         }
  156.     }
  157.  
  158.     //mostra o anchorpane de pesquisa
  159.     //faz as consultas no banco de acordo com os valores preenchidos
  160.     @FXML
  161.     private void btnPesquisarOnAction(ActionEvent event) {
  162.         Util.pesquisar(true, anchorPanePesquisa);
  163.         //implementar consultas
  164.     }
  165.  
  166.     //esconde o anchorpane de pesquisa
  167.     @FXML
  168.     private void btnCancelarPesquisaOnAction(ActionEvent event) {
  169.         Util.pesquisar(false, anchorPanePesquisa);
  170.     }
  171.  
  172.     //habilita os elementos para inserção
  173.     //limpa os campos para o caso de haver algum texto inadequado escrito
  174.     //foca no textfield nome do cliente
  175.     //desabilita o acesso ao textfield codigo
  176.     //aplica máscara ao campo cnpj cpf
  177.     @FXML
  178.     private void btnNovoParceirosOnAction(ActionEvent event) {
  179.         elementChangeStatus(true);
  180.         clear();
  181.         txtNome.requestFocus();
  182.         txtCodigo.setEditable(false);
  183.         MaskFieldUtil.cpfCnpjField(ftxtCPF_CNPJ);
  184.     }
  185.  
  186.     //invoca o método clear que volta os valores dos elementos para seus padrões
  187.     //e muda o status do cenário para o inicial (habilita pesquisa de clientes)
  188.     @FXML
  189.     private void btnLimparParceirosOnAction(ActionEvent event) {
  190.         clear();
  191.         elementChangeStatus(false);
  192.     }
  193.  
  194.     @FXML
  195.     private void btnIncluirParceirosOnAction(ActionEvent event) {
  196.        
  197.     }
  198.  
  199.     //só fica habilitado caso haja retorno de uma consulta
  200.     @FXML
  201.     private void btnDeletarParceirosOnAction(ActionEvent event) {
  202.        
  203.     }
  204.  
  205.     //adiciona veículo da tableview
  206.     @FXML
  207.     private void addVeiculo(ActionEvent event) {
  208.         try {
  209.             String placa = txtPlaca.getText().toUpperCase(),
  210.                     descricao = txtDescricao.getText().toUpperCase();
  211.  
  212.             Pattern p = Pattern.compile("[a-zA-Z]{3}-[0-9]{4}");
  213.             boolean valida = p.matcher(placa).matches();
  214.  
  215.             if (descricao == null || placa == null || !valida) {
  216.                 Action erro = Dialogs.create()
  217.                         .title("Atenção")
  218.                         .masthead("Informe valores válidos")
  219.                         .message("Possíveis erros:\n\t• Veículo ou placa não informado"
  220.                                 + "\n\t• Placa fora do padrão \"AAA-0000\"")
  221.                         .showWarning();
  222.             } else if (valida) {
  223.             }
  224.         } catch (Exception e) {
  225.             e.getMessage();
  226.         }
  227.     }
  228.  
  229.     //remove veículo da tableview
  230.     @FXML
  231.     private void removeVeiculo() {
  232.         ObservableList<Veiculo> data = tblVeiculos.getItems();
  233.         int index = tblVeiculos.getSelectionModel().getFocusedIndex();
  234.         try {
  235.             data.remove(index);
  236.         } catch (Exception e) {
  237.             try {
  238.                 data.remove(0);
  239.             } catch (Exception ex) {
  240.                 Action response = Dialogs.create()
  241.                         .title("Atenção!")
  242.                         .masthead("Lista vazia")
  243.                         .showWarning();
  244.             }
  245.         }
  246.     }
  247.  
  248.     //limpa apenas os campos Veículo, Placa e seta a combo para o valor 2 (carro)
  249.     @FXML
  250.     private void limpaCamposVeiculo() {
  251.         txtDescricao.setText(null);
  252.         txtPlaca.setText(null);
  253.         cmbPorte.getSelectionModel().select(1);
  254.     }
  255.  
  256.     //muda a propriedade disabled de acordo com o valor booleano do parâmetro
  257.     private void elementChangeStatus(boolean x) {
  258.         btnPesquisar.setDisable(x);
  259.         btnNovoParceiros.setDisable(x);
  260.         btnLimparParceiros.setDisable(!x);
  261.         btnIncluirParceiros.setDisable(!x);
  262.         chkAtivo.setDisable(!x);
  263.         lblBairro.setDisable(!x);
  264.         lblCEP.setDisable(!x);
  265.         lblCidade.setDisable(!x);
  266.         lblComplemento.setDisable(!x);
  267.         lblEmail.setDisable(!x);
  268.         lblFone1.setDisable(!x);
  269.         lblFone2.setDisable(!x);
  270.         lblLogradouro.setDisable(!x);
  271.         lblNumero.setDisable(!x);
  272.         lblPlaca.setDisable(!x);
  273.         lblUF.setDisable(!x);
  274.         lblVeiculo.setDisable(!x);
  275.         txtLogradouro.setDisable(!x);
  276.         txtComplemento.setDisable(!x);
  277.         txtNumero.setDisable(!x);
  278.         txtBairro.setDisable(!x);
  279.         ftxtCEP.setDisable(!x);
  280.         txtCidade.setDisable(!x);
  281.         txtFone1.setDisable(!x);
  282.         txtFone2.setDisable(!x);
  283.         txtEmail.setDisable(!x);
  284.         txtDescricao.setDisable(!x);
  285.         txtPlaca.setDisable(!x);
  286.         tblVeiculos.setDisable(!x);
  287.         cmbUF.setDisable(!x);
  288.         cmbPorte.setDisable(!x);
  289.         btnIncluirVeiculo.setDisable(!x);
  290.         btnRemoverVeiculo.setDisable(!x);
  291.         btnLimparCampos.setDisable(!x);
  292.     }
  293.  
  294.     //faz com que os campos voltem ao valor padrão inicial
  295.     private void clear() {
  296.         txtBairro.setText(null);
  297.         ftxtCEP.setText(null);
  298.         cmbTipoPessoa.getSelectionModel().select(0); //Pessoa Física
  299.         ftxtCPF_CNPJ.setText(null);
  300.         cmbUF.getSelectionModel().select(8); //UF => GO
  301.         txtCidade.setText("GOIÂNIA");
  302.         txtComplemento.setText(null);
  303.         txtEmail.setText(null);
  304.         txtFone1.setText(null);
  305.         txtFone2.setText(null);
  306.         txtLogradouro.setText(null);
  307.         txtNumero.setText(null);
  308.         cmbPorte.getSelectionModel().select(1); //Porte 2 (carro)
  309.         txtPlaca.setText(null);
  310.         txtDescricao.setText(null);
  311.     }
  312. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement