Tag form¶
Tag form¶
A tag/componente form representa uma ficha, um formulário ou uma janela do plug-in.
As principais características do form são:
- Para que alguma interface visual seja apresentada na tela do usuário, é necessário existir ao menos 1 form. Sem form, não há apresentação da interface.
- Apenas os componentes que estão dentro de um form são apresentados na tela.
- É possível existir um form dentro de outro form.
- É possível definir um tema para um form e todos os componentes que estão dentro dele. Exemplo: Você quer que o form (e demais componentes) tenha aparência escura ou clara?
- É possível associar um Nodo de um NodeDatabase (Ver NodeDatabase) a um form. Quando você faz isso, todos os componentes de edição (que estão dentro do form) passam a salvar os dados neste nodo.
- Os modelos de ficha fazem isso! Mas você não precisa se preocupar com isso, pois o SDK 3 faz isso automaticamente para você ;) .
Herança¶
O form possui todas as características de um controle qualquer. Veja Características de todas as tags visuais.
Características¶
Além das características herdadas, o form possui também as seguintes características:
Propriedades e atributos da tag FORM¶
| Propriedade | Tipo | Valor Padrão | Descrição |
|---|---|---|---|
| title | String | \<string vazio> | Define o título do formulário. Este título pode ser apresentado em vários lugares, como identificação da ficha (se for um modelo de ficha) ou como título de janela. |
| description | String | \<string vazio> | Define um texto descritivo do formulário. Se for um modelo de ficha, este valor pode ser apresentado ao usuário durante a criação do personagem. |
| dataType | String | \<string vazio> | Define um tipo de dados que este formulário é capaz de editar. Se você está criando uma ficha nova, você deve inventar este texto. A partir de então, este será o identificador da sua ficha! Este campo deve ser preenchido se você estiver criando uma janela acoplável de mesa que salve dados em um NodeDatabase armazenado no servidor RRPG. Neste caso, o dataType serve para identificar qual NodeDatabase da mesa deverá ser aberto para salvamento de dados. O valor deve possuir ao menos 5 caracteres alfanuméricos, "_" ou "." e não deve começar com um dígito. Exemplos: “RRPG.MeuNome.DnD5” “br.com.Meusite.VampiroAMascara” "br.com.MeuSite.MeuTablesDock" |
| formType | Enumerado: “undefined” “sheetTemplate” "tablesDock" | “undefined” | Define a finalidade deste formulário. “sheetTemplate” – Este formulário é um modelo de ficha. "tablesDock" - Este formulário é uma janela acoplável de mesa. Importante: Se você quiser que sua janela acoplável de mesa salve dados em um NodeDatabase armazenado no servidor RRPG, preencha também a propriedade "dataType". Janelas acopláveis são visíveis apenas para assinantes Gold e/ou em mesas onde seu criador for Gold Plus. “undefined” – Este formulário não tem uma finalidade bem definida e pode ser usado para várias finalidades diferentes. O RRPG não fará nenhum tratamento especial. |
| theme | Enumerado: “default” “light” “dark” | “default” | Define o tema de cores que os componentes visuais terão neste formulário. “default”: Tema padrão (cores escuras). “light”: Tema de cores claras. “dark”: Tema de cores escuras. Observação: Mesmo que outros temas sejam adicionados futuramente, "default" sempre usará cores escuras. |
| lockWhileNodeIsLoading | Boolean | true | Quando true, o form apresenta o texto “carregando” e trava a interface enquanto o NodeDatabase associado estiver baixando dados. |
| minWidth | Float | \<o mesmo que width> | Quando dentro de uma tag flowLayout ou quando for um item de uma tag recordList layout "horizontalTiles" ou "verticalTiles", define a largura mínima que este form pode assumir, o tornando adaptável ao "tamanho da tela". Quando não definido, o valor "width" será usado e, portanto, o form não mudará sua largura de forma dinâmica. |
| maxWidth | Float | \<o mesmo que width> | Quando dentro de uma tag flowLayout ou quando for um item de uma tag recordList layout "horizontalTiles" ou "verticalTiles", define a largura máxima que este form pode assumir, o tornando adaptável ao "tamanho da tela". Quando não definido, o valor "width" será usado e, portanto, o form não mudará sua largura de forma dinâmica. |
| isShowing | Boolean | False | (Somente Leitura) Esta propriedade contém True se o form está sendo exibido na interface do usuário ou false se o form não está visível. |
Métodos da tag FORM¶
| Método | Descrição |
|---|---|
| form:setNodeObject(nodeObject) | Define em qual objeto nodo de um NodeDatabase os controles de edição deste formulário devem salvar os dados. Parâmetros: nodeObject – Um objeto Nodo (de um NodeDatabase) ou nil. Ver: NodeDatabase Escopo de Dados |
| form:getNodeObject(); | Retorna o objeto nodo (de um NodeDatabase) no qual os controles de edição deste formulário devem salvar os dados. nil é retornado quando não há nodo associado. Ver: NodeDatabase Escopo de Dados |
| form:lockWithActivity([msg]) | Desabilita a interação do usuário com o formulário exibindo um indicador de atividade e, opcionalmente, uma mensagem. Ideal quando você quer fazer o usuário aguardar a conclusão de algum processo qualquer antes de voltar a interagir com a interface. Parâmetros: (OPCIONAL) msg - uma cadeia de caracteres contendo a mensagem que será exibida na interface. Observações: Este método segue uma ideia de pilha: Você pode invocar este método mais de uma vez. Para cada chamada a este método, deve haver uma chamada do método unlockWithActivity para destravar a interface. A mensagem exibida será sempre a da última chamada ao método. |
| form:unlockWithActivity() | Volta a habilitar a interação entre o usuário e a interface que foi previamente travada pelo método form:lockWithActivity Retorna true se o form foi realmente liberado, ou false se precisar de mais chamadas de unlockWithActivity para isso. |
Eventos da tag Form¶
| Nome do evento | Descrição |
|---|---|
| onNodeReady | Este evento é invocado quando o objeto nodo de um NodeDatabase associado a este formulário está pronto para ser usado. Quando este evento é chamado, você pode assumir: a variável "sheet" do LuaForm está diferente de nil e possui uma referência válida para um objeto nodo. O processo de carregamento do nodeDatabase associado já chegou ao fim. Você já consegue acessar os dados armazenados nele normalmente. |
| onNodeUnready | Este evento é invocado quando o objeto nodo de um NodeDatabase associado a este formulário deixa de estar pronto para ser usado. Quando este evento é chamado, você pode assumir: a variável "sheet" do LuaForm não contém mais uma referência válida para um objeto nodo. |
| onNodeChanged ou onScopeNodeChanged | Este evento é invocado um objeto nodo de um NodeDatabase é associado ou desassociado a este formulário. Ver NodeDatabase |
| onShow | Este evento é invocado quando o formulário for ficar visível na interface. |
| onHide | Este evento é invocado quando o formulário for ser escondido/fechado. |
Veja também Tratando eventos do Lua Form.
Created with the Personal Edition of HelpNDoc: Make your documentation accessible on any device with HelpNDoc