package gcom.gui.util.tabelaauxiliar.indicador; import gcom.cadastro.localidade.QuadraPerfil; import gcom.gui.Funcionalidade; import gcom.gui.util.tabelaauxiliar.DadosTelaTabelaAuxiliar; import gcom.util.SistemaException; import gcom.util.tabelaauxiliar.TabelaAuxiliarAbstrata; import gcom.util.tabelaauxiliar.indicador.TabelaAuxiliarIndicador; import java.util.HashMap; /** * @author R�mulo Aur�lio * */ public class DadosTelaTabelaAuxiliarIndicador extends DadosTelaTabelaAuxiliar { private String titulo; private TabelaAuxiliarAbstrata tabela; private String funcionalidadeTabelaAux; // private int tamanhoMaximoCampo; private String nomeParametroFuncionalidade; private static HashMap<String,DadosTelaTabelaAuxiliar> telas = new HashMap<String,DadosTelaTabelaAuxiliar>(); private static HashMap<String,String[]> configuracaoParametrosTelas = new HashMap<String,String[]>(); /** * Construtor da classe DadosTelaTabelaAuxiliar * * @param titulo * Descri��o do par�metro * @param tabela * Descri��o do par�metro * @param funcionalidadeTabelaAuxManter * Descri��o do par�metro */ protected DadosTelaTabelaAuxiliarIndicador(String titulo, TabelaAuxiliarAbstrata tabela, String funcionalidadeTabelaAux, String nomeParametroFuncionalidade) { super(nomeParametroFuncionalidade, tabela, nomeParametroFuncionalidade, nomeParametroFuncionalidade); this.titulo = titulo; this.tabela = tabela; this.funcionalidadeTabelaAux = funcionalidadeTabelaAux; this.nomeParametroFuncionalidade = nomeParametroFuncionalidade; } /** * 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 DadosTelaTabelaAuxiliar obterDadosTelaTabelaAuxiliar( 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 = configuracaoParametrosTelas.get(nome); try { // Cria a inst�ncia do objeto DadosTelaTabelaAuxiliar DadosTelaTabelaAuxiliarIndicador dadosTela = new DadosTelaTabelaAuxiliarIndicador( configuracaoTela[1], (TabelaAuxiliarIndicador) 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(); } } // Se o a funcionalidade j� estiver no cache, ent�o ela � retornada // sem a necessidade de passar pelo m�todo return telas.get(nome); } static { configuracaoParametrosTelas.put("quadraPerfil", new String[] { QuadraPerfil.class.getName(), "Perfil Quadra", Funcionalidade.TELA_QUADRA_PERFIL }); } /** * @return Returns the nomeParametroFuncionalidade. */ public String getNomeParametroFuncionalidade() { return nomeParametroFuncionalidade; } /** * @param nomeParametroFuncionalidade The nomeParametroFuncionalidade to set. */ public void setNomeParametroFuncionalidade( String nomeParametroFuncionalidade) { this.nomeParametroFuncionalidade = nomeParametroFuncionalidade; } /** * @return Returns the tabela. */ public TabelaAuxiliarAbstrata getTabela() { return tabela; } /** * @param tabela The tabela to set. */ public void setTabela(TabelaAuxiliarAbstrata tabela) { this.tabela = tabela; } /** * @return Returns the titulo. */ public String getTitulo() { return titulo; } /** * @param titulo The titulo to set. */ public void setTitulo(String titulo) { this.titulo = titulo; } /** * @return Returns the funcionalidadeTabelaAux. */ public String getFuncionalidadeTabelaAux() { return funcionalidadeTabelaAux; } /** * Retorna o valor de tabelaAuxiliar * * @return O valor de tabelaAuxiliar */ public TabelaAuxiliarAbstrata getTabelaAuxiliarAbstrata() { return tabela; } /** * @param funcionalidadeTabelaAux The funcionalidadeTabelaAux to set. */ public void setFuncionalidadeTabelaAux(String funcionalidadeTabelaAux) { this.funcionalidadeTabelaAux = funcionalidadeTabelaAux; } /** * Retorna o valor de funcionalidadeTabelaAuxManter * * @return O valor de funcionalidadeTabelaAuxManter */ public String getFuncionalidadeTabelaIndicadorManter() { return Funcionalidade.TABELA_AUXILIAR_INDICADOR_MANTER + funcionalidadeTabelaAux; } /** * Retorna o valor de funcionalidadeTabelaAuxManter * * @return O valor de funcionalidadeTabelaAuxManter */ public String getFuncionalidadeTabelaIndicadorFiltrar() { return Funcionalidade.TABELA_AUXILIAR_INDICADOR_FILTRAR + funcionalidadeTabelaAux; } /** * Retorna o valor de funcionalidadeTabelaAuxManter * * @return O valor de funcionalidadeTabelaAuxManter */ public String getFuncionalidadeTabelaIndicadorInserir() { return Funcionalidade.TABELA_AUXILIAR_INDICADOR_INSERIR + funcionalidadeTabelaAux; } }