<?php

namespace OfficeBrain\Bundle\CmsBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class CmsMenuItemType extends AbstractType
{
    /**
     * @param FormBuilderInterface $builder
     * @param array                $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('cssClasse', 'text', array('label' => 'cms.admin.menu.form.css_classes.title'))
            ->add('cssIcon', 'text', array('label' => 'cms.admin.menu.form.css_icon.title'))
            ->add('Image', 'file', array('data_class' => null, 'mapped' => false))
            ->add('backgroundImage', 'hidden')
            ->add('sortOrder', 'hidden')
            ->add('itemType', 'hidden')
            ->add('parentId', 'hidden')
            ->add('languageMapping', 'collection', array('type' => new CmsMenuItemLanguageType(), 'cascade_validation' => true))
        ;
    }

    /**
     * @param OptionsResolverInterface $resolver
     */
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'OfficeBrain\Bundle\CmsBundle\Entity\CmsMenuItem',
        ));
    }

    /**
     * @return string
     */
    public function getName()
    {
        return 'officebrain_bundle_cmsbundle_cmsmenuitem';
    }
}
