Indeed, I didn't think to encapsulate the Java call in an inline JS
function.

Works great !
Thank you Alexandre.

On Sep 6, 5:22 pm, Alexandre Ardhuin <[email protected]>
wrote:
> Hi,
>
> You can define an interface like :
>
> package myPackage;
> interface GetUrlCallback{
>   String getUrl(Bounds bounds);
>
> }
>
> and change the method TMSOptions#setGetURL() to accept a GetUrlCallback
> parameter :
>
> public native void setGetURL(GetUrlCallback callback)/*-{
>   this.getURL = function(bounds){return [email protected]
> ::getUrl(LmyPackage/Bounds;)(bounds);};
>
> }-*/
>
> This should work.
>
> Alexandre.
>
> 2011/9/6 Fabe <[email protected]>
>
>
>
> > Hi,
>
> > I want to write JSNI method that can pass a Java function as
> > parameter, but that function will not be used by me, but by the
> > underlying API (OpenLayers in my case).
>
> > "Full" JavaScript example:
> > var tms = OpenLayers.Layer.TMS('My TMS Layer', '', {
> >  serviceVersion: '.',
> >  layername: 'dir1/dir2',
> >  type: 'png',
> >  getURL: overlay_getTileURL, // This function will be called each
> > time the user moves or zooms on the map
> >  isBaseLayer: true,
> >  visibility:false
> > });
> > map.addLayer(tms);
>
> > function overlay_getTileURL(bounds) {
> >  // my code
> >  // return URL (string)
> > }
>
> > I have a very complete wrapper for the TMS and Bounds objects, so I
> > can write in Java:
> > TMSOptions myTmsOptions = new TMSOptions();
> > TMS tms = new TMS("My TMS Layer", "", myTmsOptions);
> > map.addLayer(tms);
>
> > What I want to do now is something like this in Java:
> > myTmsOptions.setGetURL("overlayGetTileUrl);
>
> > // Can be in any class, in any package
> > public String overlayGetTileUrl(Bounds bounds) {
> >  String url = "";
> >  // build a string url
> >  return url;
> > }
>
> > I've looked in the documentation but only found how to call a Java
> > function for which I already know the name (and the package's name).
> > I've searched a little in that forum but didn't find something looking
> > like this.
>
> > Is that possible ? If yes, how ?
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Google Web Toolkit" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to
> > [email protected].
> > For more options, visit this group at
> >http://groups.google.com/group/google-web-toolkit?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to