/**
  * {@inheritdoc}
  */
 public function buildRow(EntityInterface $entity)
 {
     /** @var \Drupal\payment\Entity\PaymentMethodConfigurationInterface $payment_method_configuration */
     $payment_method_configuration = $entity;
     $row['data']['label'] = $payment_method_configuration->label();
     $plugin_definition = $this->paymentMethodConfigurationManager->getDefinition($payment_method_configuration->getPluginId());
     $row['data']['plugin'] = isset($plugin_definition['label']) ? $plugin_definition['label'] : $this->t('Unknown');
     $row['data']['owner']['data'] = array('#theme' => 'username', '#account' => $payment_method_configuration->getOwner());
     $row['data']['status'] = $payment_method_configuration->status() ? $this->t('Enabled') : $this->t('Disabled');
     $operations = $this->buildOperations($entity);
     $row['data']['operations']['data'] = $operations;
     if (!$payment_method_configuration->status()) {
         $row['class'] = array('payment-method-configuration-disabled');
     }
     return $row;
 }
 /**
  * {@inheritdoc}
  */
 public function form(array $form, FormStateInterface $form_state)
 {
     /** @var \Drupal\payment\Entity\PaymentMethodConfigurationInterface $payment_method_configuration */
     $payment_method_configuration = $this->getEntity();
     $definition = $this->paymentMethodConfigurationManager->getDefinition($payment_method_configuration->getPluginId());
     $form['type'] = array('#type' => 'item', '#title' => $this->t('Type'), '#markup' => $definition['label']);
     $form['status'] = array('#type' => 'checkbox', '#title' => $this->t('Enabled'), '#default_value' => $payment_method_configuration->status());
     $form['label'] = array('#type' => 'textfield', '#title' => $this->t('Label'), '#default_value' => $payment_method_configuration->label(), '#maxlength' => 255, '#required' => TRUE);
     $form['id'] = array('#type' => 'machine_name', '#default_value' => $payment_method_configuration->id(), '#maxlength' => 255, '#required' => TRUE, '#machine_name' => array('source' => array('label'), 'exists' => array($this, 'paymentMethodConfigurationIdExists')), '#disabled' => !$payment_method_configuration->isNew());
     $form['owner'] = array('#target_type' => 'user', '#type' => 'entity_autocomplete', '#title' => $this->t('Owner'), '#default_value' => $payment_method_configuration->getOwner() ? $payment_method_configuration->getOwner() : $this->currentUser, '#required' => TRUE);
     if ($form_state->has('payment_method_configuration')) {
         $payment_method_configuration_plugin = $form_state->get('payment_method_configuration');
     } else {
         $payment_method_configuration_plugin = $this->paymentMethodConfigurationManager->createInstance($payment_method_configuration->getPluginId(), $payment_method_configuration->getPluginConfiguration());
         $form_state->set('payment_method_configuration', $payment_method_configuration_plugin);
     }
     $form['plugin_form'] = array('#tree' => TRUE) + $payment_method_configuration_plugin->buildConfigurationForm([], $form_state);
     return parent::form($form, $form_state);
 }
 /**
  * Returns the title for the payment method configuration add form.
  *
  * @param string $plugin_id
  *
  * @return string
  */
 public function title($plugin_id)
 {
     $plugin_definition = $this->paymentMethodConfigurationManager->getDefinition($plugin_id);
     return $this->t('Add %label payment method configuration', ['%label' => $plugin_definition['label']]);
 }