Как пересечь обновление представления между nattable и Jface view - PullRequest
0 голосов
/ 12 января 2019

Eclipse RCP View Communication, где одно представление содержит nattable, а другое содержит элементы управления jface, такие как кнопка, раскрывающийся список.

В настоящее время, например, есть 3 вида / редактора, как показано ниже example image

View1 - содержит информацию о сотруднике, которая является Nattable и эта ячейка содержит данные типа String, Long, логическое значение, значение даты. каждая строка представляет одни данные, а другие представления представляют собой соответствующие данные выбранная строка

View2 - показывает адрес, который соответствует выбранной строке в представлении 1, Пользователь может изменять данные view2.

View3 - показывает данные об отделе сотрудника, которые также могут быть изменены

Таким образом, все 3 представления представляют данные одной модели: Сотрудник

   Employee 
     |_Name 
     |_EmpId
     |_Married
     |_DOJ
     |_Address
         |_Type
         |_City Name
         |_State
         |_PinCode
     |_Department Details
         |_Department
         |_Project
         |_Manager

Проблема:

Я хочу знать, каков наилучший способ связи между представлениями1 и другими представлениями, чтобы

  1. При выборе строки в представлении 1, тогда два других представления должны быть обновлены соответственно;

  2. Если какие-либо данные изменяются в view2 / view3, то представление 1 должно получить уведомление об изменении данных в другом представлении

  3. когда возникает условие 2, я хочу показать грязную строку в view1.

1 Ответ

0 голосов
/ 14 января 2019

Типичный подход для взаимодействия между представлениями в приложении E4, относящемся к описанному вами сценарию, заключается в использовании ESelectionService для запуска обработки выбора для открытия другого представления и для обратной связи через систему событий Eclipse 4.

Для первого сценария, чтобы открыть представление на основе выбора в NatTable, вы можете использовать E4SelectionListener в NatTable Eclipse 4 Extension Feature . Это ILayerListener, который перенаправляет выбор в ESelectionService. Пример можно найти в NatTable examples .

Чтобы сообщить представлению 1 об изменениях в другом представлении, я бы предложил использовать IEventBroker для отправки события из view2 / view3 и реагирования на событие в представлении1. Таким образом, мнения будут максимально разделены. Система событий Eclipse 4 является хорошей отправной точкой для изучения системы событий.

...