RSS
 

GWT-Comment référencer le body dans le code JAVA

10 juin

J’ai été confronté à ce probleme. Comment récupérer un Element faisant référence au body. L’API de GWT ne fournit pas « directement » ce service et il faut donc utiliser des méthodes détournées.

On peut par exemple rajouter un id au body dans la description HTML de la page

<html> <head> <meta name='gwt:module' content='fr.improve.testGWT.gwt.Application'> </head> <body id='bodyId'> <script language="javascript" src="gwt.js"></script> </body> </html>

Dans votre application java il suffit ensuite d’utiliser le code ci-dessous

import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;

Element body= DOM.getElementById(« bodyId »);

Une autre solution consiste à utiliser le JSNI

Il suffit d’utiliser la méthode suivante:

public static native Element getBody() /*-{ return $doc.body; }-*/;

L’élément est ensuite récupére par l’appel suivant :

Element body = getBody();

L’intérêt est qu’il n’y a plus besoin de modifier les pages HTML de l’application

Un peu étrange que des éléments de base comme le body ne soit pas directement accessible….

 
1 Comment

Posted by Cyril Balit in Javascript, Non classé, RIA-RDA-RWA

 
  • http://rialto.application-servers.com/wiki/ Cyril Balit

    Autant pour moi la méthode existe:

    import com.google.gwt.user.client.ui.RootPanel;
    Element body = RootPanel.getBodyElement();