}
List atributosLivres = new ArrayList();
//Percorrer grupo de atributos para selecionar os atributos livres...
for(Iterator it = sgas.iterator(); it.hasNext();){
SisGrupoAtributoSga grupoAtributo = (SisGrupoAtributoSga) it.next();
String nomeCampo = "a" + grupoAtributo.getCodSga().toString();
String tipoCampo = grupoAtributo.getSisTipoExibicGrupoSteg().getCodSteg().toString();
//Se for CheckBox ou RadioButton ou ListBox, n�o gravar InformacaoIettSatb
//Alterado por Jos� Andr� Fernandes, foi acrescentado ListBox
if(tipoCampo.equals(SisTipoExibicGrupoDao.CHECKBOX) || tipoCampo.equals(SisTipoExibicGrupoDao.LISTBOX)){
String[] atributos = request.getParameterValues(nomeCampo);
int numAtributos = 0;
if (atributos != null) {
numAtributos = atributos.length;
}
for(int i = 0; i < numAtributos; i++){
//N�o seto todos os outros campos, pois eles ser�o setados depois de gravar o item.
ItemEstruturaSisAtributoIettSatb atributoLivre = new ItemEstruturaSisAtributoIettSatb();
atributoLivre.setDataUltManutencao(Data.getDataAtual());
atributoLivre.setUsuarioUsu(((ecar.login.SegurancaECAR) request.getSession().getAttribute("seguranca")).getUsuario());
atributoLivre.setItemEstruturaIett(itemEstrutura);
atributoLivre.setSisAtributoSatb((SisAtributoSatb) this.buscar(SisAtributoSatb.class, Long.valueOf(atributos[i])));
atributoLivre.setFuncao(funcao);
atributoLivre.atribuirPKPai();
atributosLivres.add(atributoLivre);
}
}
//Se for Radio Button...
else if(tipoCampo.equals(SisTipoExibicGrupoDao.RADIO_BUTTON) || tipoCampo.equals(SisTipoExibicGrupoDao.COMBOBOX)){
if(!"".equals(Pagina.getParamStr(request, nomeCampo))){
//N�o seto todos os outros campos, pois eles ser�o setados depois de gravar o item.
ItemEstruturaSisAtributoIettSatb atributoLivre = new ItemEstruturaSisAtributoIettSatb();
atributoLivre.setDataUltManutencao(Data.getDataAtual());
atributoLivre.setUsuarioUsu(((ecar.login.SegurancaECAR) request.getSession().getAttribute("seguranca")).getUsuario());
atributoLivre.setItemEstruturaIett(itemEstrutura);
atributoLivre.setSisAtributoSatb((SisAtributoSatb) this.buscar(SisAtributoSatb.class, Long.valueOf(Pagina.getParamStr(request, nomeCampo))));
atributoLivre.setFuncao(funcao);
atributoLivre.atribuirPKPai();
atributosLivres.add(atributoLivre);
}
}
//Se for TEXT Field
else if (tipoCampo.equals(SisTipoExibicGrupoDao.TEXT) || tipoCampo.equals(SisTipoExibicGrupoDao.TEXTAREA)) {
// System.out.println(Pagina.getParamStr(request, atributosLivres));
if(!"".equals(Pagina.getParamStr(request, nomeCampo))){
//N�o seto todos os outros campos, pois eles ser�o setados depois de gravar o item.
ItemEstruturaSisAtributoIettSatb atributoLivre = new ItemEstruturaSisAtributoIettSatb();
atributoLivre.setDataUltManutencao(Data.getDataAtual());
atributoLivre.setUsuarioUsu(((ecar.login.SegurancaECAR) request.getSession().getAttribute("seguranca")).getUsuario());
atributoLivre.setItemEstruturaIett(itemEstrutura);
atributoLivre.setSisAtributoSatb((SisAtributoSatb) grupoAtributo.getSisAtributoSatbs().iterator().next());
atributoLivre.setInformacao(Pagina.getParamStr(request, nomeCampo));
atributoLivre.setFuncao(funcao);
atributoLivre.atribuirPKPai();
atributosLivres.add(atributoLivre);
}
} else if (tipoCampo.equals(SisTipoExibicGrupoDao.IMAGEM)) {
if(!"".equals(Pagina.getParamStr(request, nomeCampo))){
String pathRaiz = request.getContextPath();
//N�o seto todos os outros campos, pois eles ser�o setados depois de gravar o item.
ItemEstruturaSisAtributoIettSatb atributoLivre = new ItemEstruturaSisAtributoIettSatb();
atributoLivre.setDataUltManutencao(Data.getDataAtual());
atributoLivre.setUsuarioUsu(((ecar.login.SegurancaECAR) request.getSession().getAttribute("seguranca")).getUsuario());
atributoLivre.setItemEstruturaIett(itemEstrutura);
atributoLivre.setSisAtributoSatb((SisAtributoSatb) grupoAtributo.getSisAtributoSatbs().iterator().next());
atributoLivre.setInformacao(Pagina.getParamStr(request, nomeCampo));
atributoLivre.setFuncao(funcao);
atributoLivre.atribuirPKPai();
// tratamento imagem
String caminhoAuxiliarImagem = Pagina.getParamStr(request, "hidImagem" + "a"
+ grupoAtributo.getCodSga().toString());
if (caminhoAuxiliarImagem!=null && caminhoAuxiliarImagem.length()>0) {
String chave = atributoLivre.getInformacao();
chave = chave.substring(chave.indexOf("RemoteFile=")+ "RemoteFile=".length());
UsuarioUsu usuario = ((ecar.login.SegurancaECAR)request.getSession().getAttribute("seguranca")).getUsuario();
if(usuario.getMapArquivosAtuaisUsuarios() != null && usuario.getMapArquivosAtuaisUsuarios().containsKey(chave)){
// atributoLivre.setInformacao(usuario.getMapArquivosAtuaisUsuarios().get(chave));
caminhoAuxiliarImagem = usuario.getMapArquivosAtuaisUsuarios().get(chave);
caminhoAuxiliarImagem = pathRaiz +"/DownloadFile?RemoteFile=" + caminhoAuxiliarImagem;
}
// else{
// salvar a imagem fisicamente que tem o caminho real em "hidImagem"
try {
String nomeArquivoNovo = FileUpload.salvarArquivoSessaoFisicamente(request, "a" + grupoAtributo.getCodSga().toString(), caminhoAuxiliarImagem);
if(nomeArquivoNovo != null && !nomeArquivoNovo.equals(""))
atributoLivre.setInformacao(nomeArquivoNovo);
} catch (FileNotFoundException e) {
throw new ECARException("erro.arquivoUrl",e, new String[]{caminhoAuxiliarImagem});
} catch (Exception e) {
throw new ECARException("erro.upload",e, new String[]{caminhoAuxiliarImagem});
}
// }
}
atributosLivres.add(atributoLivre);
}
} else if (tipoCampo.equals(SisTipoExibicGrupoDao.MULTITEXTO)) {
Enumeration lAtrib = request.getParameterNames();
while (lAtrib.hasMoreElements()) {
String atrib = (String) lAtrib.nextElement();
if (atrib.lastIndexOf('_') > 0) {
//System.out.println("nomeatributo" + atrib);
String nomeAtrib = atrib.substring(0, atrib
.lastIndexOf('_'));
String codSisAtrib = atrib.substring(atrib
.lastIndexOf('_') + 1);
nomeCampo = "a" + grupoAtributo.getCodSga().toString()+"_"+codSisAtrib;
if (nomeAtrib.equals("a"+ grupoAtributo.getCodSga().toString())
&& !"".equals(Pagina.getParamStr(request,atrib))) {
ItemEstruturaSisAtributoIettSatb atributoLivre = new ItemEstruturaSisAtributoIettSatb();
atributoLivre.setDataUltManutencao(Data.getDataAtual());
atributoLivre.setUsuarioUsu(((ecar.login.SegurancaECAR) request.getSession().getAttribute("seguranca")).getUsuario());
atributoLivre.setItemEstruturaIett(itemEstrutura);
atributoLivre.setSisAtributoSatb((SisAtributoSatb) this.buscar(SisAtributoSatb.class, Long.valueOf(codSisAtrib)));
atributoLivre.setInformacao(Pagina.getParamStr(request, nomeCampo));
atributoLivre.setFuncao(funcao);
atributoLivre.atribuirPKPai();
atributosLivres.add(atributoLivre);
}
}
}
} else if (tipoCampo.equals(SisTipoExibicGrupoDao.VALIDACAO)) {
SisAtributoSatb sisAtributoSatb = (SisAtributoSatb)grupoAtributo.getSisAtributoSatbs().iterator().next();
//Eh verdadeiro se o conteudo do atributo livre for diferente de branco ou se o tipo de valida��o for igual as descritas abaixo.
if(!(Pagina.getParamStr(request, nomeCampo).equals(Dominios.STRING_VAZIA)) ||
(sisAtributoSatb.isAtributoAutoIcremental()) ||
(sisAtributoSatb.isAtributoContemMascara())) {
//N�o seto todos os outros campos, pois eles ser�o setados depois de gravar o item.
ItemEstruturaSisAtributoIettSatb atributoLivre = new ItemEstruturaSisAtributoIettSatb();
atributoLivre.setDataUltManutencao(Data.getDataAtual());
atributoLivre.setUsuarioUsu(((ecar.login.SegurancaECAR) request.getSession().getAttribute("seguranca")).getUsuario());
atributoLivre.setItemEstruturaIett(itemEstrutura);
atributoLivre.setSisAtributoSatb((SisAtributoSatb) grupoAtributo.getSisAtributoSatbs().iterator().next());
atributoLivre.setInformacao(Pagina.getParamStr(request, nomeCampo));
atributoLivre.setFuncao(funcao);
atributoLivre.atribuirPKPai();
atributosLivres.add(atributoLivre);