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++;
    }
  }