docs: public Map<String, String> getFieldValues() {
  		Map<String, String> values = new HashMap<>(requiredFields.length + optionalFields.length);
  		for (Entry<String, ZapTextField> f : textFields.entrySet())
  			values.put(f.getKey(), f.getValue().getText());
  		return values;
  	}
  
  	/**
  	 * Bind a mapping of field names/values to the fields in this panel. All the fields whose names
  	 * have a value provided in the map get set to that value, the others get cleared.
  	 * 
  	 * @param fieldValues the field values
  	 */
  	public void bindFieldValues(Map<String, String> fieldValues) {
  		for (Entry<String, ZapTextField> f : textFields.entrySet()) {
  			ZapTextField field = f.getValue();
  			field.setText(fieldValues.get(f.getKey()));
  			field.discardAllEdits();
  		}
  	}