* @copyright 2014-2017 netzmacht David Molineus. All rights reserved. * @license LGPL-3.0 https://github.com/netzmacht/contao-leaflet-maps/blob/master/LICENSE * @filesource */ declare(strict_types=1); namespace Netzmacht\Contao\Leaflet\Frontend\Module; use Contao\Config; use Contao\CoreBundle\Framework\Adapter; use Contao\Input; use Netzmacht\Contao\Leaflet\MapProvider; use Netzmacht\Contao\Toolkit\Component\Component; use Netzmacht\Contao\Toolkit\Component\ComponentFactory; use Symfony\Component\Templating\EngineInterface as TemplateEngine; use Symfony\Component\Translation\TranslatorInterface as Translator; /** * Class MapElementFactory * * @package Netzmacht\Contao\Leaflet\Frontend\ContentElement */ class MapModuleFactory implements ComponentFactory { /** * Template engine. * * @var TemplateEngine */ private $templating; /** * Translator. * * @var Translator */ private $translator; /** * Map provider. * * @var MapProvider */ private $mapProvider; /** * Input adapter. * * @var Input|Adapter */ private $input; /** * Config adapter. * * @var Config|Adapter */ private $config; /** * MapElementFactory constructor. * * @param TemplateEngine $engine Template engine. * @param Translator $translator Translator. * @param MapProvider $mapProvider Map provider. * @param Input|Adapter $input Input adapter. * @param Config|Adapter $config Config adapter. */ public function __construct( TemplateEngine $engine, Translator $translator, MapProvider $mapProvider, $input, $config ) { $this->templating = $engine; $this->translator = $translator; $this->mapProvider = $mapProvider; $this->input = $input; $this->config = $config; } /** * {@inheritDoc} */ public function supports($model): bool { return $model->type === 'leaflet'; } /** * {@inheritDoc} */ public function create($model, string $column): Component { return new MapModule( $model, $this->templating, $this->translator, $this->mapProvider, $this->input, $this->config, $column ); } }