Створення Eclipse-плагіна для навігації по вмісту EMF-моделі (исходники), Різне, Програмування, статті

Зазвичай ресурси проекту EMF (наприклад, моделі EMF Ecore) відображаються як поодинокі об’єкти в програмі перегляду (див. ліву частину малюнка 1). Обмеженням даного підходу є те, що ми не можемо дослідити модель, не відкриваючи асоційований редактор. Це може бути особливо неприємно, коли розробка залежить від доменної моделі. Одним із способів обходу цього обмеження є створення спеціалізованого виду, який забезпечуватиме доступ до вмісту потрібної доменної моделі. Ми могли б створити цей плагін з нуля або використовувати існуючі інтегровані середовища для полегшення розробки. У даній статті докладно розглядається процес створення такого плагіна. По завершенні роботи до статті ви отримаєте плагін перегляду, який можна використовувати для навігації по моделі Ecore (див. праву частину малюнка 1).


Рисунок 1. Типи систем навігації
Рисунок 1. Типи систем навігації


Попередні вимоги


Нам відомо, що ми хочемо отримати від плагіна ModelNavigator, але до початку його розробки ми повинні чітко розуміти основи Eclipse-компонентів, які будуть використовуватися. Ми хочемо створити деревоподібне уявлення, що відображає ієрархію моделі. Детальна інформація про деревоподібному поданні виходить за рамки цієї статті. Потрібно відзначити один важливий аспект – деревоподібні подання звертаються до об’єктам моделі через адаптер, званий провайдером вмісту, і визначають, як об’єкт повинен візуалізуватися через провайдер міток. У наступних розділах детально описується, як можна звернутися до даних провайдерів вмісту та міток, а потім демонструється навігатор по моделі.


Інтегрована середу EMF.Edit


Інтегрована середу EMF.Edit зазвичай використовується для створення редакторів EMF-моделей. Щоб створити ці редактори, інтегрована середа надає можливості генерування вихідного коду команд і інших класів для забезпечення програмного доступу до моделей. Іншим набором функціональних можливостей, що надаються даної інтегрованої середовищем (і найбільш важливими для нас), є зручні класи, дозволяють відображати EMF-моделі в програмах перегляду. Інтегрована середу надає цю можливість доступу через вбудовані провайдери вмісту та міток, які використовують адаптер EMF-об’єктів специфічного типу для відображення моделі. Це класи AdapterFactoryContentProvider і AdapterFactoryLabelProvider, Які надають об’єкти, мітки і зображення для EMF-об’єктів шляхом делегування роботи адаптерам провайдерів елементів, які знають, як виконувати навігацію по EMF-моделі. Ця схема роботи зображена на малюнку 2. Вона особливо корисна для нашого проекту, оскільки дозволяє нам не знати, як налаштувати модель для перегляду. Ми просто делегуємо цю задачу вбудованим провайдерам.


Рисунок 2. Адаптер EMF.Edit з довідкової інформації по Eclipse

Висновок


Ми завершили виконання завдання зі створення плагіна, що відображає вміст EMF-моделі в програмі перегляду. Ми продемонстрували, як спростити цей процес, використовуючи інтегровані середовища, що надаються Eclipse, і навіть пішли трохи далі, додавши в плагін деякі прості функціональні можливості. Ми розглянули лише невелику частину з можливостей, що надаються даними інтегрованими середовищами, тому настійно рекомендуємо детально досліджувати ці компоненти Eclipse.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*