/**
  * {@inheritdoc}
  *
  * @param \Drupal\image\ImageStyleInterface $image_style
  *   The image style.
  * @param string $image_effect
  *   The image effect ID.
  *
  * @return array
  *   The form structure.
  *
  * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
  */
 public function buildForm(array $form, FormStateInterface $form_state, ImageStyleInterface $image_style = NULL, $image_effect = NULL)
 {
     $this->imageStyle = $image_style;
     try {
         $this->imageEffect = $this->prepareImageEffect($image_effect);
     } catch (PluginNotFoundException $e) {
         throw new NotFoundHttpException("Invalid effect id: '{$image_effect}'.");
     }
     $request = $this->getRequest();
     if (!$this->imageEffect instanceof ConfigurableImageEffectInterface) {
         throw new NotFoundHttpException();
     }
     $form['#attached']['library'][] = 'image/admin';
     $form['uuid'] = array('#type' => 'value', '#value' => $this->imageEffect->getUuid());
     $form['id'] = array('#type' => 'value', '#value' => $this->imageEffect->getPluginId());
     $form['data'] = [];
     $subform_state = SubformState::createForSubform($form['data'], $form, $form_state);
     $form['data'] = $this->imageEffect->buildConfigurationForm($form['data'], $subform_state);
     $form['data']['#tree'] = TRUE;
     // Check the URL for a weight, then the image effect, otherwise use default.
     $form['weight'] = array('#type' => 'hidden', '#value' => $request->query->has('weight') ? (int) $request->query->get('weight') : $this->imageEffect->getWeight());
     $form['actions'] = array('#type' => 'actions');
     $form['actions']['submit'] = array('#type' => 'submit', '#button_type' => 'primary');
     $form['actions']['cancel'] = array('#type' => 'link', '#title' => $this->t('Cancel'), '#url' => $this->imageStyle->urlInfo('edit-form'), '#attributes' => ['class' => ['button']]);
     return $form;
 }
 /**
  * {@inheritdoc}
  *
  * @param \Drupal\image\ImageStyleInterface $image_style
  *   The image style.
  * @param string $image_effect
  *   The image effect ID.
  *
  * @return array
  *   The form structure.
  *
  * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
  */
 public function buildForm(array $form, FormStateInterface $form_state, ImageStyleInterface $image_style = NULL, $image_effect = NULL)
 {
     $this->imageStyle = $image_style;
     try {
         $this->imageEffect = $this->prepareImageEffect($image_effect);
     } catch (PluginNotFoundException $e) {
         throw new NotFoundHttpException(String::format("Invalid effect id: '@id'.", array('@id' => $image_effect)));
     }
     $request = $this->getRequest();
     if (!$this->imageEffect instanceof ConfigurableImageEffectInterface) {
         throw new NotFoundHttpException();
     }
     $form['#attached']['css'][drupal_get_path('module', 'image') . '/css/image.admin.css'] = array();
     $form['uuid'] = array('#type' => 'value', '#value' => $this->imageEffect->getUuid());
     $form['id'] = array('#type' => 'value', '#value' => $this->imageEffect->getPluginId());
     $form['data'] = $this->imageEffect->buildConfigurationForm(array(), $form_state);
     $form['data']['#tree'] = TRUE;
     // Check the URL for a weight, then the image effect, otherwise use default.
     $form['weight'] = array('#type' => 'hidden', '#value' => $request->query->has('weight') ? (int) $request->query->get('weight') : $this->imageEffect->getWeight());
     $form['actions'] = array('#type' => 'actions');
     $form['actions']['submit'] = array('#type' => 'submit', '#button_type' => 'primary');
     $form['actions']['cancel'] = array('#type' => 'link', '#title' => $this->t('Cancel'), '#url' => $this->imageStyle->urlInfo('edit-form'));
     return $form;
 }