blob: 87c9eb888ed914adafdfee961e94c90f17cffe08 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 2014 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Vincent Perot - Add percentages to the label provider
*******************************************************************************/
package org.eclipse.tracecompass.internal.tmf.ui.viewers.statistics.model;
import java.text.NumberFormat;
import java.util.Locale;
import org.eclipse.tracecompass.internal.tmf.ui.viewers.statistics.model.TmfBaseColumnDataProvider.StatsColumn;
/**
* Class that format data for cells in the statistics view.
*
* @author Vincent Perot
*/
public final class TmfStatisticsFormatter {
/**
* Formatter for the column data
*/
private static final NumberFormat FORMATTER = NumberFormat.getNumberInstance(Locale.getDefault());
TmfStatisticsFormatter() {
// Nothing to construct.
}
/**
* Generate the string for display in a cell.
*
* @param node
* Current node.
* @param config
* Configuration between total and partial.
* @return The formatted string ready for display.
*/
public static String toColumnData(TmfStatisticsTreeNode node, StatsColumn config) {
long eventValue = 0;
switch (config) {
case TOTAL:
eventValue = node.getValues().getTotal();
break;
case PARTIAL:
eventValue = node.getValues().getPartial();
break;
// Other values are illegal.
// $CASES-OMITTED$
default:
throw new IllegalArgumentException();
}
return FORMATTER.format(eventValue);
}
/**
* Format the percentage according to user settings.
*
* @param percentage
* the percentage to format
* @return The formated percentage as a string.
*/
public static String toPercentageText(double percentage) {
// The cast to long is needed because the formatter cannot truncate the number.
double truncPercentage = ((long) (1000.0 * percentage)) / 10.0;
String percentageString = String.format("%s%s%s", " ", FORMATTER.format(truncPercentage), " % "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return percentageString;
}
}