Manejo de tipo de datos en la infraestructura de interfaz de usuario web

Se necesita un método coherente de manejo de tipos de datos para validar cuadros de entrada en la IU, para definir sus archivos XML de entidad y para otras tareas. Un tipo de datos es un atributo de datos que le ayuda a establecer restricciones en los datos, como valores aceptables y las operaciones que se pueden realizar en dichos datos.

El tipo de datos es necesario en el lado del cliente de la aplicación para:
  • Validación de campos de la IU (longitud, tamaño, etc.)

    Al añadir campos a la pantalla mediante Extensibility Designer, los tipos de datos de los nuevos campos ayudan a determinar la visualización de la pantalla.

  • Visualización de componentes de la IU (tamaño, etc.)

La validación se puede configurar para sucesos de usuario como pulsar un botón o cambiar el foco del cursor.

En la infraestructura de interfaz de usuario web dispone de las opciones siguientes para el manejo de tipos de datos:
  • La implementación predeterminada, que permite continuar utilizando la implementación del manejo de tipos de datos de las implementaciones de interfaz de usuario JSP, Swing o RCP de la consola. Dichas implementaciones utilizan los archivos de definición de tipos de datos siguientes:
    • datatypes.xml (ubicado en < DIR_INSTALACIÓN>/repository/datatypes)
    • yfsdatatypemap.xml (ubicado en < DIR_INSTALACIÓN>/repository/xapi/template/merged/resource)

    Puede personalizar esta implementación predeterminada.

  • Registrar la implementación personalizada del manejo de datos. Puede utilizar el archivo web.xml para este registro.

    A continuación se muestra la configuración estándar de los parámetros relacionados con el tipo de datos del archivo web.xml. Para personalizar el manejo de tipos de datos, debe sustituir la entrada < param-value> por la vía de acceso de clases a la clase Java™ personalizada, en función de su ubicación y nombre de paquete.

    <context-param>
      	<param-name>scui-datatype-provider</param-name> 
      	<param-value>
            com.sterlingcommerce.ui.web.platform.dataType.SCUIDataTypeProvider
      	</param-value>
    </context-param>

    También puede registrar la implementación personalizada realizando una llamada Java al método SCUIDataTypeHelper.setDataTypeProvider.

    A continuación se muestra un ejemplo de un paquete de una implementación personalizada:

    package com.sterlingcommerce.ui.dataType;
    import java.util.Map;
    public interface ISCUIDataTypeProvider{
            public Map getDataTypes();
            public SCUIDataType getDataType(StringdataTypeName);
            public SCUIValidationResponse validate(StringdataTypeName, Stringvalue);
            publicbooleanisValid(StringdataTypeName,Stringvalue);
            publicvoidinit();

    A continuación se muestran las directrices para la creación de un tipo de datos mediante la clase SCUIDataType que se utiliza en el paquete anterior:

    package com.sterlingcommerce.ui.dataType;
    public class SCUIDataType {
           
        /** Holds value of property name. */       
        private String name;
        /** Holds value of property type. */
        private String type;
        /** Holds value of property size. */
        private Integer size;
        /** Holds value of property decimalDigits. */
        private Integer decimalDigits;
        /** Holds value of property negativeAllowed. */
        private Boolean negativeAllowed;
        .......
        public void setName(String name) {
                       this.name = name;
               }
        public void setType(String type){
            this.type = type;
        }
        public void setSize(int size){
            this.size = new Integer(size);
        }
        public void setDecimalDigits(int decimalDigits) {
                    this.decimalDigits = new Integer(decimalDigits);
            }
        public void setNegativeAllowed(boolean negativeAllowed){
            this.negativeAllowed = new Boolean(negativeAllowed);
        }
        
        .......
         
        public String getType(){
               return this.type;
        }
       
        public boolean isNumeric() {
               return ("NUMBER".equalsIgnoreCase(getType()));
        }
           ........
     
    }
    

Para implementar el código Java personalizado, cree un archivo JAR que contenga la clase Java y, a continuación, instale el archivo JAR utilizando el script install3rdparty.sh .

Para implementar esta personalización, vuelva a crear el archivo EAR o el archivo WAR como hizo durante la instalación y, a continuación, despliegue la aplicación en el servidor de aplicaciones.