Wicket – Capturar resolução de tela dinamicamente.

Apache Wicket é uma framework para o desenvolvimento de aplicações Web para Java baseado em componentes. O Wicket abstrai o meio-de-campo entre o HTML e o Java. Bom, chega de bla bla bla…, vamos ao que interessa, que é o exemplo de como capturar a resolução de tela do cliente dinamicamente.
O objeto que representa as informações do cliente web é WebClientInfo (pacote org.apache.wicket.protocol.http.request.WebClientInfo) que servirá de base para armazenar a request com método de acesso getRequestCycle().getClientInfo(). Com objeto populado, basta acessar as properties e ler a largura com o metodo p.getScreenWidth() e altura com o metodo p.getScreenHeight().  Segue trecho do código:

WebClientInfo info = (WebClientInfo)getRequestCycle().getClientInfo();
ClientProperties p = info.getProperties();
int width = p.getScreenWidth();
int height = p.getScreenHeight();

No meu caso o objetivo era redimensionar uma modal no Wickit, fiz assim:

add(minhaModal = new ModalWindow("minhaModal"));
minhaModal.setPageMapName("minhaModal");
--definição da unidade utilizada,
neste caso em pixels
minhaModal.setHeightUnit("px");
minhaModal.setWidthUnit("px");

--definicão da altura
minhaModal.setInitialHeight(height);

--definição da largura
minhaModal.setInitialWidth(width);

minhaModal.setPageCreator(new ModalWindow.PageCreator() {

@Override
public Page createPage() {
return new MinhaClasseModal(Documento.this, minhaModal);
}
});

Importante: O Wicket precisa de liberação para obter informações do cliente. Para isto, adicione o método abaixo no seu init()

getRequestCycleSettings().setGatherExtendedBrowserInfo(true);

Referências:
Apache Wicket. http://pt.wikipedia.org/wiki/Apache_Wicket. acessado em 15/04/2011.
Exemplo de uso da Modal no Wicket. http://wicketstuff.org/wicket13/ajax/modal-window.1. acessado em 15/04/2011.

Anúncios

1 comentário

Arquivado em Frameworks, wicket

Uma resposta para “Wicket – Capturar resolução de tela dinamicamente.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s