Pessoal pensei em fazer um esquema legal... mais não sei direito como fazer....
Estou usando swing com MVC.
Eu realizei validações no controle, porem quebrei o mvc ao inserir um JoptionPane nele... porem preciso que em cada campo não preenchido, seja feito uma lista de mensagem, e exibir na Visão, e deixando os campos em vermelhos... e depois que preencher voltar a cor normal.
Aqui esta meu codigo, se algum puder me ajudar.
Meu DAO:
public class DaoOcorrencia implements IDAO{
public boolean inserirOcorrencia(DomainObject domainObject) {
Ocorrencia ocorrencia = (Ocorrencia) domainObject;
try {
Connection conn = Conexao.getConnection();
//Obtendo a conexão com o BD
//Criando a string com sql a ser executada
String sql = "INSERT INTO ocorrencia VALUES (?,?,?,?,?,?,?)";
//Tratando a sql a ser executada
PreparedStatement pst = conn.prepareStatement(sql);
//Definindo o primeiro parâmetro
pst.setInt(1, ocorrencia.getIDOcorrencia());
pst.setString(2, ocorrencia.getDescricao());
// pst.setString(3,ocorrencia.getVeiculo().getDescricao());
//Definindo o segundo parâmetro
pst.setString(3, ocorrencia.getData());
pst.setString(4, ocorrencia.getServicos().getDescricaoServ());
// pst.setString(5,Servicos.getDescricaoServ());
pst.setString(5, ocorrencia.getVeiculo().getPlaca());
pst.setString(6, ocorrencia.getCliente().getNomecli());
pst.setString(7,ocorrencia.getVeiculo().getNomeVeiculo());
pst.executeUpdate();
pst.close();
//Fechando a conexão
conn.close();
} catch (Exception e) {
return false;
}
return true;
}
public class FachadaOcorrencia implements IFachada {
private boolean validar(Ocorrencia ocorrencia) {
String mensagem = null;
boolean retorno = false;
//criar um list
//List
if (ocorrencia.getServicos().getDescricaoServ().equalsIgnoreCase("")) {
mensagem = "Por favor, não esqueça de preencher o campo tipo de serviço";
retorno = true;
} else if (ocorrencia.getVeiculo().getPlaca().equalsIgnoreCase("")) {
mensagem = "Por favor não esqueça de preencher o campo placa";
retorno = true;
}
else if (ocorrencia.getData().equalsIgnoreCase("")) {
mensagem = "Por favor, não esqueça de preencher o campo data";
retorno = true;
} else if (ocorrencia.getDescricao().equalsIgnoreCase("")) {
mensagem = "Por favor, não esqueça de preencher o campo descrição";
retorno = true;
}else if (ocorrencia.getData().equalsIgnoreCase("")){
mensagem = "Por favor, não esqueca de preencher o campo data";
retorno = true;
}else if (ocorrencia.getCliente().getNomecli().equalsIgnoreCase("")){
mensagem = "Por favor, não esqueca de preencher o campo Nome do Cliente";
retorno = true;
}else if (ocorrencia.getDescricao().equalsIgnoreCase("")){
mensagem = "Por favor, não esqueca de preencher o campo Descrição da Ocorrencia";
retorno = true;
}else if (ocorrencia.getVeiculo().getNomeVeiculo().equalsIgnoreCase("")){
mensagem = "Por favor, não esqueca de preencher o campo Nome do Veiculo";
}
if (retorno != false){
// não pode haver joption pane no controller
JOptionPane.showMessageDialog(null,mensagem);}
return retorno;
}
// public List<String> inserirOcorrencia(DomainObject domainObject) {
public boolean inserirOcorrencia(DomainObject domainObject){
IDAO Dao= new DaoOcorrencia();
Ocorrencia ocorrencia = (Ocorrencia) domainObject;
//Ocorrencia ocorrencia = new Ocorrencia();
if (validar(ocorrencia)!=true) {
Dao.inserirOcorrencia(domainObject);
JOptionPane.showMessageDialog(null, "SALVO");
return false; }
else {
return true;}}
Minha visão (JFrame)
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
Ocorrencia ocorrencia = new Ocorrencia();
Clientee cliente = new Clientee();
ocorrencia.setCliente(cliente);
Servicos servicos = new Servicos();
ocorrencia.setServicos(servicos);
Veiculo veiculo = new Veiculo();
ocorrencia.setVeiculo(veiculo);
ocorrencia.setIDOcorrencia(Integer.parseInt(tfcodigo.getText()));
ocorrencia.setDescricao(tfdescricaoocorrencia.getText());
ocorrencia.setData(tfdata.getText());
ocorrencia.getServicos().setDescricaoServ(tftipodeservico.getText());
ocorrencia.getVeiculo().setPlaca(tfplaca.getText());
ocorrencia.getCliente().setNomecli(tfcliente.getText());
ocorrencia.getVeiculo().setNomeVeiculo(tfveiculo.getText());
IFachada fachadaoco = (IFachada) new FachadaOcorrencia();
fachadaoco.inserirOcorrencia(ocorrencia); // TODO add your handling code here:
}