Class: Layer

Granite.author. Layer

A Layer is an abstract concept defined by a name, an icon, and some activate/deactivate behavior.

Layers bring specific functionalities (Edit, Preview, Target) to the Editor; they contain the actual business logic that allows you to interact / author the content page.

WARNING: If you want to implement your own Layer, you may want to override the edit.Layer (instead of overriding this class) as it comes with some default configuration that you may want to reuse. The abstract Layer class is more a "base" Layer that describes the high-level Layer contract.


<abstract> new Layer( [config])

The Layer constructor could be used with one configuration object parameter (WARNING: multiple inline parameters usage is deprecated). In such case, the passed Configuration object will override the defaults from Granite.author.Layer#config.

Parameters:
Name Type Argument Description
config LayerConfig <optional>

The Layer Configuration object. If ommitted, the default Granite.author.Layer#config will be used.

Source:
layers/Layer.js

Members


config :LayerConfig

The default Layer Configuration that will be used to configure the Layer behavior.

Subclasses should override this object instead of overriding Layer#activate and Layer#deactivate methods. If additional adjustments are needed (that aren't configurable yet in the activate method), please leverage the setUp and tearDown methods.

For an example of a Layer configuration object, refer to edit.CONFIG

Type:
Source:
layers/Layer.js

Methods


<private> _activateOverlays()

Activates the overlay manager and the overlay creation mechanic

Source:
layers/Layer.js

activate()

Activates the Layer according to its configuration. It includes the following operations:

  • Creates the Editables in the store (according to config.editableConstructor)
  • Creates the Overlays for the Editables (according to config.overlayConstructor)
  • Sets the Editable Toolbar (according to config.toolbarConstructor + config.toolbarActions)
  • Initializes the SidePanel (according to config.sidePanel)
  • Binds the Interaction events on Overlays (according to config.interactions)

WARNING: Don't override this method since it is aimed at being configurable through the Layer configuration object. If you need to perform specific operations, refer to the setUp method.

Source:
layers/Layer.js
Returns:
  • The current layer
Type
Granite.author.Layer

deactivate()

Reverts the actions executed by Granite.author.Layer#activate

WARNING: Don't override this method since it is aimed at being configurable through the Layer configuration object. If you need to perform specific operations, refer to the tearDown method.

Source:
layers/Layer.js
Returns:
  • The current Layer
Type
Granite.author.Layer

isAvailable()

Indicates if the Layer is available for the current context. If the Layer isn't available, then it won't be shown in the Layer selector and won't be used in the Editor.

Source:
layers/Layer.js
Returns:
  • Returns true if the Layer is available for the current context
Type
boolean

setUp()

Override this method to execute specific set up operations (in addition to the activate method)
This method is called by Granite.author.Layer#activate

Source:
layers/Layer.js

tearDown()

Override this method to execute specific clean up operations (in addition to the deactivate method)
This method is called by Granite.author.Layer#deactivate

Source:
layers/Layer.js