Manipulação de Tipo de Dados no Web UI Framework

Um método consistente de manipulação de tipo de dados é necessário para validar caixas de entrada na UI, para definir seus arquivos XML de entidade e para outras tarefas. Um tipo de dados é um atributo de dados que o ajuda a configurar restrições sobre os dados, como valores aceitáveis e quais operações podem ser executadas nesses dados.

O tipo de dados é necessário no lado do cliente do aplicativo para:
  • Validação de campo da UI (comprimento, tamanho, etc.)

    Quando você incluir campos na tela utilizando o Extensibility Designer, os tipos de dados dos novos campos ajudam a determinar a exibição da tela.

  • Exibição do componente de UI (tamanho, etc.)

A validação pode ser configurada para eventos do usuário, como clicar em um botão ou alterar o foco do cursor.

Com o Web UI Framework, você possui as seguintes opções para manipulação de tipo de dados:
  • A implementação padrão, que permite continuar usando a implementação da manipulação de tipo de dados das implementações de UI do Console JSP, Swing ou RCP. Estas implementações usam os arquivos de definição de tipo de dados a seguir:
    • datatypes.xml (localizado em < INSTALL_DIR>/repository/datatypes)
    • yfsdatatypemap.xml (localizado em < INSTALL_DIR>/repository/xapi/template/merged/resource)

    É possível customizar essa implementação padrão.

  • Registre a implementação customizada de manipulação de dados. É possível usar o arquivo web.xml para esse registro.

    A seguir é mostrada uma configuração pronta para uso dos parâmetros relacionados ao tipo de dados no arquivo web.xml. Para customizar a manipulação de tipo de dados, você deve substituir a entrada < param-value> pelo caminho de classe para a classe Java™ customizada, com base em seu local e nome do pacote.

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

    Você também pode registrar a implementação personalizada fazendo uma chamada Java para o método SCUIDataTypeHelper.setDataTypeProvider.

    A seguir, é mostrado um exemplo de uma implementação de pacote:

    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 seguir são mostradas as diretrizes para a criação de tipo de dados usando a classe SCUIDataType que é usada no pacote acima:

    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 o código Java customizado, crie um arquivo JAR que contenha a classe Java e, em seguida, instale o arquivo JAR usando o script install3rdparty.sh .

Para implementar essa customização, reconstrua o arquivo EAR ou WAR tal como é feito durante a instalação e, em seguida, implemente o aplicativo no servidor de aplicativos.