private function createDisplayProperty()
    {
        $prop    = $this->property();
        $type    = $this->displayType();
        $display = $this->propertyDisplayFactory()->create($type);

        if ($this->formGroup() && ($display instanceof FormInputInterface)) {
            $display->setFormGroup($this->formGroup());
        }

        if ($display instanceof ViewableInterface) {
            $display->setViewController($this->viewController());
        }

        $display->setDisplayType($type);
        $display->setProperty($prop);
        $display->setPropertyVal($this->propertyVal());
        $display->setData($prop->data());

        $metadata = $prop->metadata();
        if (isset($metadata['admin'])) {
            $display->setData($metadata['admin']);
        }

        return $display;
    }