JSNI - Ecrire un callback ?
Bonjour,
Je suis actuellement bloqué pour porter en JSNI un code JS simple mais utilisant un callback. :cry:
Dans l'exemple ci-dessous, c'est la ligne :
service.search(request, callback);
Que je n'arrive pas à porter en JSNI : callback représente une ref vers la fonction callback() un peu plus bas... mais pour l'instant je fais choux blanc.
Quelqu'un a t'il des exemples de code JSNI faisant appel à une méthode où se trouve en paramètre le nom de la méthode à appeller pour le callback ?
Extrait du JS ( qui fonctionne dans la page HTML) :
function initialize() {
var pyrmont = new google.maps.LatLng(-33.8665433, 151.1956316);
map = new google.maps.Map(document.getElementById('map'), {
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: pyrmont,
zoom: 15
});
var request = {
location: pyrmont,
radius: 500,
types: ['restaurant']
};
infowindow = new google.maps.InfoWindow();
var service = new google.maps.places.PlacesService(map);
service.search(request, callback);
}
function callback(results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
createMarker(results[i]);
}
}
}
Concrètement dans le code java impossible d'arriver à l'intérieur de la méthode callback :
public native void initialize() /*-{
var pyrmont = new $wnd.google.maps.LatLng(-33.8665433, 151.1956316);
var request = {
location: pyrmont,
radius: 500,
types: ['restaurant']
};
// Read instance field on this
var valToto = @com.yadumonde.web.desktop.client.YadumondeMap::toto;
var theTotoMap = this.@com.yadumonde.web.desktop.client.YadumondeMap::theMap;
var service = new $wnd.google.maps.places.PlacesService(theTotoMap);
alert("service = "+service);
var sss="yooo";
var js_callback=function callback(results, status) {
$wnd.alert("jscallback called");
if (status == $wnd.google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
$wnd.alert(results[i]);
}
}
};
service.search(request, $wnd.js_callback);
}-*/;
D'avance merci :ccool: