protected function DisplayBag::initializePlugin

Overrides \Drupal\Component\Plugin\PluginBag::initializePlugin().

Overrides PluginBag::initializePlugin

1 call to DisplayBag::initializePlugin()
DisplayBag::__construct in drupal/core/modules/views/lib/Drupal/views/DisplayBag.php
Constructs a DisplayBag object.

File

drupal/core/modules/views/lib/Drupal/views/DisplayBag.php, line 73
Contains \Drupal\views\DisplayBag.

Class

DisplayBag
A class which wraps the displays of a view so you can lazy-initialize them.

Namespace

Drupal\views

Code

protected function initializePlugin($display_id) {

  // If the display was initialized before, just return.
  if (isset($this->pluginInstances[$display_id])) {
    return;
  }

  // Retrieve and initialize the new display handler with data.
  $display =& $this->view->storage
    ->getDisplay($display_id);
  try {
    $this->pluginInstances[$display_id] = $this->manager
      ->createInstance($display['display_plugin']);
  } catch (PluginException $e) {
    $message = $e
      ->getMessage();
    drupal_set_message(t('!message', array(
      '!message' => $message,
    )), 'warning');
  }

  // If no plugin instance has been created, return NULL.
  if (empty($this->pluginInstances[$display_id])) {
    return NULL;
  }
  $this->pluginInstances[$display_id]
    ->initDisplay($this->view, $display);

  // If this is not the default display handler, let it know which is since
  // it may well utilize some data from the default.
  if ($display_id != 'default') {
    $this->pluginInstances[$display_id]->default_display = $this->pluginInstances['default'];
  }
}