Componentes del archivo de definición
Las definiciones que el Centro de gestión utiliza para determinar cómo visualizar objetos, tales como herramientas, objetos de negocio, vistas, etc., están definidas en los archivos XML de definición. Cada definición dentro de estos archivos se compone de un conjunto de elementos y atributos comunes.
Dentro de cada archivo XML de definición del Centro de gestión está la raíz del elemento <Definitions>
. Dentro de este elemento raíz, cada elemento hijo directo es un elemento de definición o una declaración de imagen. Todos los demás tipos de elementos se ignoran o se marcan como erróneos.
Los elementos de definición dentro del elemento raíz pueden incluir diferentes elementos y atributos que definen la información para mostrar herramientas, objetos de negocio, vistas, etc. Cada definición debe estar definida como un elemento hijo directo del elemento <Definitions>
. Cada elemento de definición debe incluir el atributo definitionName
para identificar la definición. El nombre del elemento de definición es el nombre no cualificado de la definición de superclase.
El valor del atributo definitionName
tiene el mismo nombre que el módulo AMD que se genera a partir de la definición. El valor definitionName
y el nombre de módulo AMD deben incluir la vía de acceso relativa del paquete y el nombre simple de la definición. Por ejemplo, el valor definitionName
para una propiedad de recuadro de selección es "cmc/foundation/BaseCheckBox"
. "cmc/foundation"
identifica el paquete de componente y "BaseCheckbox"
identifica el nombre simple de la definición.
definitionName
, se pueden utilizar los elementos y atributos siguientes para crear definiciones dentro de un archivo de definición. Variables
Las variables se definen dentro de una definición incluyendo el elemento <variable>
. Todas las variables en las definiciones son variables de instancia. Si crea su propia definición o personaliza una definición, puede definir variables para las definiciones de clase y singleton. No puede definir elementos <variable>
para definiciones de la instancia de clase. Sin embargo, cuando define una definición de instancia de clase, puede especificar valores para las variables definiendo atributos como parte del elemento de definición de la instancia de clase. El nombre del atributo en el elemento de definición de la instancia de la clase debe ser el mismo que el nombre de la variable.
Cuando define una definición de clase o de singleton, puede especificar también valores para las variables heredadas definiendo atributos como parte del elemento de definición. El nombre del atributo en el elemento de definición de la instancia debe ser el mismo que el nombre de la variable. Si al valor de atributo se le antepone la sintaxis ${
{ y termina el valor con }
}, el valor se interpreta como una expresión. Si el valor de la expresión cambia, la variable se actualiza automáticamente. No puede utilizar la sintaxis de expresión cuando especifique valores de variable para definiciones de instancia de clase.
Cuando una variable se referencia en JavaScript, se accede a ella como una propiedad de una instancia de una clase o de una definición de singleton. Si necesita modificar el valor de una variable en JavaScript, utilice el método setVariable
. Con este método, se asegura de que los sucesos se desencadenan correctamente.
<variable>
no pueden tener ningún elemento hijo y ningún cuerpo. Los elementos <variable>
pueden incluir los elementos y atributos siguientes:Nombre del atributo | Descripción: |
---|---|
name |
Nombre de la variable. |
type |
El tipo de variable. Las variables se pueden definir con los siguientes tipos:
|
value |
Valor de la variable. El valor que se ha establecido para una variable depende de la variable type . |
initialValue |
El valor inicial de la variable. Este valor solamente se establece cuando la variable se inicializa. No se actualiza cuando la expresión cambia. |
Métodos
Los métodos se definen en definiciones incluyendo el elemento <method>
. Estos elementos se pueden declarar como un elemento hijo de definiciones de clase o definiciones de singleton. No puede incluir los elementos <method>
dentro de una definición de instancia de clase.
this.inherited(arguments)
<method>
es el cuerpo JavaScript del método. Los elementos <method>
no pueden tener elementos hijos, pero pueden incluir los atributos siguientes:Nombre del atributo | Descripción: |
---|---|
name |
Nombre del método. |
args |
Una lista separada por comas de nombres de argumento. |
Manejadores
Los manejadores se definen dentro de definiciones utilizando el elemento <handler>
. Los elementos <handler>
se pueden declarar como un elemento hijo de definiciones de clase o definiciones de singleton. No puede incluir los elementos <handler>
dentro de una definición de instancia de clase.
<handler>
es el cuerpo JavaScript del método. Los elementos <handler>
no pueden tener elementos hijo, pero pueden incluir los atributos siguientes:Nombre del atributo | Descripción: |
---|---|
name |
El nombre de suceso de la variable. Todas las variables tienen un nombre de suceso asociado. El nombre de suceso es "onVariableName" , donde VariableName es el nombre de la variable. |
eventSource |
Una expresión que identifica el origen del suceso. No incluya este atributo si el origen del suceso es el objeto actual. |
Paquetes compuestos de recursos
Los paquetes compuestos de recursos se declaran como una definición de instancia de clase. La definición de clase base para los paquetes compuestos de recursos es la definición de clase cmc/foundation/ResourceBundle.
<ResourceBundle baseName="com.ibm.commerce.foundation.client.lobtools.properties.FoundationLOB"
definitionName="cmc/foundation/FoundationResources" singletonDefinition="true"/>
<dependency localName="pageLayoutResources" moduleName="cmc/pagelayout/PageLayoutResources"/>
pageLayoutResources.Singleton.layoutSlotTooltip.string
variableName="${<resourceBundleModuleLocalname>.<resourceBundleKeyName>}"
El código siguiente muestra cómo establecer una variable con esta sintaxis: promptText="${pageLayoutResources.pageLayoutAssignmentList}"
ResourceBundleKey
para todas las claves. El módulo de servicio de servlet para la infraestructura del Management Center comprueba el paquete compuesto de recursos especificado para las claves e incluye automáticamente las instancias de ResourceBundleKey
dentro del módulo de AMD generado.Elementos de definición hijo
Las definiciones son jerárquicas. Puede definir definiciones hijo para una definición que se crean implícitamente cuando se crea la instancia de definición padre o base. Los elementos hijo de definición son similares a los elementos de la definición. El nombre del elemento debe ser el nombre de una clase. Si la clase no se encuentra en el paquete predeterminado,"cmc/foundation"
, debe especificarse el atributo del paquete para identificar el paquete. Se pueden utilizar otros atributos para proporcionar valores para los valores de las variables heredadas. Los elementos hijo dentro de un elemento de definición hijo no deben incluir elementos <dependency>
. Deben especificarse todas las dependencias como elemento hijo directo del elemento de definición base.No especifique el atributo classDefinition
o singletonDefinition
para los elementos de definición hijo. Los atributos de variables para los elementos hijo de definición de clase y singleton siguen las mismas reglas que los elementos de definición de clase y singleton.
Puede utilizar la sintaxis ${ }
para especificar valores expresión para las variables. Los atributos de variables para los elementos hijo de definición de instancia de clase y singleton siguen las mismas reglas que los elementos de definición de instancia de clase. No puede utilizar la sintaxis de expresión general para establecer variables, pero puede utilizar la sintaxis clave del paquete compuesto de recursos simplificado.
Los elementos hijo de definición pueden ser nombres asignados mediante el atributo name
. Esta variable es una variable de la instancia de definición de base, que puede utilizar para hacer referencia a instancias de definición hijo por el nombre. El padre de una instancia de definición se encuentra en una propiedad que se denomina padre.
Por ejemplo, si desea restringir la anchura de una instancia de definición para que sea la misma que la de la definición padre de instancia menos cuatro píxeles, declare width="${this.parent.width – 4}"
. Si desea restringir la anchura de una instancia de definición a la anchura de otra instancia de definición hijo que se denomina "a"
, declare width="${this.parent.a.width}"
.
Declaraciones de imagen
Las declaraciones de imágenes se utilizan en archivos de definición para asociar nombres simples con archivos de imagen o conjuntos de archivos de imagen que se pueden utilizar para representar distintos estados de una imagen. Por ejemplo, una imagen puede tener estados diferentes en función de cómo un usuario de empresa está interactuando con la imagen, como por ejemplo, pasar el puntero del ratón y seleccionada. Las declaraciones de imágenes pueden ser para imágenes con una extensión de archivo .png, .gif o .jpg.
<Image>
se puede declarar como hijo directo del elemento raíz <Definitions>
en un archivo de definición. El elemento <Image>
puede incluir los elementos y atributos siguientes: Nombre del atributo | Descripción: |
---|---|
src |
El URL al archivo de imagen. |
name |
El nombre de la imagen. Este nombre debe identificar de forma exclusiva la imagen. |
<ImageSet>
para incluir todas las imágenes. Este elemento debe incluir un atributo name
exclusivo que define de forma exclusiva el conjunto de imágenes. Cada imagen dentro del conjunto debe definirse en elementos hijo <Image>
separados del elemento <ImageSet>
. El Management Center utiliza la variable currentImage
para seleccionar la imagen apropiada que se utiliza dentro de un conjunto de imágenes. El primer elemento <Image>
que se lista dentro de un conjunto de imágenes se considera que es la imagen "1". No es necesario que incluya un atributo name
para las imágenes individuales dentro de un conjunto de imágenes.Módulos AMD predefinidos
Existe un número de módulos AMD predefinidos disponibles que se pueden utilizar en los archivos de definición. Estos módulos se codifican directamente en JavaScript y no se definen en ningún archivo XML de definición. Puede utilizarlos como ayuda para crear sus propias definiciones dentro de los archivos de definición.
Node
: Nombre de variable | Tipo | Descripción: |
---|---|---|
UID |
number |
Identificador exclusivo del módulo. Esta propiedad es de sólo lectura. |
module |
object |
El objeto de módulo. Esta propiedad es de sólo lectura. |
moduleName |
string |
El nombre de módulo. Esta propiedad es de sólo lectura. |
id |
string |
Un identificador global para crear una instancia exclusiva de este nodo. Establezca esta variable sólo para las definiciones que pueden dar como resultado una sola instancia. El objeto al que se puede acceder por el nombre haciendo referencia a la propiedad con nombre del módulo cmc/foundation/SingletonRegistry. |
classroot |
Node |
Cuando se crea una instancia de una definición de clase, se puede acceder el objeto raíz mediante alguno de los descendientes declarados a través de la propiedad classroot . Esta propiedad es de sólo lectura. |
name |
string |
Cuando se crea una instancia de una definición hijo, se puede acceder al objeto hijo como propiedad del objeto padre a través del nombre especificado. |
defaultplacement |
string |
El nombre de una vista de definición hijo a la que se van a adjuntar nuevos hijos. Es decir, el padre inmediato, immediateParent , de la nueva instancia hijo. |
initstage |
string |
Una sugerencia para la infraestructura que indica cómo debe inicializarse este nodo. Los valores siguientes se reconocen mediante la infraestructura:
|
placement |
string |
La colocación de este nodo. |
inited |
boolean |
Esta variable indica si el nodo se ha inicializado. Esta propiedad es de sólo lectura. |
isinited |
boolean |
Al igual que la variable inited , esta variable indica si el nodo se ha inicializado. Esta propiedad es de sólo lectura. |
parent |
Node |
El nodo padre de esta instancia. |
immediateParent |
Node |
El nodo padre directo de esta instancia. |
childNodes |
Matriz deNode |
Una matriz de instancias de nodo hijo. |
Nombre de método | Argumentos | Descripción: |
---|---|---|
completeInstantiation |
Ninguna | Utilice este método para completar la inicialización de un nodo que se crea con initStage="defer" . |
init |
Ninguna | Altere temporalmente este método para proporcionar la lógica de inicialización del nodo. Asegúrese de que el método de alteración temporal incluye una llamada a this.inherited(arguments) |
destroy |
Ninguna | Altere temporalmente este método para liberar los recursos que el nodo utiliza. Asegúrese de que el método de alteración temporal incluye una llamada a this.inherited(arguments) |
setVariable |
variableName – el nombre de la variable. value – el nuevo valor para la variable. |
Utilice este método para establecer explícitamente valores de variable en JavaScript. Con este método, puede asegurarse de que los manejadores de sucesos se invocan correctamente. |