package control; import dao.CidadeDao; import dao.FabricaDao; import dao.OficinaDao; import dao.UFDao; import domain.Cidade; import domain.Endereco; import domain.Oficina; import domain.UF; import util.ConexaoException; import java.sql.*; import java.text.ParseException; import java.util.*; import util.MinhaException; public class ControladoraOficina { private OficinaDao oficinaDao; private Vector<UF> Uf; private Vector<Cidade> Cidade; private UFDao ufDao; private CidadeDao cidadeDao; private Vector<Oficina> vetOficina; private int marc; public int getMarc() { return marc; } public void setMarc(int marc) { this.marc = marc; } public Vector<Oficina> getVetOficina() { return vetOficina; } public void setVetOficina(Vector<Oficina> vetOficina) { this.vetOficina = vetOficina; } public ControladoraOficina() { this.oficinaDao = FabricaDao.getOficinaDao("JDBC"); this.ufDao = FabricaDao.getUFDao("JDBC"); this.cidadeDao = FabricaDao.getCidadeDao("JDBC"); } public void inserirNovoOficina(Vector linha) throws ConexaoException, SQLException, MinhaException { Oficina Oficina = new Oficina(); Cidade ci = new Cidade(); this.atualizarOficina(Oficina, ci, linha); int codCidade = cidadeDao.obterCodCidade(ci.getNomeCidade()); oficinaDao.inserirOficina(Oficina, ci, codCidade); } private void atualizarOficina(Oficina oficina, Cidade ci, Vector linha) { Endereco end = new Endereco(); oficina.setNomeOficina(linha.get(0).toString()); oficina.setCnpj(linha.get(1).toString()); oficina.setTelefone(linha.get(2).toString()); ci.setNomeCidade(linha.get(4).toString()); oficina.setCodCidade(ci); end.setNomeRua(linha.get(5).toString()); end.setNumero(Integer.parseInt(linha.get(6).toString())); end.setNomeBairro(linha.get(7).toString()); oficina.setEndereco(end); } private Vector<Cidade> obterCidade(String estado) throws ConexaoException,SQLException, MinhaException { Cidade = cidadeDao.obterCidade(estado); return Cidade; } private Vector<UF> obterUF() throws MinhaException, SQLException, ConexaoException { Uf = ufDao.obterUF(); return Uf; } private Vector<Cidade> obterUFCidade(int cod) throws MinhaException, SQLException, ConexaoException { Cidade = cidadeDao.obterUFCidade(cod); return Cidade; } public Vector obterLinhasUF() throws MinhaException, SQLException, ConexaoException { Vector<UF> ufs = obterUF(); Vector linhas = new Vector(); // Montando as linhas for (int i = 0; i < ufs.size(); i++) { UF uf = ufs.get(i); //linhas.addElement(this.criarLinhaUF(uf)); linhas.addElement(uf.getUF()); } return linhas; } public Vector obterUFCidadePorCod(int cod) throws MinhaException, SQLException, ConexaoException { Vector<Cidade> ufCidade = obterUFCidade(cod); Vector linhas = new Vector(); // Montando as linhas for (int i = 0; i < ufCidade.size(); i++) { Cidade cid = ufCidade.get(i); linhas.addElement(cid.getUF().getNomeUF()); linhas.addElement(cid.getNomeCidade()); } return linhas; } public Vector preencherComboEstado(String estado) throws ConexaoException, SQLException, MinhaException{ Vector<Cidade> cidades = obterCidade(estado); Vector linhas = new Vector(); // Montando as linhas for (int i = 0; i < cidades.size(); i++) { Cidade cidade = cidades.get(i); //linhas.addElement(this.criarLinhaUF(uf)); linhas.addElement(cidade.getNomeCidade()); } return linhas; } private Vector<Oficina> obterOficina(String texto)throws SQLException, ClassNotFoundException, MinhaException, ConexaoException { this.vetOficina = oficinaDao.obterOficina(texto); return vetOficina; } public Vector obterUFPorCidade(String nome) throws MinhaException, SQLException, ConexaoException { Vector<UF> ufCidade = obterUF(nome); Vector linhas = new Vector(); // Montando as linhas for (int i = 0; i < ufCidade.size(); i++) { UF uf = ufCidade.get(i); linhas.addElement(uf.getNomeUF()); } return linhas; } private Vector<UF> obterUF(String nome) throws MinhaException, SQLException, ConexaoException { Uf = ufDao.obterUF(nome); return Uf; } @SuppressWarnings("unchecked") public Vector obterLinhasOficina(String texto) throws SQLException, ClassNotFoundException, MinhaException, ConexaoException { Vector<Oficina> ofic = this.obterOficina(texto); Vector linhasOficina = new Vector(); for(int i = 0; i < ofic.size(); i++) { Oficina oficin = ofic.get(i); linhasOficina.addElement(this.criadorLinhaOficina(oficin)); } return linhasOficina; } @SuppressWarnings({"unchecked"}) public Vector criadorLinhaOficina(Oficina ofi) { Vector linha = new Vector(); linha.addElement(ofi.getCodOficina()); linha.addElement(ofi.getCodCidade().getNomeCidade()); linha.addElement(ofi.getNomeOficina()); linha.addElement(ofi.getCnpj()); linha.addElement(ofi.getTelefone()); linha.addElement(ofi.getEndereco().getNomeRua()); linha.addElement(ofi.getEndereco().getNumero()); linha.addElement(ofi.getEndereco().getNomeBairro()); return linha; } public void alterarOficina(Vector linha) throws ConexaoException, SQLException, ParseException, ClassNotFoundException, MinhaException { Oficina ofic = new Oficina(); Cidade ci = new Cidade(); this.atualizarOficina(ofic, ci, linha); ofic.setCodOficina(Integer.parseInt(linha.get(8).toString())); ci.setCodCidade(Integer.parseInt(linha.get(9).toString())); ofic.setCodCidade(ci); oficinaDao.alterarOficina(ofic); } public void deletarOficina() throws SQLException, ClassNotFoundException, MinhaException, ConexaoException { Oficina ofi = this.vetOficina.get(marc); oficinaDao.removerOficina(ofi); this.vetOficina.remove(marc); } public Vector<Oficina> selecionarTodasOficinas () throws MinhaException, SQLException, ConexaoException { this.vetOficina = oficinaDao.selecionarTodasOficinas(); return this.vetOficina; } public Vector obterOficinas() throws MinhaException, SQLException, ConexaoException { Vector<Oficina> ofic = this.selecionarTodasOficinas(); Vector oficinasBuscadas = new Vector(); for(int i = 0; i < ofic.size(); i++) oficinasBuscadas.add(ofic.get(i).getNomeOficina()); return oficinasBuscadas; } }