в чем польза Eclipse Modeling Frameowrk и Eclipse Graphical Editing Framework?

Может быть, этот вопрос прост, но он немного запутал меня с их целью.

Просто изучите Eclipse Modeling Framework и Eclipse Graphical Editing Framework. По сути, Graphical Editing Framework (GEF) предоставляет основу для создания визуальных редакторов. И Eclipse Modeling Framework (EMF) — это среда Java и средство генерации кода для создания инструментов и других приложений на основе структурированной модели.

Здесь я немного смущен тем, каково точное использование и цель обеих фреймворков. Нужно ли мне изучать оба фреймворка при разработке любого пользовательского интерфейса?


person Bhavesh Shah    schedule 16.12.2013    source источник
comment
redbooks.ibm.com/abstracts/sg246302.html   -  person Raúl    schedule 16.12.2013
comment
@Raúl: Спасибо, что поделились ссылкой   -  person Bhavesh Shah    schedule 16.12.2013
comment
Я бы сказал, что GEF основывается на EMF. Таким образом, GEF помогает вам визуализировать то, что вы создали с помощью EMF.   -  person SpaceTrucker    schedule 20.12.2013
comment
@SpaceTrucker: Спасибо за ответ. Мой вопрос: нужно ли мне использовать EMF для разработки модели или ее можно разработать с помощью самого GEF?   -  person Bhavesh Shah    schedule 23.12.2013
comment
@bks: Нет, вы не можете использовать GEF для разработки модели, GEF работает с существующей моделью. Вы можете разработать эту модель с помощью EMF. См. мой ответ.   -  person s.d    schedule 16.01.2014


Ответы (1)


С практической точки зрения:

  • Вводный текст на EMF веб-сайте, который вы цитируете, ИМХО немного вводит в заблуждение. По сути, EMF позволяет создавать (данные) модели, а не инструменты/приложения (напрямую). Например, я разрабатываю приложение Eclipse RCP, включающее редактор GEF, основанный на модели данных, созданной (сгенерированной, а затем настроенной) с помощью EMF.

  • GEF позволяет создавать графические редакторы. Вот и все. Редакторы GEF могут работать с различными типами моделей, в том числе с моделями EMF. Взгляните на книгу GEF, где они используют простую модель Java для своего примера приложения. В GEF вы должны вручную кодировать редактор.

  • Чтобы завершить акроним бинго, есть GMF, который позволяет вам создавать графические редакторы из моделей EMF (в отличие от GEF, где вам нужно делать это пешком). GMF можно было бы назвать недостающим звеном между EMF (моделью) и GEF (графическим редактором), но начать работу с ним непросто. Альтернативой GMF является Graphiti, который предоставляет Java API для простой разработки графических редакторов на основе моделей EMF.

И в ответ на ваш комментарий: вы не можете разработать модель с помощью GEF, для этого вам придется использовать EMF. GEF строится на основе моделей (не только моделей EMF). Он предоставляет V (представление)* и C (контроллер) в MVC, EMF можно использовать для предоставления M (модели).

*За рамками: GEF также использует Draw2D для рисунков.

person s.d    schedule 16.01.2014