Один элемент модели представлен несколько раз в пользовательском интерфейсе ... как реализовать в GEF? - PullRequest
0 голосов
/ 23 ноября 2010

У меня есть модель, где один объект модели представлен несколько раз на отображаемом графике.Рассмотрим следующую модель:

  1. Существует много разделов
  2. Каждый раздел имеет x SourcePorts и y DestinationPorts
  3. Каждый SourcePort может быть подключен к DestinationPort
  4. Выбран один раздел

Я хочу визуализировать это так, чтобы выбранный раздел находился в центре:

  1. Слева находятся все разделы, видимые со всемиОкрашенные исходные порты
  2. В центре находится выделенный раздел со всеми окрашенными портами
  3. Справа видны все разделы со всеми окрашенными целевыми портами
  4. Все соединения между портаминарисовано
  5. Пользователь мог манипулировать портами и соединениями (добавлять / удалять порты и соединения)

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

Как реализовать это в GEF?Должен ли я создать один EditPart для каждого раздела и позволить ему возвращать IFigure для всех графических представлений?Или каждый экземпляр, отображаемый на экране, должен иметь свой собственный EditPart?Или полезно создать дополнительную модель, в которой один раздел представлен несколькими экземплярами модели?

1 Ответ

1 голос
/ 01 февраля 2011

Я предлагаю создать другую модель, которая содержит все данные визуализации: таким образом, вы можете связать элемент модели данных с несколькими экземплярами модели визуализации и решить вашу проблему простым и элегантным способом. Более того, вы не «загрязняете» модель данных всеми данными, необходимыми для визуализации, то есть координатами элементов на диаграмме.

Saluti

...