package aplicacao;
import java.util.List;
import java.util.Scanner;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.swing.JOptionPane;
import util.MyClassException;
import util.ServicoJNDI;
import beanentidade.UnidadeMedida;
import beansessao.UnidadeMedidaDAO;
import beansessao.UnidadeMedidaDAOImpl;
public class PrincipalResiduo {
Context ctx = null;
Scanner sc = new Scanner(System.in);
UnidadeMedidaDAO dao = null;
private void inicializar() throws NamingException {
ctx = ServicoJNDI.getInitialContext();
dao =(UnidadeMedidaDAO) ctx.lookup("residuoejbear/UnidadeMedidaDAOImpl/remote");
}
public static void main(String[] args) {
new PrincipalResiduo().processar();
}
public void processar() {
try {
inicializar();
int opcao = 0;
while (true) {
try {
System.out.println("\n\n");
System.out.println("_____________________________");
System.out.println("1 - Criar unidade");
System.out.println("2 - Remover unidade");
System.out.println("3 - Listar unidade");
System.out.println("4 - Retorna unidade");
System.out.println("9 - Fim");
System.out.println("_____________________________");
System.out.print("Entre com uma op��o: ");
opcao = sc.nextInt();
switch (opcao) {
case 1:
criarUnidade();
break;
case 2:
removerUnidade();
break;
case 3:
listarUnidade();
break;
case 4:
retornaUnidade();
break;
case 9:
System.exit(0);
default:
System.out.println("\nOp��o inv�lida. Reentre\n");
}
} catch (MyClassException m) {
System.out.println("\n\nMensagem: " + m.getMessage());
}
}
} catch (Exception e) {
System.out.println("Problemas com a inicializa��o do servidor.");
e.printStackTrace();
}
}
private void listarUnidade() throws MyClassException {
List<UnidadeMedida> listaUnidade = dao.getLista();
System.out.println("\nUnidades cadatradas:");
for (int i = 0; i < listaUnidade.size(); i++) {
imprimirUnidade(listaUnidade.get(i));
}
}
private void criarUnidade() throws MyClassException {
UnidadeMedida un = new UnidadeMedida();
un.setAbreviacao("m");
un.setDescricao("Metros");
dao.incluir(un);
}
private void removerUnidade() throws MyClassException {
System.out.print("Digite o codigo da unidade:");
int codigo = sc.nextInt();
dao.excluir(codigo);
}
private void imprimirUnidade(UnidadeMedida unidade) {
System.out.println("Codigo unidade: " + unidade.getCodigo());
System.out.println("Descri��o: " + unidade.getDescricao());
System.out.println("Abrevia��o: " + unidade.getAbreviacao());
}
private void retornaUnidade() throws MyClassException {
try {
int id = Integer.parseInt(JOptionPane
.showInputDialog("Digite o c�digo da unidade:"));
UnidadeMedida un = dao.obter(id);
if (un != null) {
imprimirUnidade(un);
}
} catch (Exception e) {
// TODO: handle exception
}
}
}