package gcom.gui.util.tabelaauxiliar.unidade;
import gcom.atendimentopublico.ordemservico.Material;
import gcom.gui.Funcionalidade;
import gcom.gui.util.tabelaauxiliar.abreviada.DadosTelaTabelaAuxiliarAbreviada;
import gcom.seguranca.acesso.Operacao;
import gcom.util.HibernateUtil;
import gcom.util.SistemaException;
import gcom.util.tabelaauxiliar.TabelaAuxiliar;
import gcom.util.tabelaauxiliar.unidade.TabelaAuxiliarUnidade;
import java.util.HashMap;
/**
* Descri��o da classe
*
* @author R�mulo Aur�lio
* @date 02/08/2006
*/
public class DadosTelaTabelaAuxiliarUnidade extends
DadosTelaTabelaAuxiliarAbreviada {
private static HashMap telas = new HashMap();
private static HashMap configuracaoParametrosTelas = new HashMap();
/**
* Este m�todo busca um map de funcionalidades cadastradas e cria uma
* inst�ncia da funcionalidade para ser usada na Tabela Auxiliar
*
* @param nome
* @return
*/
public static DadosTelaTabelaAuxiliarUnidade obterDadosTelaTabelaAuxiliarAbreviada(
String nome) {
System.out.println("-----------Adicionando itens");
// Verifica se a funcionalidade desejada j� foi instanciada e j� est� no
// cache
if (!telas.containsKey(nome)) {
String[] configuracaoTela = (String[]) configuracaoParametrosTelas
.get(nome);
try {
// Cria a inst�ncia do objeto DadosTelaTabelaAuxiliar
DadosTelaTabelaAuxiliarUnidade dadosTela = new DadosTelaTabelaAuxiliarUnidade(
configuracaoTela[1], (TabelaAuxiliarUnidade) Class
.forName(configuracaoTela[0]).newInstance(),
configuracaoTela[2], nome);
// Coloca a inst�ncia criada no map que representa o cache com
// as inst�ncia j� criadas
telas.put(nome, dadosTela);
return dadosTela;
} catch (ClassNotFoundException ex) {
throw new SistemaException();
} catch (IllegalAccessException ex) {
throw new SistemaException();
} catch (InstantiationException ex) {
throw new SistemaException();
}
} else {
// Se o a funcionalidade j� estiver no cache, ent�o ela � retornada
// sem a necessidade de passar pelo m�todo
return (DadosTelaTabelaAuxiliarUnidade) telas.get(nome);
}
}
static {
configuracaoParametrosTelas.put("operacao", new String[] {
Operacao.class.getName(), "Opera��o",
Funcionalidade.TELA_OPERACAO });
configuracaoParametrosTelas.put("material", new String[] {
Material.class.getName(), "Material",
Funcionalidade.TELA_MATERIAL });
}
/**
* Construtor da classe DadosTelaTabelaAuxiliarAbreviada
*
* @param titulo
* Descri��o do par�metro
* @param tabela
* Descri��o do par�metro
* @param funcionalidadeTabelaAux
* Descri��o do par�metro
*/
protected DadosTelaTabelaAuxiliarUnidade(String titulo,
TabelaAuxiliar tabela, String funcionalidadeTabelaAux,
String nomeParametroFuncionalidade) {
super(titulo, tabela, funcionalidadeTabelaAux,
nomeParametroFuncionalidade);
}
/**
* < <Descri��o do m�todo>>
*
* @param dados
* Descri��o do par�metro
*/
public static void adicionarDadosTela(DadosTelaTabelaAuxiliarAbreviada dados) {
DadosTelaTabelaAuxiliarAbreviada.adicionarDadosTela(dados);
}
/**
* Retorna o valor de dadosTela
*
* @param nome
* Descri��o do par�metro
* @return O valor de dadosTela
*/
public static DadosTelaTabelaAuxiliarAbreviada getDadosTela(String nome) {
return (DadosTelaTabelaAuxiliarAbreviada) DadosTelaTabelaAuxiliarAbreviada.getDadosTela(nome);
}
/**
* M�todo sobrescrito que retorna o valor de funcionalidadeTabelaAuxManter
*
* @return O valor de funcionalidadeTabelaAuxManter
*/
public String getFuncionalidadeTabelaAuxManter() {
return super.getFuncionalidadeTabelaAuxManter().replaceAll(
Funcionalidade.TABELA_AUXILIAR_MANTER,
Funcionalidade.TABELA_AUXILIAR_ABREVIADA_MANTER);
}
/**
* M�todo sobrescrito que retorna o valor de funcionalidadeTabelaAuxManter
*
* @return O valor de funcionalidadeTabelaAuxManter
*/
public String getFuncionalidadeTabelaAuxInserir() {
return super.getFuncionalidadeTabelaAuxInserir().replaceAll(
Funcionalidade.TABELA_AUXILIAR_INSERIR,
Funcionalidade.TABELA_AUXILIAR_ABREVIADA_INSERIR);
}
/**
* Retorna o valor de tamanhoMaximoCampo
*
* @return O valor de tamanhoMaximoCampo
*/
public int getTamanhoMaximoDescricaoAbreviada() {
return HibernateUtil.getColumnSize(this.getTabelaAuxiliar().getClass(),
"descricaoAbreviada");
}
}