Я пишу редактор с несколькими вкладками для Eclipse. Этот плагин имеет несколько вкладок, и последняя из них — исходный текст — что-то похожее на редактор plugin.xml в PDE.
За этим стоит некоторая модель, которая используется для отображения некоторой информации на вкладках, основанных на данных в текстовом источнике. Пользователь может редактировать исходный код, и когда он/она переключается на другую вкладку, модель обновляется. Это прекрасно работает.
Проблема в том, что кто-то редактирует исходный файл во внешнем редакторе. Затем обновите проект, и модель также должна быть обновлена. Но как я могу этого добиться?
Я пытался использовать addResourceChangeListener
, он уведомляет меня о событиях предварительного обновления, но не содержит информации о том, будет ли обновляться мой файл (например, только ресурс проекта, если кто-то пытался обновить весь проект).
Другая идея, которая у меня была, заключалась в том, чтобы добавить прослушиватель документов, когда приходит событие предварительного обновления, и удалить его в обработчике после изменения. Однако здесь проблема в том, что если файл не изменился и не был обновлен, событие после изменения не отправляется, поэтому я остаюсь с ненужным прослушивателем документов, который будет проинформирован обо всех изменениях, сделанных пользователем на последней (исходной) вкладке. .
Я буду признателен за любую помощь.