org.eclipse.ui.menus

Оговорка: В Eclipse версии 3.2 точка расширения org.eclipse.ui.menus реализована не полностью. В настоящий момент не поддерживаются определения и расширения меню и панелей управления (вместо них используйте расширения существующих дополнений). Однако это единственный механизм, позволяющий добавить "врезку" к рабочей среде. В этом разделе описано, как использовать точку расширения для этой цели.

"Врезка" - это управляющий элемент, расположенный по периметру окна Рабочей среды, в так называемой "области врезки". Самый распространенный пример врезки - базовая "линия состояния", расположенная в большинстве графических интерфейсов в нижней части окна. Точка расширения org.eclipse.ui.menus позволяет модулям добавлять панели к рабочей среде. Модули, добавляющие врезку, должны зарегистрировать ее в своем файле plugin.xml и задать параметры ее конфигурации  , в том числе, класс реализации, группу (панель врезки) и сведения о расположении (например, будет ли использоваться дополнительное пространство области врезки).

Интерфейс добавленной врезки определяется в IWorkbenchWidget, но рекомендуется расширять класс AbstractWorkbenchTrimWidget, а не добавлять интерфейс с нуля.

Для примера readmetool мы создали простую врезку, которая выводится как строка и указывает, с какой стороны в данный момент закреплена врезка.

Ниже приведена характеристика определения точки расширения, которая используется для добавления врезки:

В первой части расширения (в определении "группы") задан ИД группы и определено "расположение" группы в начале группы "состояние" (то есть в начале нижней части области врезки). Во второй части (в определении "виджета) задан класс реализации виджета и определено его "расположение" в заданной до этого группе.

Обратите внимание, что в обоих случаях для "типа" панели задано значение trim (врезка). В данный момент это единственный доступный тип.

После установки действительного примера readmetool обратите внимание на реализацию метода ReadmeTrimWidget's fill. Он отличается от других методов fill, применяемых для добавления виджетов к меню или панелям инструментов, тем, что позволяет перетаскивать врезку из одной области в другую или менять расположение и направление врезки. В настоящее время реализация этого метода позволяет изменить выводимый текст, указывающий на текущее расположение. Обратите внимание, что при выполнении цикла 'dispose'/'fill' методы dispose и fill вызываются несколько раз в результате изменений рабочей среды (например, при изменении проекций или расположения врезки).

В коде примера не указано, что администратор макетов подразумевает, что в виджете настроен метод computeSize. Виджет должен обладать способностью вычисления и возврата "предпочитаемого" размера, так как этот параметр используется при составлении макета для определения границ области врезки. За инструкциями по правильной реализации метода computeSize обратитесь к документации SWT.