private void populateUnitCombo() { if (comboWidthUnits.getItemCount() != 0) { return; // this collection is inmutable, only populates the first // time } final Unit<?> defaultUnit = Preferences.bufferUnits(); final Set<Unit<?>> commonLengthUnits = UnitList.getCommonLengthUnits(); SortedMap<String, Unit<?>> units = new TreeMap<String, Unit<?>>(); for (Unit<?> unit : commonLengthUnits) { units.put(UnitList.getUnitName(unit), unit); } bufferUnits = new ArrayList<Unit<?>>(units.values()); int index = 0; Set<Entry<String, Unit<?>>> unitset = units.entrySet(); for (Entry<String, Unit<?>> entry : unitset) { String unitName = entry.getKey(); comboWidthUnits.add(unitName, index); if (defaultUnit.equals(units.get(unitName))) { comboWidthUnits.select(index); } index++; } }
@Override public Measure<String, Q> to(Unit<Q> unit) { if ((unit == this.unit) || (unit.equals(this.unit))) return this; return new KnittingMeasure<Q>(stringValue(unit), unit); }
@Override public double doubleValue(Unit<Q> unit) { if ((unit == this.unit) || (unit.equals(this.unit))) return stringToDouble(this.value); return this.unit.getConverterTo(unit).convert(stringToDouble(this.value)); }