Pular para o conteúdo principal

Views, abas e herança

Uma view é uma tela de um menu. Todas as views compartilham a mesma estrutura (a faixa de abas, o rodapé), e apenas o conteúdo muda.

Declare views​

Em views, adicione uma entrada por tela:

CampoFunção
idUsado por gui:view e pelas abas.
nameRótulo usado na trilha de navegação (breadcrumb). Se vazio, usa o id.
titleTítulo desta view. Vazio mantém o título do menu. Aceita {breadcrumb}, {view} e {root}.
parentIdView pai, para o breadcrumb e para manter a aba do pai acesa.
framesMapeamento explícito de um id de frame para um id de layout.
criteria, viewPermissionA view fica inacessível e sua aba oculta quando não são aprovados.
activeStyleComo a aba aparece enquanto ativa: glint, material, customModelData, nameFormat, loreSuffix.

No Open GUI, defaultViewId é a view aberta primeiro (a primeira declarada quando vazio). breadcrumbSeparator é o texto MiniMessage entre os segmentos do breadcrumb, e pushHistoryOnViewSwitch faz o gui:back voltar à view anterior após uma troca de aba.

Preencha os frames​

Em um layout frame, defina o layoutId de um frame como @view. Para a view ativa, a extensão procura o layout nesta ordem:

  1. o mapeamento frames da view para esse id de frame;
  2. um layout chamado <view id>_<frame id>, por exemplo island_content para o frame content e a view island;
  3. as mesmas duas buscas ao longo da cadeia de parentId.

Um frame que não resolve para nada permanece vazio. Apenas o layout raiz do menu (mainLayoutId) resolve os frames @view.

Abas​

Dê a um item de aba buttonPrefix view: e buttonType igual ao id da view. Clicar nele muda para a view, e ele assume o activeStyle da view enquanto essa view ou uma de suas filhas estiver ativa. As abas de views inacessíveis ficam ocultas.

A primeira view que o jogador pode acessar é usada quando a solicitada está oculta. Uma view solicitada que não existe é registrada como Unknown view.

Herde um menu​

baseMenuId é o id de entry de um Open GUI modelo. O filho herda seu layoutPool, views, mainLayoutId, defaultViewId e size, e a cadeia é seguida até a raiz, de modo que um menu pode herdar um modelo de domínio que por sua vez herda uma estrutura global. Um layout do filho com o mesmo id substitui o herdado, e o mesmo vale para as views. O storagePool é herdado somente do pai direto. Um mainLayoutId em branco no filho usa o do pai.

Verifique se o pai existe, se todo layoutId existe no pool combinado e se dois menus não herdam um do outro.

Na prática​

Crie um menu modelo com um frame de abas fixo e um frame de conteúdo @view, depois crie um filho por domínio que apenas sobrescreve os layouts de conteúdo. Os layouts de conteúdo podem ser simple, scrollable ou paginated sem mexer na faixa de abas.