private static Collection getAllStatisticKeys(PieDataset pieDataset) { final List statisticKeys = newArrayList(); final List segmentKeys = pieDataset.getKeys(); for (final Object segmentKey : segmentKeys) { if (segmentKey instanceof PieSegment) { statisticKeys.add(((PieSegment) segmentKey).getKey()); } } return statisticKeys; }
private long calculateTotal(PieDataset dataset) { long total = 0; for (Iterator i = dataset.getKeys().iterator(); i.hasNext();) { Comparable key = (Comparable) i.next(); Number n = dataset.getValue(key); total += n.longValue(); } return total; }
/** * Returns the maximum explode percent. * * @return The percent. */ public double getMaximumExplodePercent() { if (this.dataset == null) { return 0.0; } double result = 0.0; Iterator iterator = this.dataset.getKeys().iterator(); while (iterator.hasNext()) { Comparable key = (Comparable) iterator.next(); Number explode = (Number) this.explodePercentages.get(key); if (explode != null) { result = Math.max(result, explode.doubleValue()); } } return result; }
/** * Returns the maximum explode percent. * * @return The percent. */ public double getMaximumExplodePercent() { if (this.dataset == null) { return 0.0; } double result = 0.0; Iterator iterator = this.dataset.getKeys().iterator(); while (iterator.hasNext()) { Comparable key = (Comparable) iterator.next(); Number explode = (Number) this.explodePercentages.get(key); if (explode != null) { result = Math.max(result, explode.doubleValue()); } } return result; }
throw new IllegalArgumentException("Null 'dataset' argument."); List keys = dataset.getKeys(); double totalValue = 0; Iterator iterator = keys.iterator();
/** * Sort a pie dataset by it's values (highest to lowest) * * @param source the source dataset (<code>null</code> not permitted). * @return The pie dataset with sorted items. */ public static PieDataset createSortedPieDataset(PieDataset source) { final List<SortableItem> items = Lists.newArrayListWithCapacity(source.getKeys().size()); for (final Object o : source.getKeys()) { Comparable key = (Comparable) o; Number dataValue = source.getValue(key); items.add(new SortableItem(key, dataValue)); } Collections.sort(items); Collections.reverse(items); DefaultPieDataset sortedDataset = new DefaultPieDataset(); for (final SortableItem sortableItem : items) { sortedDataset.setValue(sortableItem.key, sortableItem.value); } return sortedDataset; }
/** * Calculates the total of all the values in a {@link PieDataset}. If * the dataset contains negative or {@code null} values, they are * ignored. * * @param dataset the dataset ({@code null} not permitted). * * @return The total. */ public static double calculatePieDatasetTotal(PieDataset dataset) { Args.nullNotPermitted(dataset, "dataset"); List keys = dataset.getKeys(); double totalValue = 0; Iterator iterator = keys.iterator(); while (iterator.hasNext()) { Comparable current = (Comparable) iterator.next(); if (current != null) { Number value = dataset.getValue(current); double v = 0.0; if (value != null) { v = value.doubleValue(); } if (v > 0) { totalValue = totalValue + v; } } } return totalValue; }
/** * Sort a pie dataset by it's values (highest to lowest) * @param source the source dataset (<code>null</code> not permitted). * @return The pie dataset with sorted items. */ public static PieDataset createSortedPieDataset(PieDataset source) { List items = new ArrayList(source.getItemCount()); for (Iterator iterator = source.getKeys().iterator(); iterator.hasNext();) { Comparable key = (Comparable) iterator.next(); Number dataValue = source.getValue(key); items.add(new SortableItem(key, dataValue)); } Collections.sort(items); Collections.reverse(items); DefaultPieDataset sortedDataset = new DefaultPieDataset(); for (Iterator iterator = items.iterator(); iterator.hasNext();) { SortableItem sortableItem = (SortableItem) iterator.next(); sortedDataset.setValue(sortableItem.key, sortableItem.value); } return sortedDataset; }
private static PieDataset removeZeroOthers(Comparable otherKey, PieDataset d) { if (d.getValue(otherKey).doubleValue() == 0.0) { DefaultPieDataset result = new DefaultPieDataset(); for (Object o : d.getKeys()) { Comparable c = (Comparable)o; if (!otherKey.equals(c)) { result.setValue(c, d.getValue(c)); } } return result; } else { return d; } }
List keys = source.getKeys(); ArrayList otherKeys = new ArrayList(); Iterator iterator = keys.iterator();
List keys = source.getKeys(); ArrayList otherKeys = new ArrayList(); Iterator iterator = keys.iterator();
public CategoryDataset createCategoryDataset(final long numIssues, final PieDataset pieDataset) { // now create the complete dataset final DefaultCategoryDataset completeDataset = new DefaultCategoryDataset(); for (final Object o : pieDataset.getKeys()) { final Comparable key = (Comparable) o; final Number value = pieDataset.getValue(key); final long percentage = 100 * value.intValue() / numIssues; completeDataset.addValue(value, i18nHelper.getText("common.concepts.issues"), key); completeDataset.addValue(percentage, "%", key); } return completeDataset; }
/** * Creates a new PieDataset with ranked, consolidated results. * <p /> * Results are ranked by their value (ie 10 is greater than 5), so that pie slices * are in order of greatest to smallest. * <p /> * The minimum number of items will ALWAYS be displayed if there are at least that many items. * <p /> * If there are more than the minimum number of items, once ranked any items smaller than the * minimumPercent are consolidated into an "Other" entity (named by 'otherKey'). * * @param source the source dataset (<code>null</code> not permitted). * @param otherKey the otherKey to represent the aggregated items. * @param minimumPercent the percent threshold (ten percent is 0.10). * @param minItems keep at least this many items (no matter how small) * @return The pie dataset with (possibly) aggregated items. */ public static PieDataset createConsolidatedSortedPieDataset(PieDataset source, Comparable otherKey, boolean sort, double minimumPercent, int minItems) { if (sort) source = createSortedPieDataset(source); if (minItems < source.getKeys().size()) { return removeZeroOthers(otherKey, DatasetUtilities.createConsolidatedPieDataset(source, otherKey, minimumPercent, 0)); } else { return source; } }
final List keys = source.getKeys(); final ArrayList otherKeys = new ArrayList(); Iterator iterator = keys.iterator();
List keys = dataset.getKeys(); DefaultPieDataset series = null; if (showDifference) {
List keys = dataset.getKeys(); DefaultPieDataset series = null; if (showDifference) {
return result; List keys = this.dataset.getKeys(); int section = 0; Shape shape = getLegendItemShape();
return result; List keys = this.dataset.getKeys(); int section = 0; Shape shape = getLegendItemShape();
for (Iterator iterator = sortedDataset.getKeys().iterator(); iterator.hasNext();)