{{indexmenu_n>1}}
====== NORMA DE USO DE LOS EVENTOS: ======
\\
|Cuando se utilice como atributo todo el nombre en minúsculas y sin guiones.|
|Cuando se utiliza en Script, en función Binding, lowerCamelCase.|
===== Eventos =====
Los eventos se aplican a los siguientes objetos “runtime” XOne:\\
|**DataApplication** (appData)|
|**DataCollection**|
|**DataObject** |
|**View** |
===== Binding =====
==== Vía mapping.xml ====
function onBeforeEdit (e) {
….
}
function onClickOk (e) {
….
}
function onGroupSelected (e) {
}
También se puede ejecutar un nodo desde el mapping o colección.
\\
==== Via Script ====
\\
Usando la función **bind (arg1, arg2, arg3) **.
\\
\\
===Eventos de Datos===
appData.bind( eventName, eventHandler );
coll.bind( eventName, eventHandler );
obj.bind( propName, eventName, eventHandler );
===Eventos ui===
ui.getView(obj).bind (controlName, eventName,eventHandler)
function onClickOk (e) {
// some stuff
...
}
function onBeforeEdit (e) {
// some stuff
...
}
function prepareBinding () {
var myColl = appData.getCollection(“MyColl”);
var myObject = myColl.createObject();
/* ********************************** */
// Asociar eventos a nivel de COLL
/* ********************************** */
myColl.bind ( “onbeforeedit”, onBeforeEdit);
myColl.bind ( “ongroupselected”, onGroupSelected);
/* ********************************** */
// Asociar eventos a Propiedades
/* ********************************** */
var uiView = ui.getView(myObject); // uiview sería NULL si el objeto no se está mostrando
uiView.bind (“BUTONOK”, “onclick”, onClickOk);
uiView.bind (“BUTONOK”, “onclick”, function (e) {
// some stuff
...
});
// Si las propiedades a las que queremos referenciar no están en una ventana visible, tendríamos que utilizar:
myColl.bind ( “onbeforeedit”, function (e) {
currentView.bind (“BUTONOK”, “onclick”, onClickOk);
currentView.bind (“BUTONOK”, “onclick”, function (e) {
// some stuff
...
});
});
appData.pushValue(myObject);
}
===== Lista de Eventos Disponibles =====
====Application (appData) System events====
|< 80% 10% 10% - >|
^ **Evento ** ^ **Código XML ** ^ **Descripción** ^
| | | En desarrollo|
====DataObject====
|< 80% 10% 10% - >|
^ **Evento ** ^ **Código XML ** ^ **Descripción** ^
| | | En desarrollo |
====DataCollection, DataObject, Eventos UI====
|< 80% 20% - >|
^ **Evento ** ^ **Descripción** ^
| | En desarrollo |
====DataObject (props) Eventos UI====
|< 80% 10% 10% - >|
^ **Evento ** ^ **Propiedad** ^ **Descripción** ^
| onclick | type="B" | Invocado cuando se pulsa un botón. |
| onTextChanged | type="T" | Invocado mientras se va pulsando caracteres en el teclado.\\ Parámetros: target, objItem, newText, oldText, keyPressed |
| onFocusChanged| type="T" | Invocado cuando pierde o gana foco el campo, en el parámetro isFocused. Parámetros: target, objItem, isFocused |
===Ejemplo de código de onclick===
A la hora de definir un evento, lo haremos como atributo en el XML del prop o con el método bind, **NO** utilizaremos los 2 al mismo tiempo.
* Si el evento se declara como atributo en el xml, se escribe en minúsculas (onclick)
* Si el evento se declara con el método bind, se escribe en lowerCamelCase (onClick)
Como atributo en el XML:
En el método bind:
var v=ui.getView(self); //Así obtenemos una referencia a la ventana actual de la aplicación
v.bind ("MAP_BTN1","onClick","collTest1",jstestClick);
En algún fichero .js externo, tendremos la función javascript a la que se llama desde el atributo onclick o desde el método bind:
function jstestClick(e,data) {
var c;
ui.msgBox ("Abre el objeto "+data,"Titulo",0);
c=appData.getCollection(data);
var obj=c.createObject();
c.addItem(obj);
appData.pushValue(obj);
}
====DataObject (props) Eventos de Datos====
|< 80% 10% 10% - >|
^ **Evento ** ^ **Propiedad** ^ **Descripción** ^
| | | En desarrollo |
====DataObject (frame) Eventos UI====
|< 80% 8% 8% 40% - >|
^ Evento ^ Nodo ^ Parámetros de Evento ^ Descripción ^
| onScroll|frame |**target**: Distancia que falta por hacer scroll horizontal.\\ **dx**: Distancia que falta por hacer scroll horizontal.\\ **dy**: Distancia que falta por hacer scroll vertical. \\ **width**: ancho del área que se hace scroll. \\ **height**: alto del área que se hace scroll. \\ **scrollX**: distancia que se ha desplazado en horizontal. \\ **scrollY**: distancia que se ha desplazado en vertical. \\ | Permite controlar los desplazamientos verticales y horizontales en los frame que tienen scroll=”true”.|
**Ejemplo de código del evento onScroll en un frame:**