package shedar.mods.ic2.nuclearcontrol.utils;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.LinkedList;
import java.util.List;
import shedar.mods.ic2.nuclearcontrol.api.CardState;
import shedar.mods.ic2.nuclearcontrol.api.PanelString;
public class StringUtils {
private static DecimalFormat formatter = null;
private static DecimalFormat getFormatter() {
if (formatter == null) {
DecimalFormat lFormatter = new DecimalFormat("#,###.###");
DecimalFormatSymbols smb = new DecimalFormatSymbols();
smb.setGroupingSeparator(' ');
lFormatter.setDecimalFormatSymbols(smb);
formatter = lFormatter;
}
return formatter;
}
public static String getFormatted(String resourceName, String value, boolean showLabels) {
if (showLabels)
return String.format(LangHelper.translate(resourceName), value);
else
return value;
}
public static String getFormatted(String resourceName, double value, boolean showLabels) {
return getFormatted(resourceName, getFormatter().format(value),
showLabels);
}
public static String getFormattedKey(String resourceName, Object... arguments) {
return String.format(LangHelper.translate(resourceName), arguments);
}
public static List<PanelString> getStateMessage(CardState state) {
List<PanelString> result = new LinkedList<PanelString>();
PanelString line = new PanelString();
switch (state) {
case OUT_OF_RANGE: line.textCenter = LangHelper.translate("msg.nc.InfoPanelOutOfRange");
break;
case INVALID_CARD: line.textCenter = LangHelper.translate("msg.nc.InfoPanelInvalidCard");
break;
case NO_TARGET: line.textCenter = LangHelper.translate("msg.nc.InfoPanelNoTarget");
break;
case CUSTOM_ERROR:
break;
case OK:
break;
default:
break;
}
result.add(line);
return result;
}
}