Overview

Namespaces

  • Mapbender
    • Component
      • HTTP
    • CoreBundle
      • Command
      • Component
        • Exception
      • Controller
      • DataFixtures
        • ORM
      • DependencyInjection
      • Element
        • Type
      • Entity
      • EventListener
      • Extension
      • Form
        • DataTransformer
        • EventListener
        • Type
      • Security
      • Template
    • KmlBundle
      • Element
    • ManagerBundle
      • Controller
      • Form
        • DataTransformer
        • Type
    • MonitoringBundle
      • Command
      • Component
      • Controller
      • DependencyInjection
      • Entity
      • EventListener
      • Form
    • PrintBundle
      • Component
      • Controller
    • WmcBundle
      • Component
        • Exception
      • Element
        • Type
      • Entity
      • Form
        • Type
    • WmsBundle
      • Component
        • Exception
      • Controller
      • DependencyInjection
      • Element
        • Type
      • Entity
      • Event
      • Form
        • EventListener
        • Type
    • WmtsBundle
      • Component
        • Exception
      • Controller
      • Entity
      • Form
        • Type
  • None
  • PHP

Classes

  • FieldSubscriber
  • Overview
  • Namespace
  • Class
  • Tree
  • Deprecated
  • Todo
  • Download
  1: <?php
  2: 
  3: namespace Mapbender\WmsBundle\Form\EventListener;
  4: 
  5: use Symfony\Component\Form\Event\DataEvent;
  6: use Symfony\Component\Form\FormFactoryInterface;
  7: use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8: use Symfony\Component\Form\FormEvents;
  9: 
 10: /**
 11:  * FieldSubscriber class
 12:  */
 13: class FieldSubscriber implements EventSubscriberInterface
 14: {
 15: 
 16:     /**
 17:      * A FieldSubscriber's Factory
 18:      * 
 19:      * @var \Symfony\Component\Form\FormFactoryInterface 
 20:      */
 21:     private $factory;
 22: 
 23:     /**
 24:      * Creates an instance
 25:      * 
 26:      * @param \Symfony\Component\Form\FormFactoryInterface $factory
 27:      */
 28:     public function __construct(FormFactoryInterface $factory)
 29:     {
 30:         $this->factory = $factory;
 31:     }
 32: 
 33:     /**
 34:      * Returns defined events
 35:      * 
 36:      * @return array events
 37:      */
 38:     public static function getSubscribedEvents()
 39:     {
 40:         return array(FormEvents::PRE_SET_DATA => 'preSetData');
 41:     }
 42: 
 43:     /**
 44:      * Presets a form data
 45:      * 
 46:      * @param \Symfony\Component\Form\Event\DataEvent $event
 47:      * @return type
 48:      */
 49:     public function preSetData(DataEvent $event)
 50:     {
 51:         $data = $event->getData();
 52:         $form = $event->getForm();
 53: 
 54:         if(null === $data)
 55:         {
 56:             return;
 57:         }
 58: 
 59:         if($data->getSublayer()->count() > 0)
 60:         {
 61:             $form->remove('toggle');
 62:             $form->add($this->factory->createNamed(
 63:                             'toggle', 'checkbox', null,
 64:                             array(
 65:                         'disabled' => false,
 66:                         "required" => false)));
 67:             $form->remove('allowtoggle');
 68:             $form->add($this->factory->createNamed(
 69:                             'allowtoggle', 'checkbox', null,
 70:                             array(
 71:                         'required' => false,
 72:                         'disabled' => false)));
 73:         } else
 74:         {
 75:             $form->remove('toggle');
 76:             $form->add($this->factory->createNamed(
 77:                             'toggle', 'checkbox', null,
 78:                             array(
 79:                         'disabled' => true,
 80:                         "required" => false)));
 81:             $form->remove('allowtoggle');
 82:             $form->add($this->factory->createNamed(
 83:                             'allowtoggle', 'checkbox', null,
 84:                             array(
 85:                         'required' => false,
 86:                         'disabled' => true)));
 87:         }
 88: 
 89:         if($data->getWmslayersource()->getQueryable() === true)
 90:         {
 91:             $form->remove('info');
 92:             $form->add($this->factory->createNamed(
 93:                             'info', 'checkbox', null,
 94:                             array(
 95:                         'disabled' => false,
 96:                         "required" => false)));
 97:             $form->remove('allowinfo');
 98:             $form->add($this->factory->createNamed(
 99:                             'allowinfo', 'checkbox', null,
100:                             array(
101:                         'disabled' => false,
102:                         "required" => false)));
103:         }
104:         $arrStyles = $data->getWmslayersource()->getStyles();
105:         $styleOpt = array("" => "");
106:         foreach($arrStyles as $style)
107:         {
108:             $styleOpt[$style->getName()] = $style->getTitle();
109:         }
110: 
111:         $form->remove('style');
112:         $form->add($this->factory->createNamed(
113:                         'style', 'choice', null,
114:                         array(
115:                     'label' => 'style',
116:                     'choices' => $styleOpt,
117:                     "required" => false)));
118:     }
119: 
120: }
Mapbender3 API documenation API documentation generated by ApiGen 2.8.0