package controleEstoque.controladores;
import controleEstoque.arquivos.Arquivo;
import controleEstoque.arquivos.ControlCarregaArquivos;
import controleEstoque.arquivos.ControlGravaArquivos;
import controleEstoque.entidades.Fornecedor;
import controleEstoque.estruturaDados.ListaFornecedor;
import controleEstoque.estruturaDados.No;
import controleEstoque.formularios.FmrAdicionaFornecedor;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JComboBox;
import javax.swing.JFrame;
/**
* @author Eduardo Lacerda
* Data: Jun 2, 2012
*/
public class ControlFornecedor {
ListaFornecedor listaFornecedor = new ListaFornecedor();
/**
* Construtor da classe, onde gera a lista de fornecedores contidas no arquivo de texto salvo.
*/
public ControlFornecedor() {
listaFornecedor = obtemListaFornecedor();
}
/**
* Chama a tela de fornecedor
*/
public void chamaTelaFornecedor(){
FmrAdicionaFornecedor frmAdicionaFornecedor = new FmrAdicionaFornecedor();
frmAdicionaFornecedor.setLocationRelativeTo(null);
frmAdicionaFornecedor.setVisible(true);
frmAdicionaFornecedor.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
/**
* Obtem a lista atual de fornecedores
* @return Lista atual de fornecedores
*/
public ListaFornecedor obtemListaFornecedor(){
File file = new File("Fornecedor/fornecedor.txt");
ControlCarregaArquivos controlCarrega;
try {
controlCarrega = new ControlCarregaArquivos(Arquivo.FORNECEDOR);
String arquivo[] = controlCarrega.retornaStringArquivo();
Fornecedor[] fornecedor;
if(arquivo != null){
fornecedor = new Fornecedor[arquivo.length];
int i = 0, j = 0, h = 0;
while(i < fornecedor.length){
switch(h){
case 0:
fornecedor[j] = new Fornecedor();
fornecedor[j].setNome(arquivo[i]);
h++;
break;
case 1:
fornecedor[j].setTelefone(arquivo[i]);
listaFornecedor.adiciona(fornecedor[j]);
h = 0;
j++;
break;
}
i++;
}
}
} catch (IOException ex) {
Logger.getLogger(ControlFornecedor.class.getName()).log(Level.SEVERE, null, ex);
}
return this.listaFornecedor;
}
/**
* Retorna para um JComboBox os nomes de cada fornecedor cadastrado
* @param cbFornecedor JComboBox que irá receber os fornecedores
* @return JComboBox contendo o nome dos fornecedores
*/
public JComboBox obtemListaFornecedor(JComboBox cbFornecedor){
listaFornecedor = new ListaFornecedor();
listaFornecedor = obtemListaFornecedor();
No aux = listaFornecedor.getLista();
int i = 0;
cbFornecedor.removeAllItems();
while(aux != null){
Fornecedor forn = (Fornecedor) aux.getObjeto();
cbFornecedor.insertItemAt(forn.getNome(), i);
i++;
aux = aux.getProx();
}
return cbFornecedor;
}
/**
* Pesquisa um fornecedor pelo nome.
* @param fornecedor nome do fornecedor
* @return Objeto contendo os dados do respectivo fornecedor
*/
public Fornecedor pesquisaFornecedor(String fornecedor){
ListaFornecedor listaAux = obtemListaFornecedor();
No aux = listaAux.getLista();
Fornecedor forn;
while(aux != null){
forn = (Fornecedor) aux.getObjeto();
if(forn.getNome().equals(fornecedor)){
return forn;
}
}
return new Fornecedor();
}
/**
* Adiciona um novo fornecedor a lista de fornecedores
* @param fornecedor
*/
public void adiciona(Fornecedor fornecedor){
listaFornecedor.adiciona(fornecedor);
criaArquivoFornecedor();
}
/**
* Cria um arquivo com os fornecedores da Lista.
*/
private void criaArquivoFornecedor(){
ControlGravaArquivos controlGravaArquivos = new ControlGravaArquivos(Arquivo.FORNECEDOR);
controlGravaArquivos.criaArquivoFornecedor(listaFornecedor);
}
}