code: private void updateScaleList() {
  		refreshPixelLength(); /* retrieve pixelLength from mapWidget. Needed in case mapWidget wasn't fully initialized
  					the previous time the pixelLength was requested */
  
  		// Update lookup map (stores user friendly representation):
  		valueToScale.clear();
  		if (!Double.isNaN(pixelLength) && (0.0 != pixelLength)) {
  			for (Double scale : scaleList) {
  				// Eliminate duplicates and null:
  				if (scale != null) {
  					String value = ScaleConverter.scaleToString(scale, precision, significantDigits);
  					valueToScale.put(value, scale);
  				}
  			}
  
  			List<String> availableScales = new ArrayList<String>();
  
  			for (Double scale : scaleList) {
  				if (mapView.isResolutionAvailable(pixelLength / scale)) {
  					availableScales.add(ScaleConverter.scaleToString(scale, precision, significantDigits));
  				}
  			}
  
  			scaleItem.setValueMap(availableScales.toArray(new String[availableScales.size()]));
  
  			isScaleItemInitialized = true;
  		}
  	}
docs: Given the full list of desirable resolutions, which ones are actually available? Update the widget accordingly.