# VLineEditBrowser

**Hereda de:** [VAbstractBrowser](vabstractbrowser).

**Heredado por:** [VFilePathEditBrowser](vfilepatheditbrowser), [VFormulaEditBrowser](vformulaeditbrowser).

Esta clase representa al control de edición de una linea de texto con botón de menú.

Esta clase implementa la misma funcionalidad que la clase [VLineEdit](vlineedit) más las propiedades y funciones heredadas de la clase [VAbstractBrowser](vabstractbrowser).

## Indice de [propiedades](#documentación-de-propiedades)

const Boolean [acceptableInput](#acceptableinput)

Number [alignment](#alignment)

Number [cursorPosition](#cursorposition)

const String [displayText](#displaytext)

Boolean [dragEnabled](#dragenabled)

Number [echoMode](#echomode)

Boolean [frame](#frame)

const Boolean [hasSelectedText](#hasselectedtext)

String [inputMask](#inputmask)

Number [maxLength](#maxlength)

Boolean [modified](#modified)

String [placeholderText](#placeholdertext)

Boolean [readOnly](#readonly)

const Boolean [redoAvailable](#redoavailable)

const String [selectedText](#selectedtext)

String [text](#text)

const Boolean [undoAvailable](#undoavailable)

## Indice de funciones

### **Generales**

void [clear](#clear)()

void [deselect](#deselect)()

VLineEdit [getLineEdit](#getlineedit)()

void [insert](#insert)( String text )

void [selectAll](#selectall)()

void [setText](#settext)( String text )

### **De teclado**

void [backspace](#backspace)()

void [del](#del)()

void [end](#end)( Boolean mark )

void [home](#home)( Boolean mark )

### **De portapapeles**

void [copy](#copy)()

void [cut](#cut)()

void [paste](#paste)()

void [redo](#redo)()

void [undo](#undo)()

## Señales

Value changed

## Enumeraciones

**EchoMode**

* Normal
* NoEcho
* Password
* PasswordEchoOnEdit

**Flags de alineamiento**

* AlignLeft = 0×0001
* AlignRight = 0×0002
* AlignHCenter = 0×0004
* AlignJustify = 0×0008
* AlignAbsolute = 0×0010
* AlignTop = 0×0020
* AlignBottom = 0×0040
* AlignVCenter = 0×0080
* AlignCenter = AlignVCenter | AlignHCenter

## Documentación de propiedades

#### acceptableInput

Devuelve true si la entrada cumple la validación actual del control.

#### alignment

Permite leer o configurar la alineación del contenido. Ver enum de flags de alineamiento. Los valores con combinables mediante el uso del operador bitwise or booleano "|".

#### cursorPosition

Permite leer o configurar la posición actual del cursor en la edición. Ajustar la posición del cursor produce un repintado cuando sea apropiado. De forma predeterminada, esta propiedad contiene un valor de 0.

#### displayText

Devuelve el texto que se muestra. Si echoMode es normal esto devuelve el mismo texto. Si echoMode tiene el valor PasswordEchoOnEdit entonces devuelve una cadena de texto con tantos asteriscos como longitud tenga el texto. Si echoMode tiene el valor NOECHO devuelve una cadena vacía "". De forma predeterminada, esta propiedad contiene una cadena vacía.

#### dragEnabled

Permite leer o configurar si el control admite que el usuario pulse y mueva el ratón sobre un texto seleccionado. El valor por defecto es false.

#### echoMode

Permite leer o configurar el modo de edición del control. El modo de eco determina cómo el texto escrito en el control se muestra al usuario. La configuración más común es normal, en la que el texto introducido por el usuario se muestra textualmente, pero también es compatible con los modos que permiten que el texto introducido no sea visible: modo NOECHO, contraseña y PasswordEchoOnEdit. La pantalla del widget y la posibilidad de copiar o arrastrar el texto se ve afectada por este ajuste. De forma predeterminada, esta propiedad se establece en Normal.

#### frame

Permite leer o configurar si el control será pintado con o sin frame.

#### hasSelectedText

Devuelve true si una parte o todo el texto ha sido seleccionado por el usuario, de lo contrario devuelve false. De forma predeterminada, esta propiedad es false.

#### inputMask

Permite leer o configurar la máscara de entrada de validación. Si no hay ninguna máscara está establecida, InputMask devuelve una cadena vacía. Para desactive la máscara y volver a la operación normal debe asignarle a la propiedad una cadena vacía ("") o simplemente llamar setInputMask sin argumentos. La siguiente tabla muestra los caracteres que se pueden utilizar en una máscara de entrada.

Carácter Significado

A - Un carácter alfabético ASCII. A-Z, a-z.

a - un carácter alfabético ASCII permitido pero no obligatorio.

N - Carácter alfanumérico N ASCII. A-Z, a-z, 0-9.

n - carácter alfanumérico n ASCII permitido pero no obligatorio.

X - Cualquier caracter.

x - Cualquier carácter permitido, pero no obligatorio.

9 - dígito ASCII. 0-9.

0 - dígito ASCII permitido pero no obligatorio.

D - dígito ASCII. 1-9.

d - dígito ASCII permitido pero no obligatorio (1-9).

\# - ASCII dígitos o signo más/menos permitidos, pero no obligatorio.

H - Carácter hexadecimal. A-F, un-f, 0-9.

h - carácter hexadecimal permitido, pero no obligatorio.

B - carácter binario. 0-1.

b - carácter binario permitido pero no obligatorio.

\> - Todos los caracteres alfabéticos siguientes en mayúsculas.

< - Todos los caracteres alfabéticos siguientes en minúsculas.

! - Desactivar la conversión.

* Utilice  para caracteres de escape, los caracteres especiales enumerados anteriormente para usarlas como separadores.

La máscara consiste en una cadena de caracteres y separadores, seguidas opcionalmente por un punto y coma. Los caracteres en blanco siempre se eliminan del texto después de la edición.

Ejemplos:

Notas Máscara

000.000.000.000; \_ Dirección IP, son espacios en blanco \_.

HH: HH: HH: HH: HH: HH; \_ dirección MAC

0000-00-00 Fecha de la ISO; espacios en blanco son el espacio

\> AAAAA-AAAAA-AAAAA-AAAAA-AAAAA, # Número de licencia, documentos en blanco - y todos los caracteres (alfabéticos) se convierten a mayúsculas.

Para obtener el control de rango (por ejemplo, una dirección IP) utilizan máscaras junto con validadores.

#### maxLength

Permite leer o configurar la longitud máxima permitida del texto. Si el texto es demasiado largo, se trunca en el límite. Si se produce un truncamiento cualquier texto seleccionado será seleccionado, la posición del cursor se establece en 0 y la primera parte de la cadena se muestra. Si el control tiene una máscara de entrada, la máscara define la longitud máxima de la cadena. De forma predeterminada, esta propiedad contiene un valor de 32767.

#### modified

Permite leer o configurar si el contenido editado ha sido modificado por el usuario. Esta propiedad tiene un valor predeterminado de falso y se cambia a true cuando el usuario cambia los contenidos del control. Ejecutar setText restablece el indicador modificado como falso.

#### placeholderText

Permite leer o configurar un texto a visualizar en el control mientras no tenga contenido. Establecer esta propiedad hace que la edición muestre el texto en gris mientras el contenido del control está vacío y el widget no tiene el foco. De forma predeterminada, esta propiedad contiene una cadena vacía.

#### readOnly

Permite leer o configurar si el control es de sólo lectura.

#### redoAvailable

Devuelve true si redo (deshacer) está disponible para el control. Redo está disponible una vez que el usuario ha realizado una o más operaciones sobre el texto editado. De forma predeterminada, esta propiedad es false.

#### selectedText

Devuelve el texto seleccionado. Si no hay texto seleccionado devuelve una cadena vacía. De forma predeterminada, esta propiedad contiene una cadena vacía.

#### text

Permite leer o configurar el texto editado en el control. Al establecer esta propiedad, se borra la selección, limpia el historial de deshacer/rehacer, mueve el cursor hasta el final del texto y restablece la propiedad modified a false. El texto no se valida cuando se inserta con setText. El texto se trunca a longitud maxLength. De forma predeterminada, esta propiedad contiene una cadena vacía.

#### undoAvailable

Devuelve true si deshacer se encuentra disponible. Deshacer está disponible una vez que el usuario ha modificado el texto editado. De forma predeterminada, esta propiedad es false.

## Documentación de funciones

### Funciones generales

#### void clear() <a href="#clear" id="clear"></a>

Limpia el contenido del control.

#### void deselect() <a href="#deselect" id="deselect"></a>

Quita cualquier selección que pudiese estar activa en el contenido del control.

#### VLineEdit getLineEdit() <a href="#getlineedit" id="getlineedit"></a>

Devuelve un objeto de la clase [VLineEdit](vlineedit) con el control de edición contenido en el control.

#### void insert( String text ) <a href="#insert" id="insert"></a>

Inserta un texto en la posición del cursor.

Parámetros:

* text: texto a insertar.

#### void selectAll() <a href="#selectall" id="selectall"></a>

Selecciona todo el contenido del control.

#### void setText( String text ) <a href="#settext" id="settext"></a>

Asignar el texto especificado como nuevo valor del control, en caso de que el control ya tuviese algún contenido éste será sustituido en su totalidad por el nuevo texto especificado en el parámetro.

Parámetros:

* text: texto a asignar al control.

### Funciones de teclado

#### void backspace() <a href="#backspace" id="backspace"></a>

Simula la pulsación de la tecla de retroceso lo que produce la eliminación del caracter anterior a la posición que ocupe el cursor.

#### void del() <a href="#del" id="del"></a>

Simula la pulsación de la tecla de delete lo que produce la eliminación del caracter siguiente a la posición que ocupe el cursor.

#### void end( Boolean mark ) <a href="#end" id="end"></a>

Simula la pulsación de la tecla fin lo que produce que el cursor se sitúe al final del contenido del control. Si en el parámetro mark ponemos el valor true además de mover el cursor se seleccionará todo el contenido desde la posición del cursor hasta el final. El valor por defecto es false.

Parámetros:

* mark: valor booleano, por defecto false=sólo mover el cursor, true=seleccionar desde la posición del cursor hasta el final.

#### void home( Boolean mark ) <a href="#home" id="home"></a>

Simula la pulsación de la tecla inicio lo que produce que el cursor se sitúe al principio del contenido del control. Si en el parámetro mark ponemos el valor true además de mover el cursor se seleccionará todo el contenido desde la posición del cursor hasta el inicio. El valor por defecto es false.

Parámetros:

* mark: valor booleano, por defecto false=sólo mover el cursor, true=seleccionar desde la posición del cursor hasta el inicio.

### Funciones de portapapeles

#### void copy() <a href="#copy" id="copy"></a>

Copia el contenido del control en el portapapeles.

#### void cut() <a href="#cut" id="cut"></a>

Corta el contenido del control y lo mueve al portapapeles.

#### void paste() <a href="#paste" id="paste"></a>

Pega el contenido del portapapeles en el control.

#### void redo() <a href="#redo" id="redo"></a>

Rehace el último cambio deshecho.

#### void undo() <a href="#undo" id="undo"></a>

Deshace el último cambio realizado

## Ejemplos

### 1. Asignar una máscara de entrada a un control de edición alfabética con botón menú

```javascript
//Obtenemos el formulario
var formulario = theRoot.dataView();

//Obtenemos el control
var control = formulario.control("NAME");

//Asignar máscara de entrada
control.inputMask = "XXXXX-XXXXX;#";
```

### 2. Asignar un texto a un control de edición con botón menú para mostrar cuando esté vacío

```javascript
//Obtenemos el formulario
var formulario = theRoot.dataView();

//Obtenemos el control de edición
var edit = formulario.control("TXT_BUS");

//Establecemos el texto alternativo
edit.placeholderText="Introduzca el texto a buscar";
```

### 3. Forzar la selección de todo el contenido de un control de edición alfabética con botón menú

```javascript
//Obtenemos el formulario
var formulario = theRoot.dataView();

//Obtenemos el control de edición
var edit = formulario.control("NAME");

//Selecconamos todo el contenido del control
edit.selectAll();
```
