Boa dia. Devido a um tópico anterior eu consegui pegar os dados do usuário. Criei um botão de edição que, ao selecionar os dados no TableView, os dados são mostrados.
Porém, estou com dificuldades de transportar os dados para o formulário de atualização, em que os dados serão mostrados para o usuário e posteriormente atualizados.
Este é o métodos, (está com o nome de teste porque eu não achei o nome adequado), é o que retorna os dados clicados e abre a tela com o formulário para a edição
public void teset() throws Exception {
// Retorna os dados do usuário selecionado
UsuarioProperty usuarioProperty = tbUsuario.getSelectionModel().getSelectedItem();
String nome = usuarioProperty.getNome();
// abre uma nova instancia para a ediçào dos dados
new ManterUsuario().start(new Stage());
this.executarAcaoFechar();
}
E este é o meu controler para manter o usuário.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.luizpicolo.controller;
import br.com.luizpicolo.application.ManterUsuario;
import br.com.luizpicolo.application.DialogoErro;
import br.com.luizpicolo.application.DialogoInformacao;
import br.com.luizpicolo.application.DialogoSucesso;
import br.com.luizpicolo.application.PesquisaUsuario;
import br.com.luizpicolo.dao.UsuarioDAO;
import br.com.luizpicolo.model.Usuario;
import br.com.luizpicolo.util.Utils;
import java.net.URL;
import java.security.NoSuchAlgorithmException;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.CheckBox;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
/**
*
* @author w3case
*/
public class ManterUsuarioController implements Initializable {
@FXML
private TextField tfCodigo;
@FXML
private TextField tfNome;
@FXML
private TextField tfLogin;
@FXML
private TextField tfSenha;
@FXML
private TextField tfSenha2;
@FXML
private CheckBox cbComanda;
@FXML
private CheckBox cbAdministrador;
private Usuario usuario;
@FXML
// Método para cadastrar o usuario
public void cadastrarUsuario() throws Exception {
// Validar os campos para cadastro do novos usuários
if ("".equals(tfNome.getText())) {
new DialogoInformacao("Campo nome é necessário").start(new Stage());
}
try {
// Cria-se o objeto usuario e atribui ao mesmo um estado
Usuario usuario = new Usuario();
usuario.setNome(tfNome.getText());
usuario.setLogin(Utils.criptografar(tfLogin.getText()));
usuario.setSenha(Utils.criptografar(tfSenha.getText()));
// Verifica-se os valores. Caso os valores sejam falsos, mantem o valor padrão do
// objeto
if (cbComanda.isSelected()) {
usuario.setUtilizadorComanda(1);
}
if (cbAdministrador.isSelected()) {
usuario.setTipo(1);
}
// Cria-se o objeto DAO
UsuarioDAO dao = new UsuarioDAO();
dao.adicionarUsuario(usuario);
// Mensagem de sucesso
new DialogoSucesso("Üsuário Gravado com Sucesso").start(new Stage());
// Limpar Formulário
tfCodigo.clear();
tfNome.clear();
tfLogin.clear();
tfSenha.clear();
tfSenha2.clear();
cbComanda.setSelected(false);
cbAdministrador.setSelected(false);
} catch (NoSuchAlgorithmException ex) {
new DialogoErro("Erro ao gravar usuário.").start(new Stage());
}
}
// Abrir sena de pesquisa
@FXML
public void abrirTelaPesquisaUsuario() {
try {
new PesquisaUsuario().start(new Stage());
this.executarAcaoFechar();
} catch (Exception e) {
System.out.println(e);
}
}
@FXML
public void executarAcaoFechar() {
ManterUsuario.getStage().close();
}
@Override
public void initialize(URL url, ResourceBundle rb) {
}
}
A dúvida é como eu transporte estes dados de um controller para o outro. Ou seja, eu criaria um novo objeto usuário, mas como eu mandaria está mensagem para o outro controller?