package control;
import dao.*;
import domain.*;
import domain.Cidade;
import java.io.*;
import java.net.JarURLConnection;
import java.net.URL;
import javax.swing.JComboBox;
import javax.swing.JTable;
import util.ConexaoException;
import java.sql.*;
import java.util.*;
import javax.swing.JTextField;
import util.Conexao;
import util.MinhaException;
public class ControladoraCidade {
private CidadeDao CidadeDao;
private Vector<UF> Uf;
private UFDao ufDao;
private Vector<Cidade> Cidade;
private Vector<Cidade> vetCidades;
private int marc;
public int getMarc() {
return marc;
}
public void setMarc(int marc) {
this.marc = marc;
}
public Vector<Cidade> getVetCidades() {
return vetCidades;
}
public void setVetCidades(Vector<Cidade> vetCidades) {
this.vetCidades = vetCidades;
}
public ControladoraCidade() {
this.ufDao = FabricaDao.getUFDao("JDBC");
this.CidadeDao = FabricaDao.getCidadeDao("JDBC");
}
public void inserirNovaCidade(Vector linha) throws MinhaException, SQLException, ConexaoException {
Cidade cidade = new Cidade();
UF uf = new UF();
this.atualizarCidade(cidade, uf, linha);
CidadeDao.inserirCidade(cidade);
}
private void atualizarCidade(Cidade ci, UF uf, Vector linha) {
uf.setNomeUF(linha.get(0).toString());
ci.setUF(uf);
ci.setNomeCidade(linha.get(1).toString());
}
private Vector<Cidade> obterCidade(String estado) throws ConexaoException,MinhaException, SQLException {
Cidade = CidadeDao.obterCidade(estado);
return Cidade;
}
private Vector<UF> obterUF() throws MinhaException, SQLException, ConexaoException {
Uf = ufDao.obterUF();
return Uf;
}
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 obterLinhasCidades(UF uf) throws MinhaException, SQLException, ConexaoException{
Vector<Cidade> cidades = this.selecionarTodasCidadesPorEstado(uf);
Vector linhasCidades = new Vector();
for(int i = 0; i < cidades.size(); i++)
{
linhasCidades.addElement(cidades.get(i).getNomeCidade());
}
return linhasCidades;
}
public Vector<Cidade> selecionarTodasCidadesPorEstado(UF uf) throws MinhaException, SQLException, ConexaoException{
CidadeDao cidadeDao = FabricaDao.getCidadeDao("JDBC");
this.vetCidades = cidadeDao.selecionarTodasCidadesPorEstado(uf);
return this.vetCidades;
}
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;
}
public Cidade selecionarCidadePorNome(Cidade cidade) throws MinhaException, SQLException, ConexaoException
{
CidadeDao cidadeDao = FabricaDao.getCidadeDao("JDBC");
Cidade cidadeBuscada = cidadeDao.selecionarCidade(cidade);
return cidadeBuscada;
}
public Cidade selecionarCidadePorCodigo(int codigo) throws MinhaException, SQLException, ConexaoException
{
CidadeDao cidadeDao = FabricaDao.getCidadeDao("JDBC");
Cidade cidadeBuscada = cidadeDao.selecionarCidadePorCodigo(codigo);
return cidadeBuscada;
}
private Vector<Cidade> obterCid() throws MinhaException, SQLException, ConexaoException {
vetCidades = CidadeDao.selecionarTodasCidades();
return vetCidades;
}
@SuppressWarnings("unchecked")
public Vector obterCidade() throws MinhaException, SQLException, ConexaoException {
Vector<Cidade> cidad = obterCid();
Vector linhas = new Vector();
// Montando as linhas
for (int i = 0; i < cidad.size(); i++) {
Cidade cid = cidad.get(i);
linhas.addElement(this.criarLinhaCidade(cid));
}
return linhas;
}
@SuppressWarnings("unchecked")
private Vector criarLinhaCidade(Cidade cidade) {
Vector linha = new Vector();
linha.addElement(cidade.getCodCidade());
linha.addElement(cidade.getUF().getNomeUF());
linha.addElement(cidade.getNomeCidade());
return linha;
}
public void deletarCidade() throws SQLException, ClassNotFoundException, MinhaException, ConexaoException
{
Cidade cidad = this.vetCidades.get(marc);
CidadeDao.removerCidade(cidad);
this.vetCidades.remove(marc);
}
public void alterarCidade(Vector linha) throws ConexaoException, SQLException, ClassNotFoundException, MinhaException {
Cidade cidade = new Cidade();
UF uf = new UF();
this.atualizarCidade(cidade, uf, linha);
cidade.setCodCidade(Integer.parseInt(linha.get(2).toString()));
CidadeDao.alterarCidade(cidade);
}
}