anchor.diff:                  public Object transform(Object input) {
                       try {
                           Resource item = (Resource) input;
  -                        String dataValue = item.getPath();
  -                        String text = dataValue;
  +                        ValueMap valueMap = item.getValueMap();
  +
  +                        String value = item.getPath();
  +                        String text = value;
  +
  +                        if( StringUtils.isNotEmpty( displayProperty ) && valueMap.containsKey( displayProperty )){
  +                            text = valueMap.get( displayProperty, value );
  +                        }
   
                           ValueMap vm = new ValueMapDecorator(new HashMap<String, Object>());
                           vm.put("text", text);
  -                        vm.put("value", dataValue);
  +                        vm.put("value", value);
                           vm.put("canDelete", true);
   
                           return new ValueMapResource(resolver, path, "nt:unstructured", vm);
  
positive.code: <%@ page import="com.adobe.granite.ui.components.ds.DataSource" %>
  <%@ page import="com.adobe.granite.ui.components.ds.SimpleDataSource" %>
  <%@ page import="com.adobe.granite.ui.components.ds.ValueMapResource" %>
  <%@ page import="com.day.cq.search.PredicateGroup" %>
  <%@ page import="com.day.cq.search.Query" %>
  
negative.code: 
      if( resource != null ){
          ValueMap widgetProps = resource.getValueMap();
  
          final String displayProperty = widgetProps.get( "displayProperty", new String() );
  
          String[] predicates = widgetProps.get( "predicates", new String[0] );
  
  