Thanks for the confirmation.
Here is how I did it. The following is simplified and minimized jsinterop
from D3 bindings.
The function at hand selection.selectAll takes a callback (MultiSelectorA)
that has set context (this) of the current matching element.
Here is how I did it for future reference...
@JsType(isNative = true, namespace = JsPackage.GLOBAL, name = "d3")
public class D3 {
@JsFunction
public interface MultiSelectorA<T> {
public Element[] find(Element context, T d, int i, int nodes);
}
/* we need this in order to pass the this argument into our java callback */
private static class Wrapper {
public static native JavaScriptObject wrap(
MultiSelectorA selector) /*-{
return function(a, b, c) { return
selector(this, a, b, c); } }-*/;
}
@JsType(isNative = true)
public static class Selection {
/** * @todo TODO: * *
Requirement @JsFunction can access the context (this) *
<ul> * <li>Enable (uncomment):</li> * <ul>
* <li>native selectAll(MultiSelectorA selector)</li>
* </ul> * <li>Delete:</li> *
<ul> * <li>private native Selection
_selectAll(JavaScriptObject callback)</li> * <li>private
static class Wrapper</li> * <li>public @JsOverlay
selectAll(MultiSelectorA selector)</li> * <li>Make
Selection interface from concrete class</li> * </ul>
* **/
// public native Selection selectAll(MultiSelectorA selector);
@JsMethod(name = "selectAll")
private native Selection _selectAll(JavaScriptObject callback);
@JsOverlay
public final Selection selectAll(MultiSelectorA selector) {
return _selectAll(Wrapper.wrap(selector));
}
}}
On Mon, Oct 10, 2016 at 5:23 AM, Stepan Koltsov <[email protected]>
wrote:
> Seems like it is not possible. I had to create jsni stub to grab this and
> pass it as parameter.
>
> --
> You received this message because you are subscribed to the Google Groups
> "GWT Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/google-web-toolkit.
> For more options, visit https://groups.google.com/d/optout.
>
--
Vassilis Virvilis
--
You received this message because you are subscribed to the Google Groups "GWT
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.