/**
  * {@inheritdoc}
  */
 public function submitForm(array &$form, FormStateInterface $form_state)
 {
     $bundle = $this->assigner->getBundle($this->bundle);
     $this->assigner->assignConfigPackages();
     $this->package->setName($form_state->getValue('name'));
     $this->package->setMachineName($form_state->getValue('machine_name'));
     $this->package->setDescription($form_state->getValue('description'));
     $this->package->setVersion($form_state->getValue('version'));
     $this->package->setBundle($bundle->getMachineName());
     // Save it first just to create it in case it's a new package.
     $this->featuresManager->setPackage($this->package);
     $this->package->setConfig($this->updatePackageConfig($form_state));
     $this->package->setExcluded($this->updateExcluded());
     $this->package->setRequired($this->updateRequired());
     // Now save it with the selected config data.
     $this->featuresManager->setPackage($this->package);
     $method_id = NULL;
     $trigger = $form_state->getTriggeringElement();
     $op = $form_state->getValue('op');
     if (!empty($trigger) && empty($op)) {
         $method_id = $trigger['#name'];
     }
     // Set default redirect, but allow generators to change it later.
     $form_state->setRedirect('features.edit', array('featurename' => $this->package->getMachineName()));
     if (!empty($method_id)) {
         $packages = array($this->package->getMachineName());
         $this->generator->generatePackages($method_id, $packages, $bundle);
         $this->generator->applyExportFormSubmit($method_id, $form, $form_state);
     }
     $this->assigner->setCurrent($bundle);
 }