package tim.prune.gui;
+import java.text.NumberFormat;
+
import tim.prune.I18nManager;
/**
*/
public abstract class DisplayUtils
{
+ /** Number formatter for one decimal place */
+ private static final NumberFormat FORMAT_ONE_DP = NumberFormat.getNumberInstance();
+
+ /** Static block to initialise the one d.p. formatter */
+ static
+ {
+ FORMAT_ONE_DP.setMaximumFractionDigits(1);
+ FORMAT_ONE_DP.setMinimumFractionDigits(1);
+ }
+ /** Flexible number formatter with different decimal places */
+ private static final NumberFormat FORMAT_FLEX = NumberFormat.getNumberInstance();
+
+
/**
* Build a String to describe a time duration
* @param inNumSecs number of seconds
if (inNumSecs < 86400000L) return "" + (inNumSecs / 86400L) + I18nManager.getText("display.range.time.days");
return "big";
}
+
+ /**
+ * @param inNumber number to format
+ * @return formatted number to one decimal place
+ */
+ public static String formatOneDp(double inNumber)
+ {
+ return FORMAT_ONE_DP.format(inNumber);
+ }
+
+ /**
+ * Format a number to a sensible precision
+ * @param inVal value to format
+ * @return formatted String using local format
+ */
+ public static String roundedNumber(double inVal)
+ {
+ // Set precision of formatter
+ int numDigits = 0;
+ if (inVal < 1.0)
+ numDigits = 3;
+ else if (inVal < 10.0)
+ numDigits = 2;
+ else if (inVal < 100.0)
+ numDigits = 1;
+ // set formatter
+ FORMAT_FLEX.setMaximumFractionDigits(numDigits);
+ FORMAT_FLEX.setMinimumFractionDigits(numDigits);
+ return FORMAT_FLEX.format(inVal);
+ }
}