HttpSession session = request.getSession();
session.setAttribute("lang","pt");
List listAvaliacoes = (List) request.getSession().getAttribute( "listAvaliacoes");
CorDao corDao = new CorDao(null);
OrgaoDao orgaoDao = new OrgaoDao(null);
OrgaoOrg orgao = null;
String msgGrafico = "";
String strOrgao = "Em Monitoramento";
if (!"".equals(Pagina.getParamStr(request, "codOrgao"))) {
orgao = (OrgaoOrg) orgaoDao.buscar(OrgaoOrg.class, Long
.valueOf(Pagina.getParamStr(request, "codOrgao")));
if (orgao.getSiglaOrg() != null
&& !"".equals(orgao.getSiglaOrg()))
strOrgao = orgao.getSiglaOrg();
else
strOrgao = orgao.getDescricaoOrg();
}
JFreeChart grafico;
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
Map<String, Integer> mapCoresConfiguradas = null; // Map para as cores configuradas, chave:codigo da cor; valor:quantidade de vez em que apareceu
List <String>listOrdemCores = null;
Iterator itAvaliacoes = listAvaliacoes.iterator();
while (itAvaliacoes.hasNext()) {
PosicaoBean posicaoBean = (PosicaoBean) itAvaliacoes.next();
String serie = posicaoBean.getARef().getNomeAref();
mapCoresConfiguradas = corDao.contadorDePosicoesPorCores(posicaoBean);
//So precisa ordenar na primeira vez
if (listOrdemCores==null)
listOrdemCores = corDao.ordenarCores(mapCoresConfiguradas.keySet());
// Adiciona os t�tulos das cores no Gr�fico
for (String codCorConfig : listOrdemCores) {
if (codCorConfig.equals(Cor.BRANCO)) {
dataset.addValue(mapCoresConfiguradas.get(codCorConfig),Cor.LABEL_BRANCO, serie);
} else if (codCorConfig.equals(Cor.NAO_LIBERADO)) {
dataset.addValue(mapCoresConfiguradas.get(codCorConfig),Cor.LABEL_NAO_LIBERADO, serie);
// } else if (codCorConfig.equals(Cor.NAO_ACOMPANHADO)) {
// dataset.addValue(mapCoresConfiguradas.get(codCorConfig),Cor.LABEL_NAO_ACOMPANHADO, serie);
} else if (Util.ehValor(codCorConfig)){
Cor corConfig = (Cor) corDao.buscar(Cor.class, Long.parseLong(codCorConfig));
//Para cores de gr�fico n�o configurada exibe um * no final do nome
if (corConfig.getCodCorGrafico()==null && !corConfig.getSignificadoCor().endsWith(" *")) {
corConfig.setSignificadoCor(corConfig.getSignificadoCor() + " *");
}
dataset.addValue(mapCoresConfiguradas.get(codCorConfig),corConfig.getSignificadoCor(), serie);
}// fim if ehValor
}// fim for
}
grafico = ChartFactory.createBarChart3D("Evolu��o das Posi��es - "
+ strOrgao, "Per�odo(s) de Refer�ncia", "Quantidades",
dataset, PlotOrientation.VERTICAL, true, true, true);
CategoryPlot plot = grafico.getCategoryPlot();
TextTitle title = new TextTitle();
title.setFont(new Font("Arial", Font.PLAIN, 15));
title.setText("Evolu��o das Posi��es - " + strOrgao);
grafico.setTitle(title);
CategoryAxis categoryaxis = plot.getDomainAxis();
categoryaxis.setTickLabelFont(new Font("Arial", Font.PLAIN, 8));
ValueAxis valueaxis = plot.getRangeAxis();
valueaxis.setTickLabelFont(new Font("Arial", Font.PLAIN, 8));
// Renderer modifica propriedades
CategoryItemRenderer renderer = plot.getRenderer();
int numeroCor = 0;
//define as cores das barras do gr�fico
for (String codCorConfig : listOrdemCores) {
if (Util.ehValor(codCorConfig) ) {
Cor corConfig = (Cor) corDao.buscar(Cor.class, Long.parseLong(codCorConfig));
if (corConfig.getCodCorGrafico()!=null){
Color colorConfig = new Color(Integer.parseInt(corConfig.getCodCorGrafico().replace("#", ""), 16));
renderer.setSeriesPaint(numeroCor++, colorConfig);
} else {