new ViewDef(key)
Abstração da definição da camada de visão a partir de uma classe. Pode ser entendido como uma interface stateful para um mapeamentos objeto-relacional, na camada MVC.
Parameters:
Name | Type | Description |
---|---|---|
key |
string | Chave da classe |
Extends
Members
-
canDuplicate :boolean
-
Indica se os registros da classe de dados podem ser duplicados pela grade do Web Framework.
Type:
- boolean
- Default Value:
-
- true
-
Permite que a classe seja navegável para o menu principal do sistema.
Type:
- boolean
-
confirmCancel :boolean|undefined
-
Habilita a confirmação de cancelamento na interface de grade do web framework quando conter o valor true.
Type:
- boolean | undefined
-
confirmChange :boolean|undefined
-
Habilita a confirmação de alteração na interface de grade do web framework quando conter o valor true.
Type:
- boolean | undefined
-
confirmDelete :boolean|undefined
-
Habilita a confirmação de remoção na interface de grade do web framework quando conter o valor true.
Type:
- boolean | undefined
-
defaultExplorerIndex :Array.<string>|string
-
Índice utilizado para ordenar o DataSet do processo Explorer.ip. O processo Explorer.ip utilizará o método DataSet.setIndex se esta propriedade for um array de strings ou o processo utilizará a propriedade DataSet.indexFieldNames se defaultExplorerIndex for uma string.
Type:
- Array.<string> | string
-
defaultGlobalActionName :string
-
Registra o nome de uma uma ação global para que esta ação seja executada automaticamente quando o usuário clicar sobre um dos registros da "Busca do sistema" no diálogo de busca. Será disparado um erro para o usuário caso a ação global, cujo nome for configurado nesta propriedade, tenha sua visibilidade removida no evento 'show', portanto, deve-se evitar alterar a visibilidade de ações globais configuradas como padrão.
Somente é possível existir uma ação global padrão em uma definição de classe. Informar um novo nome de ação global irá substituir o anteriormente informado.
Type:
- string
-
defaultIndex :Array.<string>|string
-
Esta propriedade faz a mesma coisa que ViewDef.defaultExplorerIndex.
Type:
- Array.<string> | string
- Deprecated:
-
- ViewDef.defaultExplorerIndex
-
defaultOpenInteraction :string
-
Interação padrão que será executada logo após a abertura do processo, através da API de link.
Type:
- string
-
<non-null> defaultOpenInteractionParameters :Array.<string>
-
Parâmetros que serão passados para interação quando um processo abrir através da API de link.
Type:
- Array.<string>
-
defaultProcess :number
-
Processo que deve ser executado ao clicar no menu principal em qualquer classe que essa propriedade estiver definida com a chave do processo.
Essa funcionalidade não é mais suportada no menu principal do sistema e os valores atribuídos a ela são ignorados.
Type:
- number
- Deprecated:
-
- Yes
-
deprecatedInterfaceEnabled :boolean
-
Habilita o uso do iWeb.
Type:
- boolean
-
fieldClass :function
-
Determina qual é a classe que é utilizada para construção de campos no Mapeamento objeto-relacional. O método ViewDef#field retornará uma instância da classe apresentada nesta propriedade. Ou seja, se existir um campo criado para o nome de campo fornecido, uma instancia da classe em fieldClass é fornecido se não houver é criada uma e retornada.
Type:
- function
-
globalActions :GlobalActionSet
-
Ações globais de uma classe. Uma ação global é uma espécie de link para qualquer relatório ou processo do sistema.
Type:
- GlobalActionSet
-
<non-null> gridDefinition :Object
-
Guarda as definições de grade que são declaradas por defineGrid.
Type:
- Object
- See:
-
- ViewDef#defineGrid
-
icon :string
-
Ícone será apresentado no menu de navegação, caso esta classe represente um módulo do sistema. Deve ser um dos ícones disponíveis em Menu > Desenvolvimento > Componentes > Ícones.
Type:
- string
-
imageHeight :number
-
Altura padrão em pixels da imagem associada a este registro, caso exista uma.
Type:
- number
-
imageWidth :number
-
Largura padrão em pixels da imagem associada a este registro, caso exista uma.
Type:
- number
-
<nullable> lookupTableViewWidth :number
-
Largura da grade em visão de tabela.
Type:
- number
-
lookupWidth :number
-
Define a largura do campo lookup.
Type:
- number
-
onAfterChange :LegacyEvent
-
Evento que injeta comportamento no momento depois da alteração de um registro. Esse evento apresenta a característica de disparar os listeners definidos nas classes ancestrais.
Type:
- LegacyEvent
- Deprecated:
-
- Este evento não é emitido pelo Web Framework. Utilize o evento "afterChange" dos campos da classe.
-
onBeforeChange :LegacyEvent
-
Evento que injeta comportamento no momento antes da alteração de um registro. Esse evento apresenta a característica de disparar os listeners definidos nas classes ancestrais.
Type:
- LegacyEvent
- Deprecated:
-
- Este evento não é emitido pelo Web Framework. Utilize o evento "beforeChange" dos campos da classe.
-
onCalculate :LegacyEvent
-
Evite o uso deste evento, ele não faz sentido para definição de classe.
Este evento não é emitido pelo Web Framework. Utilize o evento "calculate" dos campos da classe.
Type:
- LegacyEvent
- Deprecated:
-
- Yes
-
<non-null> thumbnail :CellThumbnail
-
Controla a disposição da célula de imagem.
Type:
- CellThumbnail
-
tooltip :string
-
Conteúdo de ajuda que será exibido ao repousar o cursor sobre a classe em um menu.
Essa funcionalidade não é mais suportada no menu principal do sistema e os valores atribuídos a esta propriedade são ignorados.
Type:
- string
- Deprecated:
-
- Yes
-
zoomImageHeight :number
-
Indica a altura padrão em pixels da imagem associada a este registro quando está sendo exibida a ampliação dela, normalmente ativa quando ela recebe o foco do mouse.
Type:
- number
-
zoomImageOnHover :boolean
-
Indica se haverá ampliação ao passar o cursor do mouse sobre uma imagem associada a este registro.
Type:
- boolean
-
zoomImageWidth :number
-
Indica a largura padrão em pixels da imagem associada a este registro quando está sendo exibida a ampliação dela, normalmente ativa quando ela recebe o foco do mouse.
Type:
- number
Methods
-
defineGrid(gridName, func)
-
Registra uma função de configuração que será executada para grades cujo nome seja gridName e que utilizem esta classe como a de definição dos dados. A classe de definição dos dados de uma grade é determinada pela propriedade Grid#definitionClass. Caso ela não tenha sido informada, será considerada a propriedade Grid#classKey. O uso desta função é recomendado para realizar configurações específicas de uma grade, que não se aplicam para todas as grades de uma classe de dados.
Caso sejam registradas várias funções de configuração para um mesmo nome de grade, será executada apenas a última registrada. Para executar as definições anteriores, deve ser executada a função global inherited.
Em campos do tipo masterDetail, o nome do campo será utilizado para obter as definições da grade. Ou seja, serão executadas as funções registradas para grades cujo nome seja igual ao nome do campo mestre-detalhe.
A função de definição é executada no momento da preparação da grade, que ocorre na primeira escrita ou quando a classe de dados da grade é alterada. Em campos do tipo mestre-detalhe, ela é executada antes do evento defineGrid do campo detalhe. Dessa forma, definições realizadas em um campo do tipo mestre-detalhe prevalecem sobre as definições realizadas por meio deste método.Parameters:
Name Type Description gridName
string Nome da grade.
func
function Função com que irá configurar a grade. No contexto desta função, this é a grade a ser configurada.
Example
this.defineGrid('Explorer', function () { inherited() this.field('iKey').visible = true; });
-
field(name [, type] [, size])
-
Obtém ou cria um campo na classe de dados. Este método retornará o campo existente com o nome informado ou criará um caso não exista. Nesse último caso, é obrigatório informar o tipo do campo. Além dos tipos suportados na declaração do modelo de dados (x-model), relacionados em ModelDef#field, também são suportados:
"grid" - Tipo utilizado para indicar que o campo deve ser visualizado como uma grade detalhe da classe de dados que o definiu. O seu propósito é similar ao tipo "masterdetail", no entanto, ele permite a exibição de dados detalhes cuja relação não pode ser estabelecida apenas pelas propriedades classKey, masterFieldNames e detailFieldNames. Sempre que for possível, é recomendado o uso do tipo "masterdetail". Campos do tipo "grid" não podem ser utilizados em definição de modelo de dados (x-model), sendo o seu uso restrito em definições de visão (x-view) e em processos. Campos do tipo "grid" podem ser definidos em grades de variáveis, sem
DataSet
associado. Nesse caso, o eventocreateDataSet
da grade detalhe deve ser configurado e as propriedadesmasterFieldNames
,detailFieldNames
eclassKey
não devem ser informadas.
"tree" - Tipo utilizado para campos que conterão grades do tipo treeGrid (árvore);Parameters:
Name Type Argument Description name
string Nome do campo.
type
string <optional>
Tipo do campo. Opcional quando for solicitado um campo existente.
size
number <optional>
Tamanho do campo em caracteres. Obrigatório apenas para os tipos "string" e "password".
Returns:
- Type
- Field
-
fileAttributes(vfsKey)
-
Informa os atributos de um determinado arquivo na tabela iVfs. Os atributos servem para informar se um arquivo será exibido, informar nome, ordem de exibição, permissão de controle e tooltip. A tabela iVfs representa o sistema de arquivos virtuais, ou seja, são arquivos que estão sendo armazenados diretamente no banco e são replicados para o cache local
Parameters:
Name Type Description vfsKey
number Chave do arquivo.
Returns:
Atributos do arquivo.
- Type
- Object
-
toString()
-
Retorna uma string que informa qual a chave do x-class ao qual a instância foi criada.
Returns:
- Type
- string
Events
-
afterDuplicate
-
Evento que será emitido após um registro ser duplicado. Seu uso é recomendado para realizar sugestões de valores para o registro novo, recém duplicado.
Type: module:@nginstack/web-framework/lib/classdef/GridEvent~GridEvent
Example
this.on('afterDuplicate', function (evt) { evt.grid.process.alert('Registro duplicado.'); });
-
afterScroll
-
Evento emitido após a navegação de um registro para um outro em uma grade associada a um DataSet. Também será emitido assim que a grade for escrita, momento em que ela se posicionar no registro corrente do DataSet.
Type: module:@nginstack/web-framework/lib/classdef/GridEvent~GridEvent
-
beforeDuplicate
-
Evento que será emitido antes de um registro seja duplicado. Seu uso é recomendado para verificar regras de negócio que indiquem se o registro pode ou não ser duplicado.
Type: module:@nginstack/web-framework/lib/classdef/GridEvent~GridEvent
Example
this.on('beforeDuplicate', function (evt) { evt.grid.process.alert('Duplicando registro em ' + evt.grid.name + '.'); });
-
beforeScroll
-
Evento que será emitido antes da navegação de um registro para um outro em uma grade associada a um DataSet. Também será emitido assim que a grade for escrita, momento em que ela se posicionar no registro corrente do DataSet.
Type: module:@nginstack/web-framework/lib/classdef/GridEvent~GridEvent
Example
// No exemplo abaixo é dado um alerta informando o número do registro em que // se estava posicionado, caso a grade não esteja vazia.<br> this.on('beforeScroll', function (evt) { if (evt.data.recNo > 0) { evt.process.alert('Você estava no registro: ' + evt.data.recNo); }); })
-
changeView
-
Evento que será emitido quando for alterado o modo de visão da grade.
A grade poderá ter seu modo de visão alterado a partir da propriedade viewMode que irá disparar este evento, ao chamar esse evento a propriedade viewMode estará com seu valor anterior á mudança de visão.
A grade também pode ter seu modo de visão alterado quando for chamado o grid.write() que possui um parâmetro que determina em que modo será escrita a grade.Type: module:@nginstack/web-framework/lib/classdef/GridEvent~GridEvent
Example
// No exemplo abaixo quando o modo de visão da grade é alterado são alterados // também os botões visíveis pois algumas delas não fazem sentido em um ou outro // modo de visão. Como a modificação deve ser do modo formulário para tabela e // vice-versa, é utilizado uma expressão condicional para analisar o valor do viewMode.<br> this.on('changeView', function (evt) { if (evt.grid.viewMode === Grid.TABLEVIEW ){ evt.grid.visibleButtons = ['Redefinir Grade']; } else { evt.grid.visibleButtons = ['Editar', 'Recarregar grades']; } });
-
defineClassesGrid
-
Evento que permite a customização da grade de classes no processo ClassesExplorer do Admin.
Type: module:@nginstack/web-framework/lib/classdef/GridEvent~GridEvent
-
definePermissionsGrid
-
Evento que permite a customização da grade de permissões.
Type: module:@nginstack/web-framework/lib/classdef/GridEvent~GridEvent
-
locate
-
Evento que será emitido quando a grade for localizar um conteúdo.
O comportamento padrão de localização da grade poderá ser substituído fazendo uso do método ngin.event.Listener#replaceListeners.Type: module:@nginstack/web-framework/lib/classdef/GridLocateEvent~GridLocateEvent
Example
// O exemplo abaixo personaliza a busca para permitir que sejam buscados apenas // números e executa o evento padrão através do "inherited".<br> // O evento deverá retornar um valor booleano, sendo true para indicar que localizou // o registro. O dataSet da grid deve ser posicionado no registro localizado. this.replaceListeners('locate', function (evt, replacedEmit) { if (typeof evt.value !== 'number') { replacedEmit(evt) if (replacedEmit.locatedField) { grid.process.setNextInteraction('interactionName') } } else { throw new Error('Não é possível localizar valores diferentes de números!') } });
-
openKey
-
Evento emitido quando o usuário deseja abrir detalhes sobre um registro de um campo lookup ou deseja uma interface mais rica para auxiliar o seu preenchimento. nas classes ancestrais.
Type: module:@nginstack/web-framework/lib/classdef/OpenKeyEvent~OpenKeyEvent
-
showLog
-
A grade possui o botão de "Log" que ao ser acionado exibe o histórico de alterações do registro corrente. Este evento será emitido quando esse botão for acionado.
O processo padrão de histórico de alterações da grade poderá ser substituído fazendo uso do método ngin.event.Listener#replaceListeners.Type: module:@nginstack/web-framework/lib/classdef/GridEvent~GridEvent
Example
this.replaceListeners('showLog', function (evt) { evt.grid.process.setNextInteraction('run', ['chave', evt.data.ikey], -1898143458); evt.preventDefault(); });