chave de linha @StackedBarChart não é adicionada a DefaultCategoryDataSet
Tenho duas Classes de entidade: A e B. A tem entidades B e tenho umMap
definido no seguinte formato:Map<A, List<B>
.
Eu quero adicionar todos os dados do mapa paraDefaultCategoryDataset
com o seguinte código. Por exemplo, se tiver 5 A e cada A tiver 4 B, quero ter 25 chaves de linha. (Um número de entidade * (um número de entidade A + número de entidade B em cada A). Uma chave de linha que armazena uma classe deve ter a mesma largura; todas as outras linhas que armazenam entidades B devem ter a mesma largura. Para obter sucesso, estou fornecendo o mesmos valores ao adicionar as teclas de linha A ((duplo) 1 / (1 + bResultList .size ()) e fornecer valores menores ao adicionar as teclas de linha A ((duplo) 1 / (1 + bResultList .size () + 6).
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
/** for each workpoint */
for (A aResult : map.keySet()) {
List<B> bResultList = map.get(aResult);
dataset.addValue(
(double) 1 / (1 + bResultList.size()),
"WorkPoint " + aResult.getTimeStep(),
"WP T=" + aResult.getTimeStep());
/** for each contingency result */
for (B bResult : bResultList) {
dataset.addValue(
(double) 1 / (1 + bResultList.size() + 6),
bResult.getName(),
"WP T=" + aResult.getTimeStep());
}
}
Mas quando adiciono todos os dados do mapa ao conjunto de dados, todas as chaves de linha não são armazenadas. Quando depuro, o Dataset tem apenas 9 linhas. (A1, B1, B2, B3, B4, A2, A3, A4, A5) Somente as entidades B da primeira entidade A são armazenadas como chaves de linha. Outras entidades B de outra entidade A não são armazenadas no banco de dado
Mas quando eu exibir gráfico, todos os dados são exibidos no gráfico, mas na ordem errada. A ordem está seguindo.
A1-B1-B2-B3-B4
B1-B2-B3-B4-A2
B1-B2-B3-B4-A3
B1-B2-B3-B4-A4
B1-B2-B3-B4-A5
Quero exibir como
A1-B1-B2-B3-B4
A2-B1-B2-B3-B4
A3-B1-B2-B3-B4
A4-B1-B2-B3-B4
A5-B1-B2-B3-B4