Class: ButtonGroup

@nginstack/web-framework/lib/button/ButtonGroup~ ButtonGroup


new ButtonGroup(name)

Grupo de botões de um processo ou de uma grade. O grupo é exibido na barra de botões como um botão que, ao ser acionado, abre um menu com os botões que fazem parte dele.

O grupo herda de module:@nginstack/web-framework/lib/button/Button~Button as propriedades de apresentação, como label, hint, help, visible, enabled, order, accessKey e permissionKeyWord. As propriedades e os eventos relacionados ao acionamento do botão, como click, params e timer, não se aplicam a um grupo.

Regras:

  • o grupo apenas abre o menu. Ele não tem destino, evento click nem botão padrão;
  • um grupo não pode conter outro grupo;
  • o nome do grupo não pode ser igual ao nome de um botão do mesmo processo ou grade;
  • um botão pertence a apenas um grupo. Ao ser adicionado a outro grupo, ele é removido do anterior;
  • o grupo somente é exibido quando estiver visível e tiver ao menos um botão visível. Ele somente é habilitado quando estiver habilitado, o usuário tiver permissão e houver ao menos um botão habilitado.

Este construtor não deve ser executado diretamente. Para criar um grupo, utilize os métodos module:@nginstack/web-framework/lib/process/Process~Process#buttonGroup ou module:@nginstack/web-framework/lib/grid/Grid~Grid#buttonGroup.

Parameters:
Name Type Description
name string

Nome do grupo. O valor informado também será utilizado como o texto do grupo, caso a propriedade label não seja informada.

See:
Example
grid.button('Emitir NF-e').on('click', emitir);
grid.button('Imprimir DANFE', 'imprimirDanfe');

const fiscal = grid.buttonGroup('Fiscal', ['Emitir NF-e', 'Imprimir DANFE']);
fiscal.help = 'Operações fiscais do pedido.';

grid.visibleButtons = ['Aprovar', fiscal, 'Exportar'];
// grid.visibleButtons = ['Aprovar', 'Fiscal', 'Exportar']; // Também funciona utilizando o nome
// do grupo

Extends

Members


accessKey :string

Letra sugerida para ser utilizada como tecla de acesso, pela qual o botão será acionado via teclado pressionando essa letra juntamente com a tecla Alt. A letra deve ser maiúscula e não acentuada.

A letra sugerida poderá ser ignorada caso haja um atalho preexistente no navegador ou se ela já tiver sido utilizada por um outro botão do processo ou de outra grade na mesma tela.

Type:
  • string
Inherited From:

buttons :Array.<(module:@nginstack/web-framework/lib/button/Button~Button|string)>

Botões que fazem parte deste grupo, na ordem em que são exibidos no menu.

Ao atribuir esta propriedade, os botões informados passam a ser os únicos botões do grupo. Podem ser informados os nomes ou as instâncias dos botões. Um botão que pertença a outro grupo será movido para este.

Type:
Example
const fiscal = this.buttonGroup('Fiscal');
fiscal.buttons = ['Emitir NF-e', 'Imprimir DANFE'];

createNewTab :boolean

Indica se deverá ser aberta uma nova aba para exibir o conteúdo da interação ou atividade apontada por esta âncora.

Type:
  • boolean
Inherited From:

defaultAction :boolean

Determina se este botão deve ser considerado o botão padrão do processo.
O botão padrão é disparado automaticamente quando o usuário informa o último campo de uma grade de variáveis. Ele é destacado em negrito.

Type:
  • boolean
Inherited From:
Deprecated:
  • Utilize a propriedade defaultButton
See:

defaultButton :boolean

Determina se este botão deve ser considerado o botão padrão do processo.
O botão padrão é disparado automaticamente quando o usuário informa o último campo de uma grade de variáveis. Ele é destacado em negrito.

Type:
  • boolean
Inherited From:

enabled :boolean

Indica se o botão pode ser clicado pelo usuário. Quando desabilitado, ele estará visível, mas com uma cor diferente, sinalizando que não pode ser utilizado.
É recomendada a utilização das propriedades Process.enabledButtons e Grid.enabledButtons para definir quais botões estão habilitados.

Type:
  • boolean
Inherited From:
See:
  • Process#enabledButtons
  • Grid#enabledButtons

<readonly, nullable> group :module:@nginstack/web-framework/lib/button/ButtonGroup~ButtonGroup

Grupo de botões do qual este botão faz parte ou null caso ele não pertença a um grupo.

Um botão que pertence a um grupo não é exibido diretamente na barra de botões. Ele é exibido no menu aberto pelo grupo. Para incluir ou remover um botão de um grupo, utilize os métodos module:@nginstack/web-framework/lib/button/ButtonGroup~ButtonGroup#add e module:@nginstack/web-framework/lib/button/ButtonGroup~ButtonGroup#remove ou a propriedade module:@nginstack/web-framework/lib/button/ButtonGroup~ButtonGroup#buttons.

Type:
Inherited From:
See:

help :string

Texto de ajuda do botão. É exibido na visualização da ajuda do processo ou da grade que este botão está vinculado. É exibido para o usuário final ao manter o mouse sobre o botão caso não possua a propriedade hint preenchida.

Type:
  • string
Inherited From:

hint :string

Mensagem que será exibida para o usuário final quando ele passar o mouse sobre o botão.

Type:
  • string
Inherited From:

label :string

Texto que será exibido no botão. Caso não seja informado, será utilizado o valor da propriedade "name".

Type:
  • string
Inherited From:

maxSelectedRecords :number

Indica a quantidade máxima de registros selecionados para que este botão possa ser utilizado em uma grade.
Propriedade válida apenas para botões de grade.

Type:
  • number
Inherited From:
See:

minSelectedRecords :number

Indica a quantidade mínima de registros selecionados para que este botão possa ser utilizado em uma grade.
Propriedade válida apenas para botões de grade.
Valor padrão: 1.

Type:
  • number
Inherited From:
See:

name :string

Nome do botão.

Type:
  • string
Inherited From:

nextInteractionName :string

Nome da interação ou atividade que será exibida quando o componente for acionado.

Type:
  • string
Inherited From:

nextProcessId :string

Id da instância de um processo que contém a atividade ou interação informada na propriedade "nextInteractionName". Quando esta propriedade é informada, um processo já aberto pelo usuário será navegado para a interação ou atividade informada em "nextInteractionName".

Type:
  • string
Inherited From:

nextProcessKey :number

Chave do processo que contém a atividade ou interação informada na propriedade "nextInteractionName". Será considerado o processo corrente quando não for informado.

Type:
  • number
Inherited From:

onClick :module:@nginstack/engine/lib/event/Adapter~Adapter

Função que será atribuída ao evento click do botão.

Type:
Inherited From:
Deprecated:
  • Use this.on('click', listener);

order :number

Indica a ordem do botão na barra de botões. Os botões são exibidos em ordem crescente da propriedade "order". Quando não for informado, os botões serão exibidos na ordem em que foram declarados.

Type:
  • number
Inherited From:

parameters :Array.<Array.<(string|number|boolean|Date|null)>>

Array com os parâmetros a serem enviados para a interação de destino, quando este botão não tiver o evento "click". Deve ser um array de array com duas posições sendo a primeira o nome do parâmetro e a segunda o valor.

Esta propriedade é legada e mantida apenas para fins de compatibilidade. Em novas implementações, utilize apenas a propriedade params.

Type:
  • Array.<Array.<(string|number|boolean|Date|null)>>
Inherited From:
Deprecated:
  • Utilize a propriedade `params`.
See:

params :Record.<string, (string|number|boolean|Date|null)>

Parâmetros que serão passados para o processo destino quando este botão não tiver o evento "click" configurado.

Esta propriedade é um objeto que associa os nomes das propriedades ao seus valores. As propriedades informadas serão definidas no processo destino quando o botão for acionado. Somente podem ser informados valores primitivos ou datas.

Type:
  • Record.<string, (string|number|boolean|Date|null)>
Inherited From:
Example
let btn = this.button('run', 'runInteraction');
btn.params.userName = ds.num('iFullName');
btn.params.description = ds.str('iDescription');

parent :module:@nginstack/web-framework/lib/process/Process~Process|module:@nginstack/web-framework/lib/grid/Grid~Grid

Objeto que contém este botão. Poderá ser uma instância de:

  • Process, para os botões de um processo;
  • Grid, para os botões de uma grade;
Type:
Inherited From:
See:

permissionKeyWord :string

Palavra chave utilizada para controlar o poder do usuário em disparar esta âncora. Se o usuário não tiver permissão, o componente será exibido desabilitado, independente do valor da propriedade "enabled".
Quando informado, o usuário ou o seu grupo deverão ter ao menos uma permissão que contenha a palavra chave definida. A permissão deve ser concedida no processo "Administração do sistema > Segurança > Permissões", selecionado o processo na árvore de diretórios e arquivos, e adicionando um registro na grade de permissões e preenchendo o campo "Palavras Chaves".

Type:
  • string
Inherited From:

process :module:@nginstack/web-framework/lib/process/Process~Process

Instância do processo onde este objeto foi criado.

Type:
Inherited From:
See:

timeout :number

Indica o tempo em milissegundos para o disparo automático do botão.

Type:
  • number
Inherited From:
Deprecated:
  • Utilize a propriedade "timer".
See:

timer :module:@nginstack/web-framework/lib/button/ButtonTimer~ButtonTimer

Temporizador para disparos automáticos do botão.

Type:
Inherited From:
See:
  • ButtonTimer

validateLastInteraction :boolean

Determina se os componentes da interação corrente serão notificados que irá ocorrer uma navegação para uma outra interação, possibilitando que os componentes notificados tomem ações para validar os seus estados, podendo inclusive cancelar o comando de navegação do usuário.
A ação de validação irá variar entre os componentes notificados. Por exemplo: a grade irá executar um "post" caso o registro atual se encontre em edição e irá bloquear a navegação caso o registro não possa ser gravado.

Type:
  • boolean
Inherited From:

visible :boolean

Indica se o botão deve ser exibido na barra de botões do processo ou da grade.

É recomendada a utilização das propriedades Process.visibleButtons e Grid.visibleButtons para definir quais botões devem ser exibidos.

Type:
  • boolean
Inherited From:
See:
  • Process#visibleButtons
  • Grid#visibleButtons

Methods


add(button)

Adiciona um botão ao final deste grupo. Caso o botão pertença a outro grupo, ele será removido do grupo anterior.

Parameters:
Name Type Description
button module:@nginstack/web-framework/lib/button/Button~Button| string

Nome ou instância do botão.

Returns:

Este grupo, permitindo o encadeamento de chamadas.

Type
module:@nginstack/web-framework/lib/button/ButtonGroup~ButtonGroup
Example
const fiscal = this.buttonGroup('Fiscal');
fiscal.add('Emitir NF-e').add('Imprimir DANFE');

assign(obj)

Atribui as propriedades desta instância com os valores das propriedades da instância informada.

Parameters:
Name Type Description
obj module:@nginstack/web-framework/lib/button/Button~Button

Objeto do qual se deseja obter os valores.

Inherited From:

clone()

Cria uma cópia deste grupo. Os botões do grupo não são copiados.

Overrides:
Returns:
Type
module:@nginstack/web-framework/lib/button/ButtonGroup~ButtonGroup

disable()

Desabilita o botão.

Inherited From:
Deprecated:
  • Utilize a propriedade enabled.
See:

enable()

Habilita o botão.

Inherited From:
Deprecated:
  • Utilize a propriedade enabled.
See:

hide()

Torna o botão invisível.

Inherited From:
Deprecated:
  • Utilize a propriedade visible.
See:

remove(button)

Remove um botão deste grupo. O botão não é excluído, ele apenas deixa de fazer parte do grupo e volta a ser exibido diretamente na barra de botões.

Parameters:
Name Type Description
button module:@nginstack/web-framework/lib/button/Button~Button| string

Nome ou instância do botão.

Returns:

Este grupo, permitindo o encadeamento de chamadas.

Type
module:@nginstack/web-framework/lib/button/ButtonGroup~ButtonGroup

show()

Torna o botão visível.

Inherited From:
Deprecated:
  • Utilize a propriedade visible.
See:

Events


click

Evento disparado quando o usuário clica no botão. Uma referência para o botão pode ser acessada pela propriedade button.

Type: ButtonEvent
Inherited From:
See:
  • module:@nginstack/web-framework/lib/button/ButtonEvent~ButtonEvent
Example
const button = process.button('validate');
button.on('click', function (event) {
  const process = event.process;
  const newPassword = process.password.field('newPassword');
  if (!newPassword) {
    throw new Error('Informe uma nova senha.');
  }
  process.setNextInteraction('confirmChangePassword');
})