# TagTextBox

Namespace: **Wisej.Web**

Assembly: **Wisej.Framework** (4.0.0.0)

* [Control](https://docs.wisej.com/api/wisej.web/general/control)
  * [TextBoxBase](https://docs.wisej.com/api/wisej.web/editors/wisej.web.textboxbase)
    * [TagTextBox](https://docs.wisej.com/api/wisej.web/editors/tagtextbox)

Represents a data field that displays a list of selectable and removable tags. The control recognizes tags as the user types and adds in front of the editable field.

{% tabs %}
{% tab title="C#" %}

```csharp
public class TagTextBox : TextBoxBase
```

{% endtab %}

{% tab title="VB.NET" %}

```visual-basic
Public Class TagTextBox
    Inherits TextBoxBase
```

{% endtab %}
{% endtabs %}

## Constructors

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) TagTextBox()

Initializes an instance of a [TagTextBox](https://docs.wisej.com/api/wisej.web/editors/tagtextbox) control.

## Properties

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) AllowDuplicateTags

[Boolean](https://docs.microsoft.com/dotnet/api/system.boolean): Returns or sets whether duplicate tags are allowed.<mark style="color:blue;background-color:green;">Since 3.0.10</mark> (Default: `False`)

When a duplicate tag is rejected, the control fires the [TagRejected](#tagrejected) event.

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) Editable

[Boolean](https://docs.microsoft.com/dotnet/api/system.boolean): Returns or sets whether the user can add tags by typing into the editable field. (Default: `True`)

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) KeepWatermark

[Boolean](https://docs.microsoft.com/dotnet/api/system.boolean): Returns or sets whether the watermark should disappear when there is at least one tag. (Default: `False`)

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) MaxTagCount

[Int32](https://docs.microsoft.com/dotnet/api/system.int32): Returns or sets the maximum number of tags allowed in the control. When this limit is reached, the control will fire the [TagRejected](#tagrejected) event and will not add the tag. The default is 0 = unlimited. (Default: `0`)

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) MaxTagWidth

[Int32](https://docs.microsoft.com/dotnet/api/system.int32): Returns or sets the maximum width in pixels of the tag widgets displayed on the client. When the content exceeds this limit, it will show an ellipses. (Default: `100`)

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) MinFieldLength

[Int32](https://docs.microsoft.com/dotnet/api/system.int32): Returns or sets the minimum number of characters that should fit in the editable portion of the control before it wraps to a new line or displays the scroller for the tags portion. (Default: `10`)

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) SelectedText

[String](https://docs.microsoft.com/dotnet/api/system.string): Returns the text of the selected tag.

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) SelectionLength

[Int32](https://docs.microsoft.com/dotnet/api/system.int32): Returns the length of the selected tag.

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) SelectionStart

[Int32](https://docs.microsoft.com/dotnet/api/system.int32): Returns the position of the selected tag.

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) SeparatorChar

[Char](https://docs.microsoft.com/dotnet/api/system.char): Returns or sets the character used to separate the tags. (Default: `,`)

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) ShowToolTips

[Boolean](https://docs.microsoft.com/dotnet/api/system.boolean): Returns or sets whether to show a tooltip with the full content of the tag text when the mouse hovers over the tag element. (Default: `False`)

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) TagCount

[Int32](https://docs.microsoft.com/dotnet/api/system.int32): Returns the number of tags in the control.

## Methods

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-9bf7fa01e02f4da0f9ef90d3b049ae43e664919e%2Fprotected.png?alt=media) OnAutoSizeChanged(e)

| Parameter | Type                                                                | Description |
| --------- | ------------------------------------------------------------------- | ----------- |
| **e**     | [EventArgs](https://docs.microsoft.com/dotnet/api/system.eventargs) |             |

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-9bf7fa01e02f4da0f9ef90d3b049ae43e664919e%2Fprotected.png?alt=media) OnSeparatorCharChanged(e)

Fires the [SeparatorCharChanged](#separatorcharchanged) event.

| Parameter | Type                                                                | Description                                                                                         |
| --------- | ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| **e**     | [EventArgs](https://docs.microsoft.com/dotnet/api/system.eventargs) | A [EventArgs](https://docs.microsoft.com/dotnet/api/system.eventargs) that contains the event data. |

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-9bf7fa01e02f4da0f9ef90d3b049ae43e664919e%2Fprotected.png?alt=media) OnTagAdded(e)

Fires the [TagAdded](#tagadded) event.

| Parameter | Type                                                                                                         | Description                                                                                                                                  |
| --------- | ------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
| **e**     | [TagTextBoxEventArgs](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxeventargs) | A [TagTextBoxEventArgs](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxeventargs) that contains the event data. |

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-9bf7fa01e02f4da0f9ef90d3b049ae43e664919e%2Fprotected.png?alt=media) OnTagClick(e)

Fires the [TagClick](#tagclick) event.

| Parameter | Type                                                                                                                 | Description                                                                                                                                          |
| --------- | -------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| **e**     | [TagTextBoxMousEventArgs](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxmouseventargs) | A [TagTextBoxMousEventArgs](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxmouseventargs) that contains the event data. |

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-9bf7fa01e02f4da0f9ef90d3b049ae43e664919e%2Fprotected.png?alt=media) OnTagDoubleClick(e)

Fires the [TagDoubleClick](#tagdoubleclick) event.

| Parameter | Type                                                                                                                 | Description                                                                                                                                          |
| --------- | -------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| **e**     | [TagTextBoxMousEventArgs](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxmouseventargs) | A [TagTextBoxMousEventArgs](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxmouseventargs) that contains the event data. |

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-9bf7fa01e02f4da0f9ef90d3b049ae43e664919e%2Fprotected.png?alt=media) OnTagRejected(e)

Fires the [TagRejected](#tagrejected) event.

| Parameter | Type                                                                                                         | Description                                                                                                                                  |
| --------- | ------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
| **e**     | [TagTextBoxEventArgs](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxeventargs) | A [TagTextBoxEventArgs](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxeventargs) that contains the event data. |

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-9bf7fa01e02f4da0f9ef90d3b049ae43e664919e%2Fprotected.png?alt=media) OnTagRemoved(e)

Fires the [TagRemoved](#tagremoved) event.

| Parameter | Type                                                                                                         | Description                                                                                                                                  |
| --------- | ------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
| **e**     | [TagTextBoxEventArgs](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxeventargs) | A [TagTextBoxEventArgs](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxeventargs) that contains the event data. |

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-9bf7fa01e02f4da0f9ef90d3b049ae43e664919e%2Fprotected.png?alt=media) OnTagRender(e)

Fires the [TagRender](#tagrender) event.

| Parameter | Type                                                                                                                     | Description                                                                                                                                              |
| --------- | ------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **e**     | [TagTextBoxRenderEventArgs](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxrendereventargs) | A [TagTextBoxRenderEventArgs](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxrendereventargs) that contains the event data. |

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-9bf7fa01e02f4da0f9ef90d3b049ae43e664919e%2Fprotected.png?alt=media) OnTagSelected(e)

Fires the [TagSelected](#tagselected) event.

| Parameter | Type                                                                                                         | Description                                                                                                                                  |
| --------- | ------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
| **e**     | [TagTextBoxEventArgs](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxeventargs) | A [TagTextBoxEventArgs](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxeventargs) that contains the event data. |

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-9bf7fa01e02f4da0f9ef90d3b049ae43e664919e%2Fprotected.png?alt=media) OnWebEvent(e)

| Parameter | Type                                                                           | Description |
| --------- | ------------------------------------------------------------------------------ | ----------- |
| **e**     | [WisejEventArgs](https://docs.wisej.com/api/wisej.core/general/wisejeventargs) |             |

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-9bf7fa01e02f4da0f9ef90d3b049ae43e664919e%2Fprotected.png?alt=media) OnWebRender(config)

| Parameter  | Type                                                          | Description |
| ---------- | ------------------------------------------------------------- | ----------- |
| **config** | [Object](https://docs.microsoft.com/dotnet/api/system.object) |             |

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) SelectTag(tag)

Selects the specified tag, if it exists. If the tag is selected successfully, it will fire the [TagSelected](#tagselected) event.

| Parameter | Type                                                          | Description                |
| --------- | ------------------------------------------------------------- | -------------------------- |
| **tag**   | [String](https://docs.microsoft.com/dotnet/api/system.string) | Text of the tag to select. |

## Events

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) SeparatorCharChanged

[EventHandler](https://docs.microsoft.com/dotnet/api/system.eventhandler) Fired when the value of [SeparatorChar](#separatorchar) changes.

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) TagAdded

[TagTextBoxEventHandler](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxeventhandler) Fired when the user adds new tag is added to the control.

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) TagClick

[TagTextBoxMousEventHandler](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxmouseventhandler) Fired when the user clicks (or taps) on a tag outside of the close icon.

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) TagDoubleClick

[TagTextBoxMousEventHandler](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxmouseventhandler) Fired when the user double clicks (or double taps) on a tag outside of the close icon.

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) TagRejected

[TagTextBoxEventHandler](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxeventhandler) Fired when the user tries to add a tag that already exists or the maximum number of allowed tags set in [MaxTagCount](#maxtagcount) is reached.

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) TagRemoved

[TagTextBoxEventHandler](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxeventhandler) Fired when the user removes a tag from the control.

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) TagRender

[TagTextBoxRenderEventHandler](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxrendereventhandler) Fired when the control needs to render the tags in the [Text](https://docs.wisej.com/api/wisej.web/wisej.web.textboxbase#text) property.

Use this event to change the visual aspect of each tag on the client.

```csharp

private void tagTextBox1_TagRender(object sender, TagTextBoxRenderEventArgs e)
{
  switch (e.Text)
  {
    case "Arizona":
      e.BackColor = Color.Beige;
      break;

    case "Florida":
      e.BackColor = Color.LightGreen;
      break;

    case "Alaska":
      e.Html = "<b>" + e.Text + "</b>";
      break;

    case "California":
      e.Html = "<u>" + e.Text + "</u>";
      break;

    case "Georgia":
      e.Html = "<img src='Images/fullstar.png' style='display:inline-block;float:left;padding-right:5px' width='16'/>" + e.Text;
      break;
  }
}

```

### ![](https://1075938901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2HvlWXJQMV7DxhGzw7Y1%2Fuploads%2Fgit-blob-2389c55cd19719a73a5ae98e1528c8dc8525cc35%2Finstance.png?alt=media) TagSelected

[TagTextBoxEventHandler](https://docs.wisej.com/api/wisej.web/editors/tagtextbox/wisej.web.tagtextboxeventhandler) Fires when the user selects a tag.

## Implements

| Name                                                                                                 | Description                                                                                                                                                                                                                                                       |
| ---------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [IUserData](https://docs.wisej.com/api/wisej.web/interfaces/wisej.web.iuserdata)                     | Provides access to the `UserData` and `Tag` properties associated to the component implementing this interface.                                                                                                                                                   |
| [IBindableComponent](https://docs.wisej.com/api/wisej.web/data-binding/wisej.web.ibindablecomponent) | Bindable components implement this interface.                                                                                                                                                                                                                     |
| [IDropTarget](https://docs.wisej.com/api/wisej.web/interfaces/wisej.web.idroptarget)                 | Controls that support drag & drop operations implement this interface.                                                                                                                                                                                            |
| [ILabel](https://docs.wisej.com/api/wisej.web/interfaces/wisej.web.ilabel)                           | Provides access to the [LabelWrapper](https://docs.wisej.com/api/wisej.web/editors/wisej.web.labelwrapper) associated with the controls that implement this interface.                                                                                            |
| [IReadOnly](https://docs.wisej.com/api/wisej.web/interfaces/wisej.web.ireadonly)                     | Provides access to the [ReadOnly](https://docs.wisej.com/api/interfaces/wisej.web.ireadonly#readonly) property for coontrols that support the read-only mode.                                                                                                     |
| [IModified](https://docs.wisej.com/api/wisej.web/interfaces/wisej.web.imodified)                     | Provides access to the [Modified](https://docs.wisej.com/api/interfaces/wisej.web.imodified#modified) property and [ModifiedChanged](https://docs.wisej.com/api/interfaces/wisej.web.imodified#modifiedchanged) event for controls that implement this interface. |
| [IValidation](https://docs.wisej.com/api/wisej.web/interfaces/wisej.web.ivalidation)                 | Provides access to the validation events and properties property for controls that support validation.                                                                                                                                                            |
| [IWisejComponent](https://docs.wisej.com/api/wisej.core/interfaces/wisej.core.iwisejcomponent)       | All wisej components implement this interface.                                                                                                                                                                                                                    |
| [IWisejControl](https://docs.wisej.com/api/wisej.core/interfaces/wisej.core.iwisejcontrol)           | All wisej controls derived from the [Control](https://docs.wisej.com/api/wisej.web/general/control) class must implement this interface.                                                                                                                          |
| [IWisejSerializable](https://docs.wisej.com/api/wisej.core/interfaces/wisej.core.iwisejserializable) | Allows an object to serialize itself.                                                                                                                                                                                                                             |
