package org.drugis.common.gui; import java.text.DecimalFormat; import java.text.FieldPosition; import java.text.Format; import java.text.ParsePosition; import org.drugis.common.Interval; @SuppressWarnings("serial") public class NumberAndIntervalFormat extends Format { private static final DecimalFormat s_fmt = new DecimalFormat("#0.00");; @SuppressWarnings("unchecked") @Override public StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos) { if (obj instanceof Interval) { return toAppendTo.append(format((Interval<Double>)obj)); } else if (obj instanceof Double) { return toAppendTo.append(format((Double)obj)); } else { return toAppendTo.append(obj.toString()); } } public String format(Interval<Double> interval) { return "[" + s_fmt.format(interval.getLowerBound()) + " - " + s_fmt.format(interval.getUpperBound()) + "]"; } public String format(Double x) { return s_fmt.format(x); } @Override public Object parseObject(String source, ParsePosition pos) { return null; // NI } }