Como as páginas funcionam
Os dois modelos de página, os painéis embutidos que salvam enquanto você edita, a barra de comandos e suas duas formas de recusa, os menus de clique direito, a trava de engenharia, o runtime parado, as confirmações, e onde todo resultado aparece.
As páginas do Ganter Lab compartilham um conjunto pequeno de convenções, para que, depois de configurar uma coisa, você já saiba configurar a seguinte: dois modelos de página, painéis que salvam enquanto você edita, um jeito de colocar um comando e dois de recusá-lo, um menu de clique direito que repete a barra, e um lugar só onde os resultados aparecem. Esta página diz tudo isso uma vez; as páginas de cada área só dizem o que é particular delas.
Dois modelos de página
Páginas de mestre e detalhe
Connector, Logic, Process e Usuários são páginas de mestre e detalhe, e a View é montada à mão do mesmo jeito. Sob o cabeçalho da página (título, descrição de uma linha, um filete) a tela se divide numa coluna à esquerda e num cartão de detalhe à direita.
| Parte | O que é | O que você pode fazer |
|---|---|---|
| O cabeçalho da coluna | O nome da coluna (Comunicação, Espaço de endereços, Ambiente de trabalho, Acesso à estação, Visualização) e um chevron | O chevron dobra a coluna até um trilho estreito que carrega o nome de lado; pressionar o trilho traz a coluna de volta. |
| Busca ou filtro | O da própria página, acima da árvore: o Connector tem uma caixa de busca ("Busque drivers, linhas, dispositivos, tags") e os chips de estado Todos, OK, Problemas, Desligados; a Logic tem "Filtrar…" | As linhas que não casam ficam escondidas; as legendas que nomeiam um grupo de raízes ("Definido aqui", "De outras páginas") acompanham as linhas delas. |
| A árvore | Os nós da página, com um chevron de expansão em toda linha que tem filhos e um destaque na linha selecionada | Um clique seleciona e abre o painel do nó à direita. Para cima e Para baixo movem a seleção, Direita expande, Esquerda recolhe, Enter seleciona. Um clique duplo ativa nos seletores que usam um. Uma linha em renomeação vira o próprio campo de nome: Enter ou sair do campo confirma, Esc cancela. |
| O rodapé | Os comandos da coluna, no mesmo canto em toda página: um + (dica "Novo…"), um agrupamento de reordenação opcional, e Expandir tudo / Recolher tudo | O + abre um menu ancorado no botão que nomeia o que pode ser criado e onde a coisa cai. Expandir tudo e Recolher tudo ficam esmaecidos enquanto nenhuma linha abre. O rodapé inteiro é retirado quando a identidade não pode usar nenhum comando dele. |
| O divisor | Um filete entre a coluna e o cartão | Arraste-o entre 260 e 600 pixels, ou chegue nele com o Tab e mova-o pelo teclado: uma seta o desloca 16 pixels, Page Up e Page Down o deslocam 96, e Home e End o levam às duas pontas. A largura fica onde você deixou enquanto a página estiver aberta. |
| O cartão de detalhe | Um topo fixo com o cabeçalho do nó selecionado (um ícone monocromático, o título, pílulas opcionais, um subtítulo de uma linha, às vezes uma ação alinhada à direita) e sob ele a barra de comandos; o corpo rola por baixo | Nada selecionado deixa o topo sem preencher e um texto de espera no corpo. Algumas telas entregam o corpo a superfícies próprias (as telas de definição de um modelo do Process), com colunas próprias e divisor próprio, arrastável. |
Páginas de rolagem
Configurações, Conta, Agente e Validação são uma coluna só, com rolagem. Sob o cabeçalho, um índice à esquerda com o título "Nesta página" lista toda seção sob o rótulo do grupo dela (GERAL, SERVIDOR OPC UA, DADOS e assim por diante); um clique rola a seção até a vista, a entrada ativa acompanha a sua rolagem, e um link pode abrir uma seção direto (/settings#sec-updates). Cada seção carrega o título dela e, na primeira de um grupo, o rótulo do grupo. A Validação ocupa a largura inteira, porque as linhas dela são frases. Eventos é a única página com abas: Alarmes, Ocorrências, Intertravamentos e Console, cada uma com endereço próprio (/events?view=…).
Painéis embutidos com salvamento automático
Não existe botão OK, Salvar ou Aplicar num painel: a coisa selecionada é editada no lugar e cada mudança é salva conforme você a faz. Um valor que o painel não pode aceitar é recusado onde você digitou, numa nota sob o campo, e nunca é salvo.
| Controle | Salva | Notas |
|---|---|---|
| Chave | Ao virar | Uma chave esmaecida mantém o estado dela e diz na dica por que não pode mudar. |
| Caixa de seleção | Ao marcar | |
| Campo de texto | A cada tecla | Os campos de nome, de endereço e de conexão são a exceção: eles confirmam quando você sai do campo ou pressiona Enter, e o Enter confirma uma vez só. Um campo de nome mostra, sob si mesmo, o que a confirmação leva junto (as referências que ela reescreve) antes de você confirmar. |
| Campo numérico | Quando você sai do campo | Um valor que não é número, ou que está fora da faixa do campo, é recusado com uma nota ("'abc' não é um número.", "Digite um número entre 1 e 65535.") e a caixa volta ao valor em vigor. Um valor escrito de outro jeito ("007", "7,0") é aceito e reescrito na forma canônica. |
| Caixa de combinação | Na seleção | Uma caixa de combinação editável confirma o que ela guarda, tenha a lista oferecido aquilo ou não (um endereço de Logic, por exemplo). |
| Célula de grade | Quando a célula é editada | Marcar linhas antes aplica a edição a toda linha marcada (a grade de tags). |
| Editor de código | Conforme a confirmação do próprio editor | Expressões, scripts e condições; veja Expressões. |
Duas outras coisas que um campo carrega:
- Sob um campo, uma legenda que nunca muda explica o que o campo decide, e uma linha de efeito separada (com recuo próprio e marca própria) diz o que o valor atual produz. Uma legenda em que você pode confiar como explicação é uma que não se reescreve quando você escolhe.
- Onde uma opção muda o que o aplicativo desenha (um preset de medidor, o formato de um gráfico, a janela de um critério, uma ferramenta de gráfico) o seletor mostra uma marca do resultado ao lado do nome da opção, derivada do mesmo código que desenha a coisa de verdade. Onde o desenho não distingue duas opções naquele tamanho, nenhuma das duas ganha marca.
O resultado de um salvamento aparece no feed de ações da barra de status, não no painel (veja Onde os resultados aparecem).
A barra de comandos
Um verbo pertence àquilo sobre o que ele age, e onde ele mora se lê do alvo dele, nunca de quão perigoso ele é. Três alvos, três casas:
| Alvo | Casa | Ordem |
|---|---|---|
| O nó que a coluna selecionou | A barra sob o topo fixo do cartão | O agrupamento inicial (à esquerda) cria, copia, edita, deriva e inicia. O agrupamento final (à direita) encerra: Excluir, Remover, na tinta de perigo, para que o grupo de perigo se leia como um aviso. Uma barra sem nada a encerrar não deixa o canto vazio: ela recebe os verbos cujo alvo é a janela, Expandir e Tela cheia, para que quanto espaço a superfície aberta ganha seja procurado no mesmo canto em todo palco. |
| A tabela inteira que um cartão guarda | O topo do próprio cartão, acima das linhas que ele toca | Primeiro o que cresce a lista, depois o que a relê, e por último, na tinta de perigo, o que encerra a linha que a página selecionou. O verbo que encerra nomeia aquilo sobre o que age e diz por que é recusado, em vez de sumir quando nada está escolhido. |
| Uma linha e nada mais | O agrupamento de ações no fim da linha: botões de glifo, tinta de perigo para o que encerra | Pressionar um deles nunca muda a seleção. Um cartão encerra as próprias linhas ou pelo topo ou pelas linhas, nunca dos dois jeitos para a mesma tabela. |
Uma área emoldurada de uma tela dividida é um cartão. O cabeçalho de painel compartilhado mantém o ícone, o título, o subtítulo e as pílulas dele e nunca carrega um verbo; uma ação dentro de um aviso embutido é a resposta do aviso, não um verbo de cabeçalho.
Um controle numa barra não é um verbo: uma chave de estado para uma decisão cujo alvo é a própria superfície aberta e que não tem cartão nem campo comum a toda superfície que a responde ("Mostrar em View" num dashboard de um modelo do Process). Ela é a chave rotulada do próprio aplicativo, para que o estado se leia do controle e não de um verbo que parece pressionado; a dica dela diz o que o estado em vigor significa. Um verbo que é um modo (Editar, Concluir edição; uma ferramenta de gráfico) aparece pressionado enquanto está ligado.
Duas formas de recusa
Toda barra, todo menu e toda chave distinguem duas recusas do mesmo jeito:
| Recusa | Como aparece | Por quê |
|---|---|---|
| O papel autenticado nunca terá permissão de executar | O comando não é desenhado de jeito nenhum | Nenhum toque conquista a permissão, e uma fileira de verbos esmaecidos que o papel nunca alcança só ocupa espaço e sugere que o produto está quebrado. Um papel que só vê lê uma barra do tamanho do que ele pode fazer. |
| O comando é recusado agora | O comando continua desenhado e esmaecido; a dica diz o que falta: nada selecionado, a estação travada enquanto uma unidade roda, uma execução em curso, "Runtime parado" | Isso muda, e você tem de saber que o comando existe e o que o traz de volta. |
O verbo que encerra alguma coisa não é exceção quando a razão é uma situação: ele fica no lugar, esmaecido, ainda nomeando o que encerra. Os menus dizem a mesma razão ao passar o cursor, a chave de estado põe a razão antes da frase que diz o que o estado significa, e o + do rodapé e os Expandir tudo / Recolher tudo dele ficam esmaecidos do mesmo jeito.
O clique direito espelha a barra
Um clique direito numa linha da árvore primeiro seleciona aquela linha e então abre, no cursor, um menu com os mesmos verbos, na mesma tinta de perigo e sob as mesmas recusas da barra, de modo que o menu age sempre sobre a linha que está sob o cursor. Uma linha que abre uma lista de destinos (Mover para uma pasta, os drivers sob os quais um dispositivo pode ser adicionado) a abre ao lado de si mesma, um nível de profundidade, ao passar o cursor ou ao pressionar; pressionar uma folha executa e fecha o menu. Um clique fora, um redimensionamento ou a linha saindo da vista por rolagem fecham o menu sem executar nada. O + da coluna abre o mesmo tipo de menu contra o botão, tanto para um toque feito pelo teclado quanto pelo mouse.
A trava de engenharia
A configuração e as execuções ao vivo dividem a estação. Enquanto pelo menos uma unidade está executando um procedimento, a configuração fica somente leitura: a página mostra o aviso Engenharia travada, "Uma operação de unidade está ativa. A configuração fica somente leitura até todas as unidades terminarem; os comandos de execução e as demais ações do operador continuam disponíveis.", e o cartão de detalhe, com o cabeçalho fixo dele, fica inerte. Cada verbo da barra continua dizendo a própria disponibilidade, porque vários seguem abertos sob a trava: o que executa, pausa, retoma, para ou aborta uma execução, o que reconhece um alarme e o que escreve um valor continuam funcionando. A edição volta sozinha quando a última unidade termina. Veja Execuções.
O runtime parado
Uma estação sem licença cuja janela de modo gratuito acabou tem o runtime parado: toda página menos a de conta dá lugar a um aviso de pausa, e todo comando que mudaria a estação, inclusive os que uma execução deixaria abertos, é recusado com "Runtime parado". A faixa, a página pausada e o reinício estão descritos em A janela; as janelas de tempo em si, em Modo gratuito e a licença.
Confirmações e diálogos
Editar nunca abre uma janela; um diálogo é para o que é passageiro ou destrutivo.
| Diálogo | Quando | Como ele se comporta |
|---|---|---|
| Confirmação | Antes de uma exclusão ou de uma restauração: "Excluir 'nome'? O que desaparece. Isso não pode ser desfeito." | Dois botões, com o foco no que recusa: Enter, Esc e um clique fora respondem Não; confirmar exige um Tab ou um clique deliberado. Nada destrutivo segue adiante sem um Sim explícito. |
| Mensagem | A chave de recuperação de uso único do administrador principal, quando esse PIN é definido ou trocado. É o único uso que a estação dá a esta janela: a chave aparece uma vez e em nenhum outro lugar, então precisa ficar na tela até ser anotada. | Um OK só. A janela toma o foco ao abrir, então o que ela diz é anunciado; Esc ou um clique fora dispensa a janela, e o Tab fica dentro dela. Nunca um resultado: um comando que rodou diz isso no feed de ações. |
| Editor passageiro | O diálogo de entrada, o diálogo de consentimento de relatório de falha, um cliente sendo adicionado ao servidor OPC UA | Esc ou um clique fora cancela; Enter confirma quando o diálogo tem ação padrão; o Tab fica dentro do diálogo. |
Os avisos embutidos, na página e não sobre ela, são banners: um título, um corpo e às vezes uma ação, com um fio fino no tom da gravidade deles (informação, atenção, crítico, sucesso). Um aviso gasta o campo de cor inteiro só para uma condição cuja consequência já está em curso, como uma parada externa ao vivo; todo o resto é uma observação de estado.
Onde os resultados aparecem
O que você acabou de fazer relata o resultado no feed de ações da barra de status e em nenhum outro lugar: um salvamento, uma exclusão, uma renomeação, uma importação, uma impressão, uma nova varredura, uma entrada. Os dois desfechos são relatados, e uma falha fica até você dispensá-la. A única exceção é um comando disparado de dentro de um componente de dashboard, que responde sob aquele componente. As notificações (as tarjas que surgem e somem) são para o que interrompe, nunca para a resposta a um toque. Veja O feed de ações.
Tema e cor
A cor é reservada para significado. Um ponto de estado é cinza quando neutro, verde quando saudável, âmbar quando degradado ou iniciando, vermelho quando em falha ou offline, e da cor de destaque quando é digno de nota sem estar degradado (um alarme de prioridade média, por exemplo). A tinta de perigo marca o que encerra alguma coisa; uma nota de atenção marca o que é recusado ou está retido. A aparência clara e a escura são escolhidas pelas teclas de tema na barra de título ou em Configurações, Aparência, e ela é da estação: toda tela, inclusive as remotas, desenha a preferência da estação.
O que nenhuma página faz
- Nenhuma página abre um editor modal para um dispositivo, uma tag, uma variável, um modelo, um usuário ou um papel; cada um é editado no painel dele.
- Nenhuma página mostra um "Salvo" piscando, uma linha de estado ou uma tarja própria.
- Nenhuma página esmaece um verbo que o papel nunca pode executar, e nenhuma página esconde um verbo que está apenas recusado agora.
- Nenhuma página congela controle por controle enquanto o runtime está parado; o shell substitui a página inteira.
- Nenhum verbo fica num cabeçalho de painel, e nenhuma página reordena os agrupamentos da barra dela.