Java + DOM: регистрация и использование слушателей изменений: учебные пособия? - PullRequest
4 голосов
/ 21 марта 2010

Пожалуйста, укажите мне некоторые учебные пособия или другие поясняющие примеры о , как регистрировать и использовать слушатели изменений с реализацией DOM на Java.

В Интернете я нахожу только примеры Javascript или Flex.1005 *

Моя цель - узнать, когда был изменен Node.

Я опробовал несколько подходов, но ничего не работает.Может ли быть так, что DOM Java не поддерживает эту функцию?

1 Ответ

7 голосов
/ 21 марта 2010

Понял!

Кастинг был трюк!

Я искал реализации org.w3.dom.events.EventTarget, но, похоже, это реализуют только внутренние классы. Таким образом, это должно быть просто брошено вручную (предполагая, что Node instanceof EventTarget).

org.w3c.dom.events.EventListener myModificationListener =
  new org.w3c.dom.events.EventListener() {

    @Override
    public void handleEvent(Event e) {
      if (e instanceof MutationEvent) {
        MutationEvent me = (MutationEvent) e;
        System.out.println("type: " + me.getType()
          + ", dest: " + me.getTarget());
      }
    }

  };

Node someDomNode = ...

// here the unusual casting magic happens
((EventTarget) node).addEventListener(
  "DOMSubtreeModified", // constant
  myModificationListener, true);

// modify the node here by appending a child
// -> listener gets invoked
...