public function generatePasteButton(GetPasteButtonEvent $event)
{
if ($event->getEnvironment()->getDataDefinition()->getName() !== 'tl_metamodel_dcasetting_condition') {
return;
}
$environment = $event->getEnvironment();
$model = $event->getModel();
$clipboard = $environment->getClipboard();
// Disable all buttons if there is a circular reference.
if ($clipboard->fetch(Filter::create()->andActionIs(ItemInterface::CUT)->andModelIs(ModelId::fromModel($model)))) {
$event->setPasteAfterDisabled(true)->setPasteIntoDisabled(true);
return;
}
$flags = $GLOBALS['METAMODELS']['inputscreen_conditions'][$model->getProperty('type')];
// If setting does not support children, omit them.
if ($model->getId() && !$flags['nestingAllowed']) {
$event->setPasteIntoDisabled(true);
return;
}
if (isset($flags['maxChildren']) && count($event->getEnvironment()->getController()->assembleAllChildrenFrom($model)) > $flags['maxChildren']) {
$event->setPasteIntoDisabled(true);
}
}