Mais

CMV Widget Toggle

CMV Widget Toggle


No projeto Configurable Map Viewer, eu gostaria de ser capaz de definir a exibição inicial de um widget para oculto e mostrá-lo com um toque de um botão, por exemplo, clicando em um botão em uma barra de ferramentas. Por exemplo, o widget Legend, não quero ver o widget Legend de forma alguma no painel esquerdo, mas gostaria de adicionar um botão na parte superior para ligá-lo / desligá-lo.

Eu adicionei essa linha de código ao controller.js, mas sem sorte.

if (options.hidden) {domStyle.set (this [widgetConfig.id] .domNode, "display", "none"); }

Acredito que seu código está ocultando o domNode errado. Ao criar um widget titlePane, o widget tem um parentWidget que é o que você deseja ocultar.

Não recomendo modificar o controlador. Isso torna as atualizações para versões futuras do CMV muito mais fáceis. Você pode apenas fazer o que deseja com CSS personalizado. Isso ocultaria o widget legend titlePane:

#legend_parent {display: none; }

Então seu botão pode encontrar o domNode correto e mostrá-lo (ou ocultá-lo):

var el = dom.byId ('legend_parent'); domStyle.set (el, 'exibir', 'bloquear');

Existem muitas maneiras de esticar um gato. Aqui estão algumas abordagens alternativas a serem consideradas:

  1. Supondo que seu botão seja um widget domNode. Adicione código a esse widget para ocultar o titlePane semelhante ao código JS acima.

  2. Não crie o widget de legenda inicialmente. Seu botão pode criar o widget de legenda e colocá-lo corretamente na primeira vez que for clicado. Você pode fazer isso com dojo'stopic.publish


Assista o vídeo: Disconnected Configurable Map Viewer