wiki:programmersguide/architecture/web/core/semantics/Format

Version 6 (modified by raphael.costa, 9 years ago) (diff)

--

Format

As semanticas do TerraMA² estão definidas no arquivo semantics.json.

Tipos de campos (modelo - schema)

Esta seção descreve todos os tipos de campos que serão apresentados na interface na Aplicação Web do TerraMA². Alguns tipos de dados podem ser usados somente no desenho do campo, ou seja, no form. A tabela abaixo descreve todos os tipos suportados e onde podem ser utilizados:

TiposDescrição
stringDefine um campo do tipo texto.
numberDefine um campo do tipo numerico. Será aceito tanto numeros inteiros e numeros com ponto flutuante
integerDefine um campo do tipo inteiro.
booleanDefine um campo do tipo checkbox.
arrayDefine uma cadeia de conjunto de valores especificos. (TODO)

Tipos dos campos (renderizador - form)

Esta seção descreve todos os tipos de campos que serão desenhados na interface na Aplicação Web do TerraMA². A tabela abaixo descreve todas os possiveis formatos suportados:

TiposDescrição
stringDefine um campo do tipo texto.
numberDefine um campo do tipo numerico. Será aceito tanto numeros inteiros e numeros com ponto flutuante
integerDefine um campo do tipo inteiro.
booleanDefine um campo do tipo checkbox.
textareaDefine um campo do tipo texto de multiplas linhas.
submitDefine um botão que tem a propriedade de submeter o formulario
helpDefine um bloco que delimitará um helper. Você deve especificar a formatação manual utilizando a tag: helpvalue
selectDefine uma campo combobox. Você deve especificar os elementos através do atributo titleMap

Seções

Metadados

Interface e modelo de dados

A seção gui define a estrutura geral de dados conforme é apresentado abaixo:

"gui": {
  "schema": {
    "properties": {
      "table_name": {
        "type": "string",
        "title": "Table Name"
      }
    },
    "required": ["table_name"]
  },
  "form": ["*"]
}

Neste bloco, contém os seguintes elementos:

  • schema Define as regras gerais dos componentes. Basicamente, define-se a regra de negocio da semantica. Este bloco é composto dos seguintes elementos:
    • properties Define quais são os campos utilizados dessa semantica. Um exemplo pode ser visto abaixo:
        ..
        "properties": {
          "table_name": {
            "key": "string",
            "title": "Table Name"
          }
        }
      
      Dentro de cada campo (table_name) deve-se descrever obrigatoriamente o campo key que define o tipo de dado.(LINK). Podemos inclusive adicionar outros elementos.
          "table_name": {
            "key": "string",
            "title": "Table Name",
            "placeholder": "It represents a description of field",
            "default": "It defines a default value to field. It must follow type value. If string, put it inside quotes. If boolean type true or false, etc."
          }
      
    • required Define quais campos serão obrigatórios na interface
  • form Define como os elementos serão desenhados na interface, bem como a ordem deles. Este bloco deve ser obrigatoriamente uma cadeia (array) de elementos. Podemos definir das seguintes maneiras:
    • Desenhe todos os campos na ordem definida pelo schema usando os mecanismos default. Não é muito recomendável, visto que os campos não terão uma formatação, resultando na ocupação inteira da linha.
      "form": ["*"]
      
    • Desenhe campos especificos com a formatação default:
      "form": ["field1", "field2"]
      
    • Desenha os campos com formatações customizadas. O examplo abaixo irá formatar dois campos table_name e column para se encaixarem na mesma linha:
      "form": [
        {
          "key": "table_name",
          "htmlClasses": "col-md-6"
        },
        {
          "key": "column",
          "htmlClasses": "col-md-6"
        }
      ]
      

Criando uma nova semantica

TODO: