Меню Eclispe RCP SWT для Windows и Mac OS - PullRequest
2 голосов
/ 20 марта 2010

как настроить меню командного стиля Eclipse RCP для соответствия различным структурам меню в Windows и Mac OS?

Пример меню Mac OS X http://images.apple.com/macosx/refinements/images/services_menu_20090902.jpg

Пример меню Windows http://www.flamingpear.com/images/psp8menu.gif

В примере, который вы видите, различия в структурах меню.Например, в меню приложения Mac есть команда предпочтений, команда about и команда exit.Обычно они находятся под Windows в меню файлов, а команда about находится в меню справки.Есть ли «стандартный» способ сделать это с программами RCP?Это должно быть как-то возможно, потому что это делает само Eclipse.Но я не могу понять, как.

1 Ответ

1 голос
/ 21 марта 2010

Хотя я еще не сделал этого сам, должна быть возможность использовать зависящие от ОС фрагменты плагинов для этой задачи. Я видел те, которые использовались для зависимого от ОС кода SWT в Eclipse Delta Pack.

1) Для каждой ОС, которую вы хотите поддерживать, определите фрагмент плагина, названный этой ОС.

2) Файлы MANIFEST.MF могут содержать фильтр для платформы, как объяснено в ответе на другой вопрос. Установите Eclipse-PlatformFilter, добавив одну из следующих строк в MANIFEST.MF фрагмента:

  • Eclipse-PlatformFilter: (osgi.os = win32)
  • Eclipse-PlatformFilter: (osgi.os = macosx)

Или используйте фильтр OSGi для org.osgi.framework.os.name (рекомендуется в ответе, упомянутом выше), но я не смог найти на 288 страницах спецификации, как этот фильтр будет объявлен.

3) Каждый фрагмент содержит в своем фрагменте .xml структуру меню для этой ОС. Файл plugin.xml исходного плагина содержит только общую конфигурацию, например команды и обработчики.

Вы можете добавить собственный вклад в меню в предопределенные меню, если вы знаете идентификатор меню. См. Eclipse Wiki на Вклад в меню и Справку Eclipse для org.eclipse.ui.menus .

...