// Recupera o Funcionário logado
Long funcionarioId = (Long) request.getSession().getAttribute(
Constants.PA_FUNCIONARIO);
FuncionarioCtrl funcionarioCtrl = new FuncionarioCtrl(
getDaoFactory());
Funcionario funcionario = (Funcionario) funcionarioCtrl
.get(funcionarioId);
Comparator ordem = new Comparator() {
public int compare(Object obj1, Object obj2) {
return ((PersistentObject) obj1).getDescricao().compareTo(
((PersistentObject) obj2).getDescricao());
}
};
/* Lista de Sub-órgãos */
SubOrgaoCtrl subOrgaoCtrl = new SubOrgaoCtrl(getDaoFactory());
Collection subOrgaoList = new TreeSet(ordem);
/* Se funcionário é administrador ou tem nivel de acesso ao órgão */
if (funcionario.getPerfil().equals(Perfil.ADMINISTRADOR)
|| funcionario.getNivelAtuacao() == Funcionario.NA_ORGAO)
subOrgaoList.addAll(subOrgaoCtrl
.listarTodosSubOrgaos(getOrgao(request)));
else {
subOrgaoList.addAll(funcionario.getListaTodosSubOrgaos());
}
request.setAttribute("object", funcionario);
request.setAttribute("maximoIndColuna", parametrosGerais
.getLimiteColunaIndicadores());