Class: Control

Mapspace.control. Control

A control is a visible widget with a DOM element in a fixed position on the screen. They can involve user input (buttons), or be informational only; the position is determined using CSS. By default these are placed in the container with CSS class name mapspace-overlaycontainer-stopevent, but can use any outside DOM element.

This is the base class for controls. You can use it for simple custom controls by creating the element with listeners, creating an instance:

var myControl = new Mapspace.control.Control({element: myElement});

The main advantage of having this as a control rather than a simple separate DOM element is that preventing propagation is handled for you.

Globalization support is provided through the singleton Mapspace.Globalization. Any change to the language property of the singleton will be tracked by all controls that have a chance to update its strings overriding the method updateLanguage.

You can also extend this base for your own control class.


new Control( [options])

Parameters:
Name Type Argument Description
options Mapspace.control.ControlOptions <optional>

Control options.

Source:
mapspace/controls/control.js
Fires:
  • ol.Object.Event#event:change:enabled

Extends

  • ol.Object

Members


classNames :string|undefined

The class names to add to the default ones that the control will create.

Source:
mapspace/controls/control.js

controldefs :Array.<Mapspace.ControlDefinition>

Array of control definitions this control contains.

Source:
mapspace/controls/control.js

<nullable> element :Element

This is the HTML element where the control is drawn. Do not modify this property directly. Use only in the constructor.

Source:
mapspace/controls/control.js

globalizationKey :string|undefined

This is the string that identifies in Mapspace.strings this control for globalization purposes.

Source:
mapspace/controls/control.js

<nullable> target :Element

This is the HTML element where the control is appended. Do not modify this property directly. Use constructor or setTarget to set this value.

Source:
mapspace/controls/control.js

Methods


addControlDefinition(controldef)

Adds a control definition to the control. By default the control in the control definition is changed its target to the element of this control. Override this behaviour in inherited classes to change the target to another one.

Parameters:
Name Type Description
controldef *

Control definition.

Source:
mapspace/controls/control.js

addControlDefinitions(controldefs)

Adds an array of control definitions to the control. Controls in the control definition array shouldn't have a target set.

Parameters:
Name Type Description
controldefs Array.<Mapspace.control.ControlDefinition>

Array of control definitions to add.

Source:
mapspace/controls/control.js

containsControlDefinition(controldef)

Checks if a control definition is already added.

Parameters:
Name Type Description
controldef Mapspace.ControlDefinition

Control definition to check.

Source:
mapspace/controls/control.js
Returns:

True if it is added.

Type
boolean

fade(fadeIn)

Fades this control in or out. This method ignores the fadeOut property of the control. You must care to check if this control can be faded or not checking that value and also if this control lies inside an active viewer.

Parameters:
Name Type Description
fadeIn boolean

If the control must fade in, otherwise it will fade out.

Source:
mapspace/controls/control.js

getControlDefinitions()

Return the array of control definitions this control has inside.

Source:
mapspace/controls/control.js
Returns:
Type
Array.<Mapspace.ControlDefinition>

getEnabled()

Return whether the control is currently enabled. When a control is not enabled can be clicked, cannot be dragged, but none of those interactions produce any event.

Source:
mapspace/controls/control.js
Returns:

true if the control is enabled, false otherwise.

Type
boolean

getFadeInEnabled()

Returns if the control can be faded in. By default is true.

Source:
mapspace/controls/control.js
Returns:
Type
boolean

getFadeOutMode()

Returns the mode this control can be faded when it is in an active viewer. This value can be changed through the fadeOut option in the creation of the control. By default it is 'NEVER'. This default value can be overrided in derived classes.

Source:
mapspace/controls/control.js
Returns:
Type
Mapspace.control.FadeOutMode

getTranslation(id)

Returns the translation for a given property ID. The Mapspace.strings object contains pairs of key and values. Each key follows the pattern: globalizationKey#propertyID.

Parameters:
Name Type Description
id string

The property ID.

Source:
mapspace/controls/control.js
Returns:

The translation or undefined if not found.

Type
string | undefined

hasClassName(className)

Returns if the control has a class name

Parameters:
Name Type Description
className string

The class name.

Source:
mapspace/controls/control.js

isTool()

Returns true if this control is a tool. A tool is a control that contains one or several options in a list (for example a Mapspace.control.ViewerTools) that are linked to a viewer and only one of them can be active at a time. Tools are usually related to interactions in a way that only one interaction can be active at a time in a viewer.

Source:
mapspace/controls/control.js
Returns:
Type
boolean

setEnabled(enabled)

Sets the control to enabled or not. When a control is not enabled can be clicked, cannot be dragged, but none of those interactions produce any event.

Parameters:
Name Type Description
enabled boolean

Enabled.

Source:
mapspace/controls/control.js

setFadeInEnabled(enabled)

Sets if the control can be faded in. By default is true.

Parameters:
Name Type Description
enabled boolean
Source:
mapspace/controls/control.js

setTarget(target)

This function is used to set a target element for the control.

Parameters:
Name Type Description
target Element | string | Mapspace.Viewer

Target.

Source:
mapspace/controls/control.js

<abstract> unselectTool()

If this control is a tool the unselects the tool.

Source:
mapspace/controls/control.js

<abstract> updateLanguage()

Updates the control for the current language in the Mapspace.Globalization singleton.

Source:
mapspace/controls/control.js