[API](/solutions/geotoolkit/geotoolkit_js/apis/readme) / [geotoolkit](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit) / [welllog](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.welllog) / [widgets](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.welllog#widgets) / [tools](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.welllog#tools) / [annotations](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.welllog#annotations) / [AnnotationEditor](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.welllog#annotationeditor) / AnnotationEditor

# Class: AnnotationEditor

[annotations](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.welllog#annotations).[AnnotationEditor](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.welllog#annotationeditor).AnnotationEditor

Paint tool is used to create/modify nodes, using [AbstractEditor](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.abstracteditor.abstracteditor)'s

## Hierarchy

- [`Paint`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint)
↳ **`AnnotationEditor`**


## Table of contents

Constructors
- [new AnnotationEditor(options)](/solutions/geotoolkit/GeoToolkit_JS/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor.md#new annotationeditor(options))


Methods
| [addListener](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#addlistener) | [canRedo](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#canredo) | [canUndo](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#canundo) |
|  --- | --- | --- |
| [captureMouseUp](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#capturemouseup) | [clear](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#clear) | [createEditor](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#createeditor) |
| [dispose](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#dispose) | [editNode](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#editnode) | [execute](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#execute) |
| [fireEvent](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#fireevent) | [getActiveShape](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#getactiveshape) | [getClassName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#getclassname) |
| [getEditMode](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#geteditmode) | [getEditor](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#geteditor) | [getEventRadius](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#geteventradius) |
| [getHistory](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#gethistory) | [getManipulatorLayer](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#getmanipulatorlayer) | [getMode](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#getmode) |
| [getMouseRadius](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#getmouseradius) | [getName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#getname) | [getParentTool](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#getparenttool) |
| [getProperties](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#getproperties) | [getProperty](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#getproperty) | [getPropertyKeys](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#getpropertykeys) |
| [getRegistry](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#getregistry) | [getRoot](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#getroot) | [getShape](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#getshape) |
| [getTouchRadius](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#gettouchradius) | [hasEventListener](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#haseventlistener) | [isActive](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#isactive) |
| [isDisposed](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#isdisposed) | [isDoubleClick](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#isdoubleclick) | [isEnabled](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#isenabled) |
| [isSilent](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#issilent) | [isTouchEvent](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#istouchevent) | [loadAnnotations](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#loadannotations) |
| [notify](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#notify) | [off](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#off) | [on](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#on) |
| [onActiveStateChanged](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#onactivestatechanged) | [onBeforeCommandApplying](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#onbeforecommandapplying) | [onCommandApplied](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#oncommandapplied) |
| [onCommandApplying](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#oncommandapplying) | [onCommandRedo](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#oncommandredo) | [onCommandUndo](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#oncommandundo) |
| [onEnabledStateChanged](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#onenabledstatechanged) | [onKeyDown](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#onkeydown) | [onKeyUp](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#onkeyup) |
| [onMouseDown](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#onmousedown) | [onMouseMove](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#onmousemove) | [onMouseUp](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#onmouseup) |
| [onNodeCreated](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#onnodecreated) | [pageToCanvas](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#pagetocanvas) | [pointToModel](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#pointtomodel) |
| [redo](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#redo) | [removeListener](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#removelistener) | [saveAnnotations](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#saveannotations) |
| [setActive](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#setactive) | [setEditMode](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#seteditmode) | [setEditor](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#seteditor) |
| [setEnabled](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#setenabled) | [setMode](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#setmode) | [setMouseRadius](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#setmouseradius) |
| [setName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#setname) | [setNodeResolver](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#setnoderesolver) | [setNodeResolverByUuid](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#setnoderesolverbyuuid) |
| [setNodeUuidResolver](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#setnodeuuidresolver) | [setProperties](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#setproperties) | [setProperty](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#setproperty) |
| [setSilent](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#setsilent) | [setSlotEnabled](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#setslotenabled) | [setSlots](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#setslots) |
| [setTouchRadius](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#settouchradius) | [start](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#start) | [stop](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#stop) |
| [toggle](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#toggle) | [undo](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#undo) | [update](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#update) |
| [updateHandles](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#updatehandles) | [canvasToClient](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#canvastoclient) | [clientToCanvas](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#clienttocanvas) |
| [getClassName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#getclassname-1) | [getExclusiveTool](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#getexclusivetool) | [getNativeEventName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#getnativeeventname) |
| [isTouchEvent](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#istouchevent-1) | [lock](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#lock) | [setDefaultMouseRadius](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#setdefaultmouseradius) |
| [setDefaultTouchRadius](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#setdefaulttouchradius) | [unlock](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor#unlock) |


Css Properties
| Name  | Type  | Description |
|  --- | --- | --- |
| `editmode` | [`EditMode`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#tools#editmode#editmode) | Paint editor editing mode to determine which elements/features are allowed |
| `editor` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#tools#abstracttool#abstracttool#options) | The extra editor properties to be provided for every new editor (see |
| `editor-enabled` | `boolean` | Enabled state |
| `editor-layer` | [`CompositeNode`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.compositenode.compositenode#css-props) | Manipulator layer |
| `editor-layer-clipping` | `boolean` | Enable clipping, this does not consider the clipstyle, it is related to bounds-clipping |
| `editor-layer-clipstyle` | [`ClipStyle`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.attributes.clipstyle.clipstyle#css-props) | Clipping style |
| `editor-layer-clipstyle-evenodd` | `boolean` | True if evenodd mode is on (&#x27;nonzero&#x27; mode otherwise) |
| `editor-layer-clipstyle-geometry` | [`GraphicsPath`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.renderer.graphicspath.graphicspath#css-props) | Clipping geometry |
| `editor-layer-clipstyle-geometry-bounds` | [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#css-props) | Bounds |
| `editor-layer-clipstyle-geometry-bounds-height` | `number` | Height |
| `editor-layer-clipstyle-geometry-bounds-readonly` | `boolean` | Readonly |
| `editor-layer-clipstyle-geometry-bounds-width` | `number` | Width |
| `editor-layer-clipstyle-geometry-bounds-x` | `number` | Left |
| `editor-layer-clipstyle-geometry-bounds-y` | `number` | Top |
| `editor-layer-clipstyle` | [`GraphicsPath`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.renderer.graphicspath.graphicspath#css-props) | Clipping style |
| `editor-layer-cssclass` | `string` | The css class name of this node |
| `editor-layer-csscursor` | `string` | CSS cursor associated with node |
| `editor-layer-cssstyle` | `string` | CSS style to be applied to inserted elements |
| `editor-layer-id` | `string | number` | Id of the node, its a unique identifier |
| `editor-layer-infinity` | `boolean` | Mode to render outside the model limits |
| `editor-layer-localtransform` | [`Transformation`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.transformation.transformation#css-props) | Local transformation |
| `editor-layer-localtransform-dx` | `number` | X axis translation |
| `editor-layer-localtransform-dy` | `number` | Y axis translation |
| `editor-layer-localtransform-xx` | `number` | X scale |
| `editor-layer-localtransform-xy` | `number` | Xy skew |
| `editor-layer-localtransform-yx` | `number` | Yx skew |
| `editor-layer-localtransform-yy` | `number` | Y scale |
| `editor-layer-margins` | `number | string` | It has properties for specifying the margins for each side |
| `editor-layer-name` | `string` | Name of the node. It is often used for debugging purposes or to simplify queries |
| `editor-layer-opacity` | `number` | Node opacity (from 0 to 1). If it is undefined or null it inherits property from the parent.
It changes globalAlpha on the rendering context |
| `editor-layer-opacityblendmode` | [`BlendMode`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.util#blendmode#blendmode) | Node opacity mode to blend it |
| `editor-layer-scalescrollstrategy` | [`ScaleScrollStrategy`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.scalescrollstrategy.scalescrollstrategy#css-props) | Scale scroll strategy |
| `editor-layer-scalescrollstrategy-enabled` | `boolean` | Enable flag |
| `editor-layer-selectable` | `boolean` | Selectable node, a boolean to determine if selection should consider this node |
| `editor-layer-tag` | `any` | Custom information associated with node. It is a user object which can be used by client code to store information or attach an application object to the shape |
| `editor-layer-transform` | `string` | Additional CSS transformation applied to node or &#x27;none&#x27; |
| `editor-layer-transform` | [`Transformation`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.transformation.transformation#css-props) | Additional CSS transformation applied to node or &#x27;none&#x27; |
| `editor-layer-visible` | `boolean` | Visibility of the node, a boolean to determine if the node should be rendered or not |
| `editor-layer-z-index` | `number` | Define node z-index |
| `editor-mouseradius` | `number` | Device radius for mouse events |
| `editor-name` | `string` | Name of the tool used like cross-hair etc |
| `editor-touchradius` | `number` | Device radius for touch events |
| `editor` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#tools#editors#abstracteditorbase#abstracteditorbase#options) | The extra editor properties to be provided for every new editor (see |
| `editor-bbox` | [`Path`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.shapes.path.path#css-props) | Bounding box path to draw bounding rectangle OR bounding box path properties (see |
| `editor-bbox-bounds` | [`Rect`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.rect.rect#css-props) | Bounds |
| `editor-bbox-clipstyle` | [`ClipStyle`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.attributes.clipstyle.clipstyle#css-props) | Clipping style |
| `editor-bbox-clipstyle` | [`GraphicsPath`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.renderer.graphicspath.graphicspath#css-props) | Clipping style |
| `editor-bbox-cssclass` | `string` | The css class name of this node |
| `editor-bbox-csscursor` | `string` | CSS cursor associated with node |
| `editor-bbox-cssstyle` | `string` | CSS style to be applied to inserted elements |
| `editor-bbox-fillstyle` | `string` | Style applied on fill |
| `editor-bbox-fillstyle` | [`FillStyle`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.attributes.fillstyle.fillstyle#css-props) | Style applied on fill |
| `editor-bbox-fillstyle-color` | `string` | Color in CSS form |
| `editor-bbox-fillstyle-evenoddmode` | `boolean` | Even-odd fill mode |
| `editor-bbox-fillstyle-fillpattern` | [`Pattern`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.attributes.pattern.pattern#css-props) | Pattern |
| `editor-bbox-fillstyle-fillpattern-containername` | `string` | An optional container name, which creates an image pattern. This
parameter is used for serialization if you want to save are reference to pattern instead of the pattern itself |
| `editor-bbox-fillstyle-fillpattern-patternname` | `string` | Name of this pattern for indexing |
| `editor-bbox-fillstyle-fillpattern-scalable` | `boolean` | Flag that sets scalability of the pattern
coordinates, or relative to the shape it is filling (It is not supported) |
| `editor-bbox-fillstyle-foreground` | `string` | Foreground color |
| `editor-bbox-fillstyle-pattern` | [`Pattern`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.attributes.pattern.pattern#css-props) | Pattern |
| `editor-bbox-geometry` | [`GraphicsPath`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.renderer.graphicspath.graphicspath#css-props) | Geometry the path |
| `editor-bbox-id` | `string | number` | Id of the node, its a unique identifier |
| `editor-bbox-linestyle` | `string` | Style applied on outline |
| `editor-bbox-linestyle` | [`LineStyle`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.attributes.linestyle.linestyle#css-props) | Style applied on outline |
| `editor-bbox-linestyle-color` | `string` | Color in CSS form |
| `editor-bbox-linestyle-fill` | `string` | Optional fill style to be used to fill lines generated with this style |
| `editor-bbox-linestyle-fill` | [`FillStyle`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.attributes.fillstyle.fillstyle#css-props) | Optional fill style to be used to fill lines generated with this style |
| `editor-bbox-linestyle-linecap` | [`CapStyle`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.attributes.linestyle#capstyle) | The line cap style |
| `editor-bbox-linestyle-linedashoffset` | `number` | Line dash offset of dashed line |
| `editor-bbox-linestyle-linejoin` | [`JoinStyle`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.attributes.linestyle#joinstyle) | The line join style |
| `editor-bbox-linestyle-pixelsnapmode` | `boolean` | Pixel Snap Mode, default( |
| `editor-bbox-linestyle-scalable` | `boolean` | True if width should depend on transformation |
| `editor-bbox-linestyle-unit` | `string` | Optional unit for the width |
| `editor-bbox-linestyle-width` | `number | string` | The line thickness |
| `editor-bbox-localtransform` | [`Transformation`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.transformation.transformation#css-props) | Local transformation |
| `editor-bbox-margins` | `number | string` | It has properties for specifying the margins for each side |
| `editor-bbox-name` | `string` | Name of the node. It is often used for debugging purposes or to simplify queries |
| `editor-bbox-opacity` | `number` | Node opacity (from 0 to 1). If it is undefined or null it inherits property from the parent.
It changes globalAlpha on the rendering context |
| `editor-bbox-opacityblendmode` | [`BlendMode`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.util#blendmode#blendmode) | Node opacity mode to blend it |
| `editor-bbox-scalescrollstrategy` | [`ScaleScrollStrategy`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.scalescrollstrategy.scalescrollstrategy#css-props) | Scale scroll strategy |
| `editor-bbox-selectable` | `boolean` | Selectable node, a boolean to determine if selection should consider this node |
| `editor-bbox-tag` | `any` | Custom information associated with node. It is a user object which can be used by client code to store information or attach an application object to the shape |
| `editor-bbox-transform` | `string` | Additional CSS transformation applied to node or &#x27;none&#x27; |
| `editor-bbox-transform` | [`Transformation`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.transformation.transformation#css-props) | Additional CSS transformation applied to node or &#x27;none&#x27; |
| `editor-bbox-visible` | `boolean` | Visibility of the node, a boolean to determine if the node should be rendered or not |
| `editor-bbox-z-index` | `number` | Define node z-index |
| `editor-editmode` | [`EditMode`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#tools#editmode#editmode) | Node edit mode |
| `editor-ghost` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.scene.node#node#options) | Options for |
| `editor-ghost-cssclass` | `string` | The css class name of this node |
| `editor-ghost-id` | `string | number` | Id of the node, its a unique identifier |
| `editor-ghost-name` | `string` | Name of the node. It is often used for debugging purposes or to simplify queries |
| `editor-ghost-selectable` | `boolean` | Selectable node, a boolean to determine if selection should consider this node |
| `editor-ghost-tag` | `any` | Custom information associated with node. It is a user object which can be used by client code to store information or attach an application object to the shape |
| `editor-ghost-visible` | `boolean` | Visibility of the node, a boolean to determine if the node should be rendered or not |
| `editor-ghost-z-index` | `number` | Define node z-index |
| `editor-ghost` | [`GhostOptions`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#tools#editors#abstracteditorbase#abstracteditorbase#ghostoptions) | Options for |
| `editor-ghost-fillstyle` | `string` | Ghost fill style |
| `editor-ghost-fillstyle` | [`FillStyle`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.attributes.fillstyle.fillstyle#css-props) | Ghost fill style |
| `editor-ghost-linestyle` | `string` | Ghost line style |
| `editor-ghost-linestyle` | [`LineStyle`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.attributes.linestyle.linestyle#css-props) | Ghost line style |
| `editor-ghost-opacity` | `number` | Ghost opacity from 0 to 1 |
| `editor-handles` | [`HandlesOptions`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#tools#editors#abstracteditorbase#abstracteditorbase#handlesoptions) | Handles properties |
| `editor-handles-bbox` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.scene.node#node#options) | Bbox resize handles properties (see |
| `editor-handles-bbox` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.scene#abstractnode#abstractnode#options) | Bbox resize handles properties (see |
| `editor-handles-bbox-clipstyle` | [`ClipStyle`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.attributes.clipstyle.clipstyle#css-props) | Clipping style |
| `editor-handles-bbox-clipstyle` | [`GraphicsPath`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.renderer.graphicspath.graphicspath#css-props) | Clipping style |
| `editor-handles-bbox-csscursor` | `string` | CSS cursor associated with node |
| `editor-handles-bbox-cssstyle` | `string` | CSS style to be applied to inserted elements |
| `editor-handles-bbox-localtransform` | [`Transformation`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.transformation.transformation#css-props) | Local transformation |
| `editor-handles-bbox-margins` | `number | string` | It has properties for specifying the margins for each side |
| `editor-handles-bbox-opacity` | `number` | Node opacity (from 0 to 1). If it is undefined or null it inherits property from the parent.
It changes globalAlpha on the rendering context |
| `editor-handles-bbox-opacityblendmode` | [`BlendMode`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.util#blendmode#blendmode) | Node opacity mode to blend it |
| `editor-handles-bbox-scalescrollstrategy` | [`ScaleScrollStrategy`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.scalescrollstrategy.scalescrollstrategy#css-props) | Scale scroll strategy |
| `editor-handles-bbox-transform` | `string` | Additional CSS transformation applied to node or &#x27;none&#x27; |
| `editor-handles-bbox-transform` | [`Transformation`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.transformation.transformation#css-props) | Additional CSS transformation applied to node or &#x27;none&#x27; |
| `editor-handles-bbox` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.scene#shapes#shape#shape#options) | Bbox resize handles properties (see |
| `editor-handles-bbox-fillstyle` | `string` | Style applied on fill |
| `editor-handles-bbox-fillstyle` | [`FillStyle`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.attributes.fillstyle.fillstyle#css-props) | Style applied on fill |
| `editor-handles-bbox-linestyle` | `string` | Style applied on outline |
| `editor-handles-bbox-linestyle` | [`LineStyle`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.attributes.linestyle.linestyle#css-props) | Style applied on outline |
| `editor-handles-bbox` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.scene#shapes#anchoredshape#anchoredshape#options) | Bbox resize handles properties (see |
| `editor-handles-bbox-alignment` | [`AnchorType`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.util#anchortype#anchortype) | Alignment according to the anchor point |
| `editor-handles-bbox-ax` | `number` | Anchor x position |
| `editor-handles-bbox-ay` | `number` | Anchor y position |
| `editor-handles-bbox-height` | `number` | Shape height |
| `editor-handles-bbox-ispointingup` | `boolean` | Defines whether the shape is always pointing up |
| `editor-handles-bbox-layoutstyle` | [`LayoutStyle`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.layout.layoutstyle.layoutstyle#css-props) | Layout style to specify how to lay out shape |
| `editor-handles-bbox-layoutstyle-constraint` | [`SizeConstraint`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.layout#sizeconstraint#sizeconstraint) | Layout constrains |
| `editor-handles-bbox-layoutstyle-flexgrow` | `number` | Number specifying how much the item will grow relative to the rest of the items inside the same container |
| `editor-handles-bbox-layoutstyle-flexshrink` | `number` | Number specifying how much the item will shrink relative to the rest of the items inside the same container |
| `editor-handles-bbox-layoutstyle-float` | `string` | Float position |
| `editor-handles-bbox-layoutstyle-position` | `string` | Layout position |
| `editor-handles-bbox-layoutstyle-size` | `number | string` | Layout size |
| `editor-handles-bbox-maxdimension` | [`Dimension`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.dimension.dimension#css-props) | Maximum size for rendering |
| `editor-handles-bbox-maxdimension-height` | `number` | Height of dimension |
| `editor-handles-bbox-maxdimension-width` | `number` | Width of dimension or properties |
| `editor-handles-bbox-mindimension` | [`Dimension`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.dimension.dimension#css-props) | Minimum size for rendering |
| `editor-handles-bbox-preserveaspectratio` | `boolean` | Preserve aspect ratio of the anchored shape |
| `editor-handles-bbox-preservereadingorientation` | `boolean` | Preserve reading orientation for local transform |
| `editor-handles-bbox-preserverightangle` | `boolean` | Preserve right angle for local transformation |
| `editor-handles-bbox-rotationangle` | `number` | Rotation angle at anchor |
| `editor-handles-bbox-sizeisindevicespace` | `boolean` | Is coordinate in device space |
| `editor-handles-bbox-useminmaxdimensions` | `boolean` | Use the min max dimensions to limit visual size |
| `editor-handles-bbox-width` | `number` | Shape width |
| `editor-handles-bbox` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.scene#shapes#symbolshape#symbolshape#options) | Bbox resize handles properties (see |
| `editor-handles-bbox-alignment` | [`AnchorType`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.util#anchortype#anchortype) | Anchor type of symbol |
| `editor-handles-bbox-cache` | `boolean` | Set it to true if you want to cache complex geometry to raster |
| `editor-handles-bbox-painter` | `string` | A function with has parameters: symbol, box, context |
| `editor-handles-bbox-painterproperties` | `any` | Symbol&#x27;s painter&#x27;s properties |
| `editor-handles-rotation` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.scene.node#node#options) | Rotation handle properties (see |
| `editor-handles-rotation` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.scene#abstractnode#abstractnode#options) | Rotation handle properties (see |
| `editor-handles-rotation` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.scene#shapes#shape#shape#options) | Rotation handle properties (see |
| `editor-handles-rotation` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.scene#shapes#anchoredshape#anchoredshape#options) | Rotation handle properties (see |
| `editor-handles-rotation` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.scene#shapes#symbolshape#symbolshape#options) | Rotation handle properties (see |
| `enabled` | `boolean` | Enabled state |
| `layer` | [`CompositeNode`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.compositenode.compositenode#css-props) | Manipulator layer |
| `mode` | [`PaintMode`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#tools#paintmode#paintmode) | Paint mode to determine which shape is currently creating |
| `mouseradius` | `number` | Device radius for mouse events |
| `name` | `string` | Name of the tool used like cross-hair etc |
| `node` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.scene.node#node#options) | Options to be applied to the new shapes |
| `touchradius` | `number` | Device radius for touch events |


## Contents

Constructors
#### new AnnotationEditor(options)

• **new AnnotationEditor**(`options?`)

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `Optional` `options` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#paint#options) | tool options |


#### Overrides

Paint.constructor

Methods
#### addListener

▸ **addListener**(`eventName`, `listener`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

add event listener. The listener receives the message when the system event happens.

**`Deprecated`**

since 4.0 use .on() instead. Note that 3 args callback should be used in subscription via .on(): (eventType, source, args)

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `eventName` | `string` | event name or unique event identifier |
| `listener` | `Function` | the event listener |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[addListener](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#addlistener)

#### canRedo

▸ **canRedo**(): `boolean`

Checks if there is command in history to redo

#### Returns

`boolean`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[canRedo](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#canredo)

#### canUndo

▸ **canUndo**(): `boolean`

Checks if there is command in history to undo

#### Returns

`boolean`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[canUndo](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#canundo)

#### captureMouseUp

▸ **captureMouseUp**(): `void`

listen to window mouse events in order to catch a mouse up action outside of the tool container DOM element.
useful for example when you pan and release click outside of DOM element.

#### Returns

`void`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[captureMouseUp](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#capturemouseup)

#### clear

▸ **clear**(): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Clears scene from all the painting elements

#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

this

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[clear](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#clear)

#### createEditor

▸ `Protected` **createEditor**(`options`): [`AbstractEditorBase`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.abstracteditorbase.abstracteditorbase)<[`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node) | [`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node)[]&gt;

Returns editor to edit node with provided options

**`Throws`**

if supported editor was not found and default editor was not set

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `options` | `Record`<`string`, `any`&gt; | editor options |


#### Returns

[`AbstractEditorBase`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.abstracteditorbase.abstracteditorbase)<[`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node) | [`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node)[]&gt;

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[createEditor](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#createeditor)

#### dispose

▸ **dispose**(): `void`

Dispose tool.

#### Returns

`void`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[dispose](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#dispose)

#### editNode

▸ **editNode**(`node`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Starts editing the node provided

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `node` | [`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node) | [`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node)[] | node to edit |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

this

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[editNode](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#editnode)

#### execute

▸ **execute**(`command`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Applies the specified command to the associated node and appends it to history

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `command` | [`AbstractCommand`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.commands.abstractcommand.abstractcommand) | the command to execute |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[execute](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#execute)

#### fireEvent

▸ **fireEvent**(`eventName`, `eventArgs?`): `void`

This method is Protected. Fire an Event.

**`Deprecated`**

since 4.0 use .notify() instead. Note that 3 args callback should be used in subscription via .on()

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `eventName` | `string` | event name |
| `Optional` `eventArgs` | `any` | contains info of the event |


#### Returns

`void`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[fireEvent](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#fireevent)

#### getActiveShape

▸ **getActiveShape**(): [`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node)

Returns currently edited shape. Relevant for [EditMode.Ghost](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#tools#editmode#editmode#ghost) mode.

#### Returns

[`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getActiveShape](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#getactiveshape)

#### getClassName

▸ **getClassName**(): `string`

#### Returns

`string`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getClassName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#getclassname)

#### getEditMode

▸ **getEditMode**(): [`EditMode`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#editmode)

Returns tool current edit mode

#### Returns

[`EditMode`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#editmode)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getEditMode](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#geteditmode)

#### getEditor

▸ **getEditor**(): [`AbstractEditorBase`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.abstracteditorbase.abstracteditorbase)<[`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node) | [`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node)[]&gt;

Returns current editor tool (if exists)

#### Returns

[`AbstractEditorBase`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.abstracteditorbase.abstracteditorbase)<[`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node) | [`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node)[]&gt;

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getEditor](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#geteditor)

#### getEventRadius

▸ `Protected` **getEventRadius**(`eventArgs`): `number`

Returns device radius for the provided event

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `eventArgs` | [`EventArgs`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.eventargs.eventargs) | contains info of the event |


#### Returns

`number`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getEventRadius](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#geteventradius)

#### getHistory

▸ **getHistory**(): [`History`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.history.history)

Returns current history

#### Returns

[`History`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.history.history)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getHistory](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#gethistory)

#### getManipulatorLayer

▸ **getManipulatorLayer**(): [`CompositeNode`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.compositenode.compositenode)<[`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node)&gt;

return manipulator layer

#### Returns

[`CompositeNode`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.compositenode.compositenode)<[`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node)&gt;

layer

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getManipulatorLayer](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#getmanipulatorlayer)

#### getMode

▸ **getMode**(): [`PaintMode`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#paintmode)

Returns current painting mode

#### Returns

[`PaintMode`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#paintmode)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getMode](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#getmode)

#### getMouseRadius

▸ **getMouseRadius**(): `number`

Returns current device radius for mouse events

#### Returns

`number`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getMouseRadius](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#getmouseradius)

#### getName

▸ **getName**(): `string`

return tool name if any

#### Returns

`string`

name of the tool

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#getname)

#### getParentTool

▸ **getParentTool**(): [`AbstractCompositeTool`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.abstractcompositetool.abstractcompositetool)

Gets parent tool

#### Returns

[`AbstractCompositeTool`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.abstractcompositetool.abstractcompositetool)

parent tool

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getParentTool](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#getparenttool)

#### getProperties

▸ **getProperties**(): [`OptionsOut`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#paint#optionsout)

Returns all properties

#### Returns

[`OptionsOut`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#paint#optionsout)

tool options

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getProperties](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#getproperties)

#### getProperty

▸ **getProperty**(`name`): `any`

Gets dynamic property by name. These properties can be
used as a property bags

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `name` | `string` | property name |


#### Returns

`any`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getProperty](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#getproperty)

#### getPropertyKeys

▸ **getPropertyKeys**(): `string`[]

Returns known properties keys

#### Returns

`string`[]

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getPropertyKeys](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#getpropertykeys)

#### getRegistry

▸ `Protected` **getRegistry**(): [`Registry`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.registry.registry)

#### Returns

[`Registry`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.registry.registry)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getRegistry](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#getregistry)

#### getRoot

▸ **getRoot**(): [`AbstractCompositeTool`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.abstractcompositetool.abstractcompositetool)

Gets root tool

#### Returns

[`AbstractCompositeTool`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.abstractcompositetool.abstractcompositetool)

parent tool

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getRoot](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#getroot)

#### getShape

▸ **getShape**(): [`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node) | [`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node)[]

Returns the origin of currently edited shape (if exists, null otherwise).

#### Returns

[`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node) | [`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node)[]

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getShape](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#getshape)

#### getTouchRadius

▸ **getTouchRadius**(): `number`

Returns current device radius for touch events

#### Returns

`number`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getTouchRadius](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#gettouchradius)

#### hasEventListener

▸ **hasEventListener**(`type`, `callback?`): `boolean`

Check if a list of event listeners for this type contains this listener

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `type` | `string` | type of event or property |
| `Optional` `callback` | `Function` | to be called, if null, check if any callback is registered |


#### Returns

`boolean`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[hasEventListener](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#haseventlistener)

#### isActive

▸ **isActive**(): `boolean`

return active state

#### Returns

`boolean`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[isActive](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#isactive)

#### isDisposed

▸ **isDisposed**(): `boolean`

Returns whether this object has been disposed

#### Returns

`boolean`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[isDisposed](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#isdisposed)

#### isDoubleClick

▸ `Protected` **isDoubleClick**(`point`, `eventArgs?`): `boolean`

returns true if double clicked

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `point` | [`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point) | Click point |
| `Optional` `eventArgs` | [`EventArgs`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.eventargs.eventargs) | optional event args to verify double click |


#### Returns

`boolean`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[isDoubleClick](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#isdoubleclick)

#### isEnabled

▸ **isEnabled**(): `boolean`

returns enable state

#### Returns

`boolean`

state

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[isEnabled](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#isenabled)

#### isSilent

▸ **isSilent**(): `boolean`

Return true if the event dispatcher doesn't notify any events

#### Returns

`boolean`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[isSilent](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#issilent)

#### isTouchEvent

▸ **isTouchEvent**(`eventArgs`): `boolean`

return true if the event is a touch event and false otherwise.

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `eventArgs` | `Event` | [`EventArgs`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.eventargs.eventargs) | contains info of the event |


#### Returns

`boolean`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[isTouchEvent](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#istouchevent)

#### loadAnnotations

▸ **loadAnnotations**(`annotationsData`, `annotationsLayer`, `registry?`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Load annotations template to specified layer

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `annotationsData` | `string` | template to be applied to the annotation layer |
| `annotationsLayer` | [`CompositeNode`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.compositenode.compositenode)<[`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node)&gt; | target annotation layer |
| `Optional` `registry` | [`Registry`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.persistence.registry.registry) | registry |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

#### notify

▸ **notify**<`E`&gt;(`type`, `source`, `args?`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Notify listeners

#### Type parameters

| Name | Type |
|  --- | --- |
| `E` | extends `string` |


#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `type` | `E` | event types |
| `source` | [`AbstractEditingTool`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.abstracteditingtool.abstracteditingtool) | of the event |
| `Optional` `args` | [`EventMap`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#abstracteditorbase#eventmap)[`E`] | arguments of the event |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

this

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[notify](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#notify)

#### off

▸ **off**<`E`&gt;(`type?`, `callback?`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Detach listener on event.
Calling .off() with no arguments removes all attached listeners.
Calling .off(type) with no callback removes all attached listeners for specific type.

#### Type parameters

| Name | Type |
|  --- | --- |
| `E` | extends `string` |


#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `Optional` `type` | `E` | type of the event |
| `Optional` `callback` | (`eventType`: `E`, `sender`: [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor), `args`: [`EventMap`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#abstracteditingtool#eventmap)[`E`]) => `void` | function to be called |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

this

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[off](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#off)

#### on

▸ **on**<`E`&gt;(`type`, `callback`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Attach listener on event that will be called whenever the specified event is delivered to the target
<p>
If the callback function is already in the list of event listeners for this target, the function is not added a second time.
</p>
<p>
If a particular anonymous function is in the list of event listeners registered for a certain target, and then later in the code, an identical anonymous function is given in an "on" call, the second function will also be added to the list of event listeners for that target.
</p>
TypeScript hint: in case of creating derived tool with own events, EventMap should be extended and .on() and .notify() methods redeclared, see sample.

**`Example`**

```ts
// Using in derived tool
import type {EventMap as EventMapBase} from '@int/geotoolkit/controls/tools/AbstractTool';
export type EventMap = EventMapBase &amp; {
&#91;MyToolEvents.onValueChanged&#93;: MyToolEventArgs
}
export enum MyToolEvents {
onValueChanged = 'onValueChanged'
}
export class MyTool extends AbstractTool {
public declare on: &lt;E extends keyof EventMap&gt;(type: E, callback: (eventType: E, sender: this, args: EventMap&#91;E&#93;) =&gt; void) =&gt; this;
protected declare notify: &lt;E extends keyof EventMap&gt;(type: E, source: AbstractTool, args?: EventMap&#91;E&#93;) =&gt; this;
public declare off: &lt;E extends keyof EventMap&gt;(type: E, callback?: (eventType: E, sender: this, args: EventMap&#91;E&#93;) =&gt; void) =&gt; this;
// ...
}
```

#### Type parameters

| Name | Type |
|  --- | --- |
| `E` | extends `string` |


#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `type` | `E` | type of event or property |
| `callback` | (`eventType`: `E`, `sender`: [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor), `args`: [`EventMap`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#abstracteditingtool#eventmap)[`E`]) => `void` | to be called |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[on](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#on)

#### onActiveStateChanged

▸ `Protected` **onActiveStateChanged**(): `void`

**`Fires`**

[Events.onStateChanged](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#tools#abstracttool#events#onstatechanged)

#### Returns

`void`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[onActiveStateChanged](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#onactivestatechanged)

#### onBeforeCommandApplying

▸ `Protected` **onBeforeCommandApplying**(`eventName`, `history`, `command`): `void`

Fires the [EditEvents.BeforeCommandApplied](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#tools#editevents#editevents#beforecommandapplied) event

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `eventName` | [`EditEvents`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#editevents) | the event name |
| `history` | [`History`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.history.history) | the source history |
| `command` | [`AbstractCommand`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.commands.abstractcommand.abstractcommand) | the command applied |


#### Returns

`void`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[onBeforeCommandApplying](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#onbeforecommandapplying)

#### onCommandApplied

▸ `Protected` **onCommandApplied**(`eventName`, `history`, `command`): `void`

Fires the [EditEvents.CommandApplied](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#tools#editevents#editevents#commandapplied) event and the event according to the command event name

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `eventName` | [`EditEvents`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#editevents) | the event name |
| `history` | [`History`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.history.history) | the source history |
| `command` | [`AbstractCommand`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.commands.abstractcommand.abstractcommand) | the command applied |


#### Returns

`void`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[onCommandApplied](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#oncommandapplied)

#### onCommandApplying

▸ `Protected` **onCommandApplying**(`eventName`, `history`, `command`): `void`

Fires the [EditEvents.CommandApplying](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#tools#editevents#editevents#commandapplying) event

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `eventName` | [`EditEvents`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#editevents) | the event name |
| `history` | [`History`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.history.history) | the source history |
| `command` | [`AbstractCommand`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.commands.abstractcommand.abstractcommand) | the command applied |


#### Returns

`void`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[onCommandApplying](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#oncommandapplying)

#### onCommandRedo

▸ `Protected` **onCommandRedo**(`eventName`, `history`, `command`): `void`

Fires the [EditEvents.Redo](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#tools#editevents#editevents#redo) event

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `eventName` | [`EditEvents`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#editevents) | the event name |
| `history` | [`History`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.history.history) | the source history |
| `command` | [`AbstractCommand`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.commands.abstractcommand.abstractcommand) | the command |


#### Returns

`void`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[onCommandRedo](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#oncommandredo)

#### onCommandUndo

▸ `Protected` **onCommandUndo**(`eventName`, `history`, `command`): `void`

Fires the [EditEvents.Undo](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#tools#editevents#editevents#undo) event

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `eventName` | [`EditEvents`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#editevents) | the event name |
| `history` | [`History`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.history.history) | the source history |
| `command` | [`AbstractCommand`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.commands.abstractcommand.abstractcommand) | the command |


#### Returns

`void`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[onCommandUndo](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#oncommandundo)

#### onEnabledStateChanged

▸ `Protected` **onEnabledStateChanged**(): `void`

**`Fires`**

[Events.onEnabledStateChanged](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#tools#abstracttool#events#onenabledstatechanged)

#### Returns

`void`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[onEnabledStateChanged](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#onenabledstatechanged)

#### onKeyDown

▸ `Protected` **onKeyDown**(`eventArgs`): `void`

Handles key down event

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `eventArgs` | [`EventArgs`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.eventargs.eventargs) | event args |


#### Returns

`void`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[onKeyDown](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#onkeydown)

#### onKeyUp

▸ `Protected` **onKeyUp**(`eventArgs`): `void`

Handles key up event

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `eventArgs` | [`EventArgs`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.eventargs.eventargs) | event args |


#### Returns

`void`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[onKeyUp](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#onkeyup)

#### onMouseDown

▸ `Protected` **onMouseDown**(`eventArgs`): `void`

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `eventArgs` | [`EventArgs`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.eventargs.eventargs) | event args |


#### Returns

`void`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[onMouseDown](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#onmousedown)

#### onMouseMove

▸ `Protected` **onMouseMove**(`eventArgs`): `void`

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `eventArgs` | [`EventArgs`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.eventargs.eventargs) | event args |


#### Returns

`void`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[onMouseMove](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#onmousemove)

#### onMouseUp

▸ `Protected` **onMouseUp**(`eventArgs`): `void`

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `eventArgs` | [`EventArgs`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.eventargs.eventargs) | event args |


#### Returns

`void`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[onMouseUp](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#onmouseup)

#### onNodeCreated

▸ `Protected` **onNodeCreated**(`editor`, `eventArgs`): `void`

Node created handler

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `editor` | [`AbstractEditorBase`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.abstracteditorbase.abstracteditorbase)<[`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node) | [`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node)[]&gt; | editor that created node |
| `eventArgs` | [`PaintEventArgs`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.painteventargs.painteventargs) | event args |


#### Returns

`void`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[onNodeCreated](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#onnodecreated)

#### pageToCanvas

▸ **pageToCanvas**(`eventArgs`, `externalPlot?`): `Object`

return position relative to the canvas

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `eventArgs` | `Event` | [`EventArgs`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.eventargs.eventargs) | parentElement the parent HTML element |
| `Optional` `externalPlot` | [`Plot`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.plot.plot.plot) | plot |


#### Returns

`Object`

| Name | Type |
|  --- | --- |
| `x` | `number` |
| `y` | `number` |


#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[pageToCanvas](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#pagetocanvas)

#### pointToModel

▸ **pointToModel**(`model`, `eventArgs`): [`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

converts device coordinates to inner coordinates of node

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `model` | [`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node) | the model |
| `eventArgs` | [`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point) | [`EventArgs`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.eventargs.eventargs) | arguments of the event OR point in device (plot) coordinates. |


#### Returns

[`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[pointToModel](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#pointtomodel)

#### redo

▸ **redo**(): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Reapplies last canceled command in history (if possible)

#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[redo](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#redo)

#### removeListener

▸ **removeListener**(`eventName`, `listener?`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

remove event listener. The listener reveives the message when the system event happens.

**`Deprecated`**

since 4.0 use .off() instead.

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `eventName` | `string` | event name |
| `Optional` `listener` | `Function` | `Function`[] | the event listener, if null, remove all listeners for the event |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[removeListener](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#removelistener)

#### saveAnnotations

▸ **saveAnnotations**(`annotationsLayer?`, `registry?`, `options?`): `string`

Save annotations layer

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `Optional` `annotationsLayer` | [`CompositeNode`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.compositenode.compositenode)<[`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node)&gt; | annotation layer to save |
| `Optional` `registry` | [`Registry`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.persistence.registry.registry) | registry |
| `Optional` `options` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.persistence#jsonserializer#options) | serialization options |


#### Returns

`string`

return annotations serialized as a string

#### setActive

▸ **setActive**(`active`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

set active state

**`Fires`**

[Events.onStateChanged](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#tools#abstracttool#events#onstatechanged)

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `active` | `boolean` | set active state |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[setActive](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#setactive)

#### setEditMode

▸ **setEditMode**(`mode`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Sets tool edit mode (for nodes with node manipulators)

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `mode` | [`EditMode`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#editmode) | edit mode |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

this

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[setEditMode](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#seteditmode)

#### setEditor

▸ `Protected` **setEditor**(`editor`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

For internal use

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `editor` | [`AbstractEditorBase`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.editors.abstracteditorbase.abstracteditorbase)<[`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node) | [`Node`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.scene.node.node)[]&gt; | editor to use |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

this

#### Overrides

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[setEditor](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#seteditor)

#### setEnabled

▸ **setEnabled**(`enabled`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

set enable state

**`Fires`**

[Events.onEnabledStateChanged](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#tools#abstracttool#events#onenabledstatechanged)

**`Fires`**

[Events.onStateChanged](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#tools#abstracttool#events#onstatechanged)

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `enabled` | `boolean` | sets the enabled state |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

this

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[setEnabled](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#setenabled)

#### setMode

▸ **setMode**(`mode`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Sets painting mode

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `mode` | [`PaintMode`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#paintmode) | painting mode |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[setMode](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#setmode)

#### setMouseRadius

▸ **setMouseRadius**(`radius`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Sets device radius for mouse events

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `radius` | `number` | radius for mouse events |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

this

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[setMouseRadius](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#setmouseradius)

#### setName

▸ **setName**(`name`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

set tool name

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `name` | `string` | the tool name |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[setName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#setname)

#### setNodeResolver

▸ **setNodeResolver**(`resolver`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Sets resolver

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `resolver` | [`NodeResolverCallback`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.welllog#annotationeditor#noderesolvercallback) | This allows to resolver target nodes. |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

#### setNodeResolverByUuid

▸ **setNodeResolverByUuid**(`resolver`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Sets Node Uuid resolver

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `resolver` | [`NodeResolverByUuidCallback`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.welllog#annotationeditor#noderesolverbyuuidcallback) | This allows to resolver target nodes. |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

#### setNodeUuidResolver

▸ **setNodeUuidResolver**(`resolver`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Sets Node Uuid resolver

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `resolver` | [`ResolveNodeUuidCallback`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.welllog#annotationeditor#resolvenodeuuidcallback) | This allows to resolver target nodes. |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

#### setProperties

▸ **setProperties**(`props?`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Sets paint tool properties (mode, styles, etc.)

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `Optional` `props` | [`Options`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#paint#options) | tool props |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

this

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[setProperties](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#setproperties)

#### setProperty

▸ **setProperty**(`name`, `value`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Sets dynamic property by name

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `name` | `string` | property name |
| `value` | `any` | property value |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

this

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[setProperty](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#setproperty)

#### setSilent

▸ **setSilent**(`bool`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Set silent mode

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `bool` | `boolean` | flag to enable silent mode |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

this

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[setSilent](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#setsilent)

#### setSlotEnabled

▸ **setSlotEnabled**(`eventName`, `value`, `target?`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Sets slot enabled

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `eventName` | `string` | eventName |
| `value` | `boolean` | value |
| `Optional` `target` | `EventTarget` | target |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[setSlotEnabled](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#setslotenabled)

#### setSlots

▸ **setSlots**(`slots?`, `merge?`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Sets new slots.

**`Example`**

```ts
const slots = {
'pointerdown': (event: EventArgs) =&gt; {
// event is an instance of @int/geotoolkit/controls/tools/EventArgs
...
}
};
tool.setSlots(slots);
```

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `Optional` `slots` | `Record`<`string`, [`Slot`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#abstracttool#slot) | [`Slot`](/solutions/geotoolkit/geotoolkit_js/apis/modules/geotoolkit.controls#abstracttool#slot)[] | (`eventArgs`: [`EventArgs`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.eventargs.eventargs)) => `void`&gt; | type of system events |
| `Optional` `merge` | `boolean` | set to true if you want to merge with existing slots |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

this

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[setSlots](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#setslots)

#### setTouchRadius

▸ **setTouchRadius**(`radius`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Sets device radius for touch events

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `radius` | `number` | radius for touch events |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

this

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[setTouchRadius](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#settouchradius)

#### start

▸ `Protected` **start**(`eventArgs?`): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

start

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `Optional` `eventArgs` | [`EventArgs`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.eventargs.eventargs) | event args |


#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[start](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#start)

#### stop

▸ `Protected` **stop**(): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

stop

#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[stop](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#stop)

#### toggle

▸ **toggle**(): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

switch enable state to opposite state

#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[toggle](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#toggle)

#### undo

▸ **undo**(): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Cancels last command in history (if possible)

#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[undo](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#undo)

#### update

▸ **update**(): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Forces editing shapes and handles to be updated

#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

this

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[update](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#update)

#### updateHandles

▸ **updateHandles**(): [`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

Forces editing handles to be synchronized with shape

#### Returns

[`AnnotationEditor`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.welllog.widgets-4.tools-5.annotations.annotationeditor.annotationeditor)

this

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[updateHandles](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#updatehandles)

#### canvasToClient

▸ `Static` **canvasToClient**(`plotPoint`, `plot`): [`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

Convert plot coordinates to global coordinates

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `plotPoint` | [`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point) | point in plot coordinates |
| `plot` | [`Plot`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.plot.plot.plot) | plot with canvas |


#### Returns

[`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[canvasToClient](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#canvastoclient)

#### clientToCanvas

▸ `Static` **clientToCanvas**(`nativeEvent`, `plot`): [`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

Convert global coordinates to plot coordinates

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `nativeEvent` | `Event` | native browser event |
| `plot` | [`Plot`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.plot.plot.plot) | plot with canvas |


#### Returns

[`Point`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.util.point.point)

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[clientToCanvas](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#clienttocanvas)

#### getClassName

▸ `Static` **getClassName**(): `string`

#### Returns

`string`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getClassName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#getclassname-1)

#### getExclusiveTool

▸ `Static` **getExclusiveTool**(`plot`): [`AbstractTool`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.abstracttool.abstracttool)

return exclusive tool associated with plot

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `plot` | [`Plot`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.plot.plot.plot) | plot |


#### Returns

[`AbstractTool`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.abstracttool.abstracttool)

tool

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getExclusiveTool](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#getexclusivetool)

#### getNativeEventName

▸ `Static` **getNativeEventName**(`eventName`): `string`[]

Returns native event name

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `eventName` | `string` | W3C Pointer Events Recommendation name |


#### Returns

`string`[]

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[getNativeEventName](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#getnativeeventname)

#### isTouchEvent

▸ `Static` **isTouchEvent**(`eventArgs`): eventArgs is TouchEvent

return true if the event is a touch event and false otherwise.

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `eventArgs` | `Event` | [`EventArgs`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.eventargs.eventargs) | contains info of the event |


#### Returns

eventArgs is TouchEvent

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[isTouchEvent](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#istouchevent-1)

#### lock

▸ `Static` **lock**(`plot`, `tool`): `void`

Set exclusive tool for plot

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `plot` | [`Plot`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.plot.plot.plot) | plot |
| `tool` | [`AbstractTool`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.abstracttool.abstracttool) | tool |


#### Returns

`void`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[lock](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#lock)

#### setDefaultMouseRadius

▸ `Static` **setDefaultMouseRadius**(`radius`): `void`

Sets default device radius for mouse events

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `radius` | `number` | radius for mouse events |


#### Returns

`void`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[setDefaultMouseRadius](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#setdefaultmouseradius)

#### setDefaultTouchRadius

▸ `Static` **setDefaultTouchRadius**(`radius`): `void`

Sets default device radius for touch events

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `radius` | `number` | radius for touch events |


#### Returns

`void`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[setDefaultTouchRadius](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#setdefaulttouchradius)

#### unlock

▸ `Static` **unlock**(`value`): `void`

Remove exclusive tool from plot

#### Parameters

| Name  | Type  | Description  |
|  --- | --- | --- |
| `value` | [`AbstractTool`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.abstracttool.abstracttool) | [`Plot`](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.plot.plot.plot) | value |


#### Returns

`void`

#### Inherited from

[Paint](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint).[unlock](/solutions/geotoolkit/geotoolkit_js/apis/classes/geotoolkit.controls.tools.paint.paint#unlock)