Использует ли GWT elemental наложения JsType или JSNI?
Я рассматриваю GWT elemental как более быстрый способ доступа к Java-домену в GWT. Однако, когда я смотрю на исходный код для зависимостей maven, я вижу только оверлеи js. Например:
public class JsNode extends JsElementalMixinBase implements Node {
protected JsNode() {}
public final native JsNamedNodeMap getAttributes() /*-{
return this.attributes;
}-*/;
public final native String getBaseURI() /*-{
return this.baseURI;
}-*/;
public final native JsNodeList getChildNodes() /*-{
return this.childNodes;
}-*/;
public final native JsNode getFirstChild() /*-{
return this.firstChild;
}-*/;
public final native JsNode getLastChild() /*-{
return this.lastChild;
}-*/;
....
Это не слишком далеко от того, что находится в gwt xml dom по умолчанию. Что мне здесь не хватает?
Спасибо!
1 ответ
Elemental v1, который больше не обновляется регулярно, использует JSO и JSNI, поскольку это был единственный вариант в то время.
Elemental v2 использует JsInterop, новый, перспективный способ описания объектов JS из кода Java. Источники (и отслеживание проблем) находятся по адресу https://github.com/google/elemental2/. Вы можете найти elemental2 в Maven, выполнив поиск groupId com.google.elemental2
: http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.google.elemental2%22
https://github.com/google/jsinterop-generator - это инструмент, используемый для автоматической генерации elemental2, и теоретически его можно использовать в любой другой библиотеке JS, чтобы позволить приложениям GWT использовать его. Лично мне не очень повезло, что он заработал, но основная цель инструмента по-прежнему заключается в создании источников elemental2, так что это будет улучшаться по мере того, как люди его используют.