Использует ли 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, так что это будет улучшаться по мере того, как люди его используют.

Другие вопросы по тегам