public function generatePasteButton(GetPasteButtonEvent $event)
{
if ($event->getEnvironment()->getDataDefinition()->getName() !== 'tl_metamodel_filtersetting') {
return;
}
$environment = $event->getEnvironment();
$model = $event->getModel();
$clipboard = $environment->getClipboard();
$filter = new Filter();
$filter->andModelIs(ModelId::fromModel($model))->andActionIs(ItemInterface::CUT);
// Disable all buttons if there is a circular reference.
if ($event->isCircularReference() || !$clipboard->isEmpty($filter)) {
$event->setPasteAfterDisabled(true)->setPasteIntoDisabled(true);
return;
}
$factory = $this->getServiceContainer()->getFilterFactory()->getTypeFactory($model->getProperty('type'));
// If setting does not support children, omit them.
if ($model->getId() && !($factory && $factory->isNestedType())) {
$event->setPasteIntoDisabled(true);
}
}