Eclipse RCP обновляет представление после изменений в редакторе - PullRequest
2 голосов
/ 30 сентября 2010

Я новичок в Eclipse RCP и имею следующий сценарий:

  • Один плагин, который является приложением
  • Другая ведьма - это вид, и она показывает некоторые данные
  • И третий, который является редактор.

в представлении я могу щелкнуть правой кнопкой мыши на записи и выбрать редактировать, что открывает Редактор и позволяет мне изменять данные.

Нет, я хотел бы обновить представление при сохранении редактора. Я думаю, что это классический сценарий реализации шаблона доски. К сожалению, я не очень знаком с ним, может быть, кто-то может показать простой пример, как реализовать его в Eclipse RCP.

Заранее спасибо Johannes

Ответы [ 2 ]

3 голосов
/ 09 ноября 2010

Ваше представление должно реализовать IPartListener2 (http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/IPartListener2.html)

, вы можете переопределить метод partInputChanged (IWorkbenchPartReference partRef), чтобы обновить представление thw двумя способами: 1) Если плагин с представлением имеет зависимость от плагина с редактором

 If (partRef instanceOf YourEditorClass){
YourData yourData = editor.getInput().getxxx();
} 

2) Если плагин с представлением не зависит от плагина с редактором, вам нужно использовать адаптер.Вы переопределяете метод getAdapter в редакторе, чтобы вернуть необходимые вам данные, а представление получает данные из адаптера

 If (partRef instanceOf EditorPart){
YourData yourData = Platform.getAdapterManager().getAdapter(this, YourData.class);
} 

Два кода - только пример, чтобы показать идею!

Я надеюсь, что помог вам

2 голосов
/ 30 сентября 2010

Представление должно прислушиваться к редактору или, что еще лучше, к отредактированной модели. Если он слушает редактора, поищите какие-нибудь «сохраненные» события. Лично я хотел бы сделать саму модель наблюдаемой и уведомить слушателей (например, ваше мнение) о реальных изменениях.

Затем представлению нужна некоторая логика для извлечения информации из модели. Таким образом, вместо доски - шаблон наблюдателя должен быть правильным выбором для вашего дизайна.


Это стоит попробовать: добавьте IPropertyListener в экземпляр IEditorPart вашего редактора и дождитесь изменения свойств. Свойство IEditorPart.PROP_DIRTY должно измениться с «загрязнен» на «не загрязнен» после сохранения. Фрагменты кода / примеры кода для eclipse rcp сложны в разработке и общении. Используйте модные слова из моего ответа для некоторых поисков в справке по Eclipse, API и в Google. И: удачи;) - кстати, подумайте о покупке хороших книг по разработке плагинов / rcp eclipse, они стоят каждого потраченного € / $.

...