Hi all,
I have recently started testing JsInterop for our GWT 2.8.1 application and 
I have encountered a situation I could not solve without using the old 
style JSNI approach.

Consider the following minimal JS library I would like to use in Java/GWT:

(function (window, document, undefined) {

function WatchDog(name) {
    this._name = name;
};

WatchDog.prototype.register = function(callback) {
    this._callback = callback;
};

WatchDog.prototype.broadcast = function(msg) {
    if (this._callback) {
        this._callback({
            'name' : this._name,
            'timestamp' : new Date().getTime(),
            'msg' : msg
        });
    }
};

window.Dummy = {
    watchDog : function(name) {
        return new WatchDog(name); 
    }
};

}(window, document));

Please note that the broadcast function passes a "basic" JS Object {} (i.e. 
without a specific prototype) to the callback function.

Here below my JsInterop mappings:

package xxx;

import jsinterop.annotations.JsPackage;
import jsinterop.annotations.JsType;

@JsType(isNative = true, namespace = JsPackage.GLOBAL)
public class Dummy {
    private Dummy() {}
    public static native WatchDog watchDog(String name);
}

package xxx;

import jsinterop.annotations.JsMethod;
import jsinterop.annotations.JsType;

@JsType(isNative = true)
public class WatchDog {
    private WatchDog() {}
    @JsMethod
    public native void register(Callback callback);
    @JsMethod
    public native void broadcast(String msg);
}

package xxx;

import jsinterop.annotations.JsFunction; 

@JsFunction 
public interface Callback { 
    void call(Object event); 
}


In my Java code, when the callback function is invoked, the event parameter 
is an instance of com.google.gwt.core.client.JavaScriptObject.

Without using JSNI I am not able to access/read the object's properties. 
Does JsInterop addresses this scenario without falling-back to old style 
JSNI?

Thanks a lot in andvance
Andrea

-- 
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.

Reply via email to