Class: Control

bu.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 bu-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 bu.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 bu.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 bu.control.ControlOptions <optional>

Control options.

Source:
bu/controls/control.js

Extends

  • ol.Object

Members


controldefs :Array.<bu.ControlDefinition>

Array of control definitions this control contains.

Type:
Source:
bu/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.

Type:
  • Element
Source:
bu/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.

Type:
  • Element
Source:
bu/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:
bu/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.<bu.control.ControlDefinition>

Array of control definitions to add.

Source:
bu/controls/control.js

containsControlDefinition(controldef)

Checks if a control definition is already added.

Parameters:
Name Type Description
controldef bu.ControlDefinition

Control definition to check.

Source:
bu/controls/control.js
Returns:

True if it is added.

Type
boolean

getControlDefinitions()

Return the array of control definitions this control has inside.

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

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 bu.control.Switcher) 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:
bu/controls/control.js
Returns:
Type
boolean

setTarget(target)

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

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

Target.

Source:
bu/controls/control.js

<abstract> unselectTool()

If this control is a tool the unselects the tool.

Source:
bu/controls/control.js

<abstract> updateLanguage()

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

Source:
bu/controls/control.js