package br.com.centralit.citajax.html;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.util.CITCorporeUtil;
import br.com.centralit.citcorpore.util.CriptoUtils;
import br.com.centralit.citcorpore.util.Enumerados;
import br.com.centralit.citcorpore.util.ParametroUtil;
import br.com.centralit.citged.bean.ControleGEDDTO;
import br.com.centralit.citged.negocio.ControleGEDService;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.Constantes;
import br.com.citframework.util.UtilI18N;
import br.com.citframework.util.UtilStrings;
@SuppressWarnings("rawtypes")
public abstract class AjaxFormAction {
private static final Logger LOGGER = Logger.getLogger(AjaxFormAction.class);
public abstract void load(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws Exception;
/**
* Utilizado para setar qual classe representa o bean.
*
* @return
*/
public abstract Class<?> getBeanClass();
public Object getUsuario(final HttpServletRequest request) {
return request.getSession().getAttribute("USUARIO");
}
public String getFromGed(final Integer idControleGed) throws Exception {
final Integer idEmpresa = 1;
final ControleGEDService controleGedService = (ControleGEDService) ServiceLocator.getInstance().getService(ControleGEDService.class, null);
ControleGEDDTO controleGEDDTO = new ControleGEDDTO();
controleGEDDTO.setIdControleGED(idControleGed);
controleGEDDTO = (ControleGEDDTO) controleGedService.restore(controleGEDDTO);
String pasta = "";
if (controleGEDDTO != null) {
pasta = controleGEDDTO.getPasta();
}
String PRONTUARIO_GED_DIRETORIO = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedDiretorio, null);
if (PRONTUARIO_GED_DIRETORIO == null || PRONTUARIO_GED_DIRETORIO.trim().equalsIgnoreCase("")) {
PRONTUARIO_GED_DIRETORIO = "";
}
if (PRONTUARIO_GED_DIRETORIO.equalsIgnoreCase("")) {
PRONTUARIO_GED_DIRETORIO = Constantes.getValue("DIRETORIO_GED");
}
if (PRONTUARIO_GED_DIRETORIO == null || PRONTUARIO_GED_DIRETORIO.equalsIgnoreCase("")) {
PRONTUARIO_GED_DIRETORIO = "/ged";
}
String PRONTUARIO_GED_INTERNO = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedInterno, "S");
if (PRONTUARIO_GED_INTERNO == null) {
PRONTUARIO_GED_INTERNO = "S";
}
String prontuarioGedInternoBancoDados = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedInternoBD, "N");
if (!UtilStrings.isNotVazio(prontuarioGedInternoBancoDados)) {
prontuarioGedInternoBancoDados = "N";
}
if (PRONTUARIO_GED_INTERNO.equalsIgnoreCase("S")) {
if (PRONTUARIO_GED_INTERNO.equalsIgnoreCase("S") && "S".equalsIgnoreCase(prontuarioGedInternoBancoDados)) { // Se utiliza GED interno e eh BD
// TODO falta implementar!
} else {
final String fileRec = CITCorporeUtil.CAMINHO_REAL_APP + "tempUpload/REC_FROM_GED_" + controleGEDDTO.getIdControleGED() + "." + controleGEDDTO.getExtensaoArquivo();
CriptoUtils.decryptFile(PRONTUARIO_GED_DIRETORIO + "/" + idEmpresa + "/" + pasta + "/" + controleGEDDTO.getIdControleGED() + ".ged", fileRec, System
.getProperties().get("user.dir") + Constantes.getValue("CAMINHO_CHAVE_PRIVADA"));
return fileRec;
}
}
return null;
}
public String i18n_Message(final String key, final UsuarioDTO usuario) {
if (usuario != null) {
if (UtilI18N.internacionaliza(usuario.getLocale(), key) != null) {
return UtilI18N.internacionaliza(usuario.getLocale(), key);
}
return key;
}
return key;
}
/**
* Retorna a linguagem que foi passada no request que est� em paramtersDefinition. ATEN��O: UTILIZADO SOMENTE PARA A GERA��O DE RELAT�RIOS EM PAINEL. Este m�todo tamb�m est�
* implementando em
* br.com.centralit.citgerencial.bean.GerencialGenerateService.java.
*
* @param paramtersDefinition
* @return String - Language
* @author valdoilo.damasceno
* @since 06.02.2014
*/
public String getLanguage(final Collection paramtersDefinition) {
String language = UtilI18N.PORTUGUESE_SIGLA;
for (final Iterator iterator = paramtersDefinition.iterator(); iterator.hasNext();) {
final Object parametro = iterator.next();
if (parametro != null && "org.apache.catalina.connector.RequestFacade".equals(parametro.getClass().getName())) {
final HttpServletRequest request = (HttpServletRequest) parametro;
final String aux = (String) request.getSession().getAttribute("locale");
if (aux != null && StringUtils.isNotBlank(aux)) {
language = aux;
}
break;
}
}
return language;
}
protected void debugValuesFromRequest(final Map<String, Object> hashValores) {
final Set<Entry<String, Object>> set = hashValores.entrySet();
final Iterator<Entry<String, Object>> i = set.iterator();
LOGGER.debug("------- VALORES DO REQUEST: -------");
while (i.hasNext()) {
final Entry<String, Object> me = i.next();
LOGGER.debug("-------------> [" + me.getKey() + "]: [" + me.getValue() + "]");
}
}
}