/**
  * @param ContextInterface $context
  * @param AssociationControl $control
  * @return string
  */
 public function render(ContextInterface $context, Control $control, Entry $entry = null)
 {
     $element = $this->getFormFieldElement($control);
     // Is this an owning entity with display order? If so, we render a separate reordering control
     $association = $control->getAssociation();
     if ($association->isOwningAssociation()) {
         if ($association->getTargetEntity()->supportsCustomDisplayOrder()) {
             $element = 'select_multiple_reorder';
         } else {
             return false;
         }
     }
     $template = new Template('association/' . $element);
     $entity = $association->getTargetEntity();
     $list = new EntryList($entity);
     $entities = $list->getResults();
     $view = new EntityPropertyControlView($context);
     if (is_object($entry)) {
         $related = $entry->getAssociations();
         foreach ($related as $relatedAssociation) {
             if ($relatedAssociation->getAssociation()->getID() == $association->getID()) {
                 $view->addScopeItem('selectedEntities', $relatedAssociation->getSelectedEntries());
             }
         }
     } else {
         // Is this an owned entity? In which case we get the association from the owning entity
         $renderer = $context->getFormRenderer();
         $form = $renderer->getForm();
         if ($form instanceof OwnedEntityForm) {
             $view->addScopeItem('selectedEntities', array($form->getOwningEntry()));
         }
     }
     $view->addScopeItem('entities', $entities);
     $view->addScopeItem('control', $control);
     $view->addScopeItem('formatter', $association->getFormatter());
     return $view->render($control, $context->getTemplateLocator($template)->getFile());
 }