You are here

public static function BaseSettings::validateLibraryPluginConfiguration in Charts 8.4

Same name and namespace in other branches
  1. 5.0.x src/Element/BaseSettings.php \Drupal\charts\Element\BaseSettings::validateLibraryPluginConfiguration()

Validates the chart library plugin configuration.

Parameters

array $element: The chart base settings element.

\Drupal\Core\Form\FormStateInterface $form_state: The form state.

array $complete_form: The complete form.

Throws

\Drupal\Component\Plugin\Exception\PluginException

File

src/Element/BaseSettings.php, line 494

Class

BaseSettings
Provides a form element for setting a chart.

Namespace

Drupal\charts\Element

Code

public static function validateLibraryPluginConfiguration(array &$element, FormStateInterface $form_state, array &$complete_form) {
  $used_in = $element['#used_in'];
  if ($used_in === 'config_form') {
    $settings = $form_state
      ->getValue($element['#parents']);

    // Adding validate callback for the chart library settings.
    if (!empty($settings['library'])) {
      $library = $settings['library'];
      $library_form = $library . '_settings';

      /** @var \Drupal\Component\Plugin\PluginManagerInterface $plugin_manager */
      $plugin_manager = \Drupal::service('plugin.manager.charts');

      /** @var \Drupal\charts\Plugin\chart\Library\ChartInterface $plugin */
      $plugin = $plugin_manager
        ->createInstance($library);
      $plugin
        ->validateConfigurationForm($element[$library_form], $form_state);
    }
  }
}