You are here

public function Drawing::getSettingsForm in Geolocation Field 8.3

Same name and namespace in other branches
  1. 8.2 modules/geolocation_google_maps/src/Plugin/geolocation/MapFeature/Drawing.php \Drupal\geolocation_google_maps\Plugin\geolocation\MapFeature\Drawing::getSettingsForm()

Provide a generic map settings form array.

Parameters

array $settings: The current map settings.

array $parents: Form specific optional prefix.

Return value

array A form array to be integrated in whatever.

Overrides MapFeatureBase::getSettingsForm

File

modules/geolocation_google_maps/src/Plugin/geolocation/MapFeature/Drawing.php, line 50

Class

Drawing
Provides Drawing.

Namespace

Drupal\geolocation_google_maps\Plugin\geolocation\MapFeature

Code

public function getSettingsForm(array $settings, array $parents) {
  $states_prefix = array_shift($parents) . '[' . implode('][', $parents) . ']';
  $form['polyline'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Draw polyline'),
    '#description' => $this
      ->t('A polyline is a linear overlay of connected line segments on the map.'),
    '#default_value' => $settings['polyline'],
  ];
  $form['strokeColor'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Stroke color'),
    '#description' => $this
      ->t('The stroke color. All CSS3 colors are supported except for extended named colors.'),
    '#size' => 4,
    '#default_value' => $settings['strokeColor'],
    '#states' => [
      'visible' => [
        [
          'input[name="' . $states_prefix . '[polyline]"]' => [
            'checked' => TRUE,
          ],
        ],
        [
          'input[name="' . $states_prefix . '[polygon]"]' => [
            'checked' => TRUE,
          ],
        ],
      ],
    ],
  ];
  $form['strokeOpacity'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Stroke opacity'),
    '#description' => $this
      ->t('The stroke opacity between 0.0 and 1.0.'),
    '#size' => 2,
    '#default_value' => $settings['strokeOpacity'],
    '#states' => [
      'visible' => [
        [
          'input[name="' . $states_prefix . '[polyline]"]' => [
            'checked' => TRUE,
          ],
        ],
        [
          'input[name="' . $states_prefix . '[polygon]"]' => [
            'checked' => TRUE,
          ],
        ],
      ],
    ],
  ];
  $form['strokeWeight'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Stroke weight'),
    '#description' => $this
      ->t('The stroke width in pixels.'),
    '#size' => 2,
    '#default_value' => $settings['strokeWeight'],
    '#states' => [
      'visible' => [
        [
          'input[name="' . $states_prefix . '[polyline]"]' => [
            'checked' => TRUE,
          ],
        ],
        [
          'input[name="' . $states_prefix . '[polygon]"]' => [
            'checked' => TRUE,
          ],
        ],
      ],
    ],
  ];
  $form['geodesic'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Geodesic lines'),
    '#description' => $this
      ->t('When true, edges of the polygon are interpreted as geodesic and will follow the curvature of the Earth. When false, edges of the polygon are rendered as straight lines in screen space.'),
    '#default_value' => $settings['geodesic'],
    '#states' => [
      'visible' => [
        [
          'input[name="' . $states_prefix . '[polyline]"]' => [
            'checked' => TRUE,
          ],
        ],
        [
          'input[name="' . $states_prefix . '[polygon]"]' => [
            'checked' => TRUE,
          ],
        ],
      ],
    ],
  ];
  $form['polygon'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Draw polygon'),
    '#description' => $this
      ->t('Polygons form a closed loop and define a filled region.'),
    '#default_value' => $settings['polygon'],
  ];
  $form['fillColor'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Fill color'),
    '#description' => $this
      ->t('The fill color. All CSS3 colors are supported except for extended named colors.'),
    '#size' => 4,
    '#default_value' => $settings['fillColor'],
    '#states' => [
      'visible' => [
        'input[name="' . $states_prefix . '[polygon]"]' => [
          'checked' => TRUE,
        ],
      ],
    ],
  ];
  $form['fillOpacity'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Fill opacity'),
    '#description' => $this
      ->t('The fill opacity between 0.0 and 1.0.'),
    '#size' => 4,
    '#default_value' => $settings['fillOpacity'],
    '#states' => [
      'visible' => [
        'input[name="' . $states_prefix . '[polygon]"]' => [
          'checked' => TRUE,
        ],
      ],
    ],
  ];
  return $form;
}