class Icon in Openlayers 8.4
Defines the Icon style for Openlayers features.
Plugin annotation
@OpenlayersStyle(
id = "ol_style_icon",
label = @Translation("Icon"),
description = @Translation("Define the icon style for map features."),
type = "style",
ol_id = "Icon"
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\openlayers\OpenlayersPluginBase implements ContainerFactoryPluginInterface, OpenlayersPluginInterface
- class \Drupal\openlayers\OpenlayersConfigurablePluginBase implements OpenlayersConfigurablePluginInterface
- class \Drupal\openlayers\Plugin\OpenlayersStyle\Icon
- class \Drupal\openlayers\OpenlayersConfigurablePluginBase implements OpenlayersConfigurablePluginInterface
- class \Drupal\openlayers\OpenlayersPluginBase implements ContainerFactoryPluginInterface, OpenlayersPluginInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of Icon
File
- src/
Plugin/ OpenlayersStyle/ Icon.php, line 21
Namespace
Drupal\openlayers\Plugin\OpenlayersStyleView source
class Icon extends OpenlayersConfigurablePluginBase {
/**
* {@inheritdoc}
*/
public function getSummary() {
$summary = [
'#theme' => 'openlayers_style_summary',
'#data' => $this->configuration,
];
$summary += parent::getSummary();
return $summary;
}
/**
* {@inheritdoc}
*/
public function defaultConfiguration() {
return [
'anchor' => '0.5, 0.5',
'anchorOrigin' => 'top-left',
'anchorXUnits' => 'fraction',
'anchorYUnits' => 'fraction',
'color' => NULL,
'crossOrigin' => NULL,
'img' => NULL,
'offset' => NULL,
'displacement' => NULL,
'offsetOrigin' => 'top-left',
'opacity' => 1,
'scale' => 1,
'size' => NULL,
'imgSize' => NULL,
'src' => NULL,
];
}
/**
* {@inheritdoc}
*/
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
$form['anchor'] = [
'#type' => 'textfield',
'#default_value' => $this->configuration['anchor'],
'#title' => t('Anchor'),
'#description' => t("Anchor. Enter this in the form 'x, y'. Default value is the icon center '0, 0'."),
// "Anchor. Default value is the icon center."
// . Enter this in the form 'x, y'.
'#size' => 10,
'#maxlength' => 10,
'#required' => FALSE,
];
$form['anchorOrigin'] = [
'#type' => 'select',
'#default_value' => $this->configuration['anchorOrigin'],
'#title' => t('Anchor origin'),
'#description' => t("Origin of the anchor. Defaults to 'top-left'"),
'#options' => [
'top-left' => 'Top left',
'top-right' => 'Top right',
'bottom-left' => 'Bottom left',
'bottom-right' => 'Bottom right',
],
// '#size' => 20,
// '#maxlength' => 20,
'#required' => TRUE,
];
$form['anchorXUnits'] = [
'#type' => 'select',
'#default_value' => $this->configuration['anchorXUnits'],
'#title' => t('Anchor X units'),
'#description' => t("Units in which the anchor x value is specified. Defaults to 'fraction'"),
'#options' => [
'fraction' => 'Fraction',
'pixels' => 'Pixels',
],
'#required' => TRUE,
];
$form['anchorYUnits'] = [
'#type' => 'select',
'#default_value' => $this->configuration['anchorYUnits'],
'#title' => t('Anchor Y units'),
'#description' => t("Units in which the anchor y value is specified. Defaults to 'fraction'"),
'#options' => [
'fraction' => 'Fraction',
'pixels' => 'Pixels',
],
'#required' => TRUE,
];
$form['color'] = [
'#type' => 'textfield',
'#default_value' => $this->configuration['color'],
'#title' => t('Color'),
// TODO - improve description to recognise other valid color formats.
'#description' => t('The color to be used for icon markers on the map. Use web-style hex colors (#FFFFFF for white, #000000 for black).'),
'#size' => 20,
'#maxlength' => 20,
'#required' => FALSE,
];
$form['crossOrigin'] = [
'#type' => 'textfield',
'#default_value' => $this->configuration['crossOrigin'],
'#title' => t('Cross origin'),
'#description' => t('The crossOrigin attribute for loaded images.'),
'#size' => 20,
'#maxlength' => 20,
'#required' => FALSE,
];
$form['img'] = [
'#type' => 'textfield',
'#default_value' => $this->configuration['img'],
'#title' => t('img'),
'#description' => t('Image object for the icon. If the src option is not provided then the provided image must already be loaded. And in that case,' . ' it is required to provide the size of the image, with the imgSize option.'),
'#size' => 20,
'#maxlength' => 20,
'#required' => FALSE,
];
$form['offset'] = [
'#type' => 'textfield',
'#default_value' => $this->configuration['offset'],
'#title' => t('Offset'),
'#description' => t("Offset, together with the size and the offset origin, defines the sub-rectangle to use from the original icon image." . " Enter this in the form 'x, y'. Defaults to '0,0'."),
'#size' => 10,
'#maxlength' => 10,
'#required' => FALSE,
];
$form['displacement'] = [
'#type' => 'textfield',
'#default_value' => $this->configuration['displacement'],
'#title' => t('Displacement'),
'#description' => t("Displacement of the icon. Enter this in the form 'x, y'. Defaults to '0,0'."),
'#size' => 10,
'#maxlength' => 10,
'#required' => FALSE,
];
$form['offsetOrigin'] = [
'#type' => 'select',
'#default_value' => $this->configuration['offsetOrigin'],
'#title' => t('Offset origin'),
'#description' => t("Origin of the offset. Defaults to 'top-left'"),
'#options' => [
'top-left' => 'Top left',
'top-right' => 'Top right',
'bottom-left' => 'Bottom left',
'bottom-right' => 'Bottom right',
],
'#required' => TRUE,
];
$form['opacity'] = [
'#type' => 'number',
'#step' => 0.1,
'#max' => 1,
'#min' => 0,
'#default_value' => $this->configuration['opacity'],
'#title' => t('Opacity'),
'#description' => t('The opacity to be used for icon markers on the map. Defaults to 1.'),
'#required' => TRUE,
];
$form['scale'] = [
'#type' => 'number',
'#step' => 1,
'#max' => 10,
'#min' => 1,
'#default_value' => $this->configuration['scale'],
'#title' => t('Scale'),
'#description' => t('The scale to be used for icon markers on the map. Defaults to 1.'),
'#required' => TRUE,
];
$form['size'] = [
'#type' => 'number',
'#default_value' => $this->configuration['size'],
'#title' => t('Icon size in pixels'),
'#description' => t('The icon size (in pixels) to be used for icon markers on the map.'),
'#required' => FALSE,
];
$form['imgSize'] = [
'#type' => 'number',
'#default_value' => $this->configuration['imgSize'],
'#title' => t('Image size in pixels'),
'#description' => t('The image size (in pixels) to be used for icon markers on the map.'),
'#required' => FALSE,
];
$form['src'] = [
'#type' => 'textfield',
'#default_value' => $this->configuration['src'],
'#title' => t('Source URI'),
'#description' => t('Image source URI.'),
'#size' => 150,
'#maxlength' => 255,
'#required' => FALSE,
];
return $form;
}
/**
* {@inheritdoc}
*/
public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
/*
if (!$form_state->isValueEmpty('color') && !Color::validateHex($form_state->getValue('color'))) {
$form_state->setErrorByName('color', $this->t('Color must be a hexadecimal color value.'));
}
*/
}
/**
* {@inheritdoc}
*/
public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
parent::submitConfigurationForm($form, $form_state);
$this->configuration['anchor'] = $form_state
->getValue('anchor');
$this->configuration['anchorOrigin'] = $form_state
->getValue('anchorOrigin');
$this->configuration['anchorXUnits'] = $form_state
->getValue('anchorXUnits');
$this->configuration['anchorYUnits'] = $form_state
->getValue('anchorYUnits');
$this->configuration['color'] = $form_state
->getValue('color');
$this->configuration['crossOrigin'] = $form_state
->getValue('crossOrigin');
$this->configuration['img'] = $form_state
->getValue('img');
$this->configuration['offset'] = $form_state
->getValue('offset');
$this->configuration['displacement'] = $form_state
->getValue('displacement');
$this->configuration['offsetOrigin'] = $form_state
->getValue('offsetOrigin');
$this->configuration['opacity'] = $form_state
->getValue('opacity');
$this->configuration['scale'] = $form_state
->getValue('scale');
$this->configuration['size'] = $form_state
->getValue('size');
$this->configuration['imgSize'] = $form_state
->getValue('imgSize');
$this->configuration['src'] = $form_state
->getValue('src');
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
Icon:: |
public | function |
Form constructor. Overrides PluginFormInterface:: |
|
Icon:: |
public | function |
Gets default configuration for this plugin. Overrides OpenlayersPluginBase:: |
|
Icon:: |
public | function |
Returns a render array summarizing the configuration of the image effect. Overrides OpenlayersPluginBase:: |
|
Icon:: |
public | function |
Form submission handler. Overrides OpenlayersConfigurablePluginBase:: |
|
Icon:: |
public | function |
Form validation handler. Overrides OpenlayersConfigurablePluginBase:: |
|
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
OpenlayersPluginBase:: |
protected | property | A logger instance. | |
OpenlayersPluginBase:: |
protected | property | The image effect ID. | |
OpenlayersPluginBase:: |
protected | property | The weight of the image effect. | |
OpenlayersPluginBase:: |
public | function |
Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: |
|
OpenlayersPluginBase:: |
public static | function |
Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: |
|
OpenlayersPluginBase:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurableInterface:: |
|
OpenlayersPluginBase:: |
public | function |
Returns the extension of the derivative after applying this image effect. Overrides OpenlayersPluginInterface:: |
|
OpenlayersPluginBase:: |
public | function |
Returns the unique ID representing the image effect. Overrides OpenlayersPluginInterface:: |
|
OpenlayersPluginBase:: |
public | function |
Returns the weight of the image effect. Overrides OpenlayersPluginInterface:: |
|
OpenlayersPluginBase:: |
public | function |
Returns the image effect label. Overrides OpenlayersPluginInterface:: |
|
OpenlayersPluginBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: |
|
OpenlayersPluginBase:: |
public | function |
Sets the weight for this image effect. Overrides OpenlayersPluginInterface:: |
|
OpenlayersPluginBase:: |
public | function |
Determines the dimensions of the styled image. Overrides OpenlayersPluginInterface:: |
|
OpenlayersPluginBase:: |
public | function |
Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase:: |
|
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |