Быстрый просмотр в приложении eclipse rcp - PullRequest
3 голосов
/ 30 апреля 2010

Как добавить быстрый просмотр в мое приложение eclipse rcp?

Ответы [ 2 ]

2 голосов
/ 20 октября 2010

Простой способ добавления быстрого представления в приложение Eclipse RCP или RAP начинается с создания обычного представления. В плагинах xml добавьте новое расширение для представления (я назову его fast.view) с правильными атрибутами.

<view
    closable="true"
    id="fast.view"
    minimized="true"
    ratio=".30f"
    relationship="fast" <--- This attribute tells the view to be a fast view.
    relative="other.view"
</view>

После добавления этого расширения мы также должны показать панель быстрого просмотра в рабочей области. Для этого отредактируйте ApplicationWorkbenhWindowAdvisor (или другой советник, который запускает окно вашего рабочего места) и добавьте следующие строки в ваш метод preWindowOpen ():

IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
configurer.setShowFastViewBars(true);

Если у вас уже есть IWorkbenchWindowsConfigurer, вам не нужно создавать новый. Этот метод заставляет рабочую среду отображать панель быстрого доступа, и ваше новое расширение перспективы быстрого просмотра должно быть там при запуске.

Я получил эту информацию из статьи Eclipse Papercuts, написанной Ларсом Фогелем: http://www.vogella.de/blog/2009/09/15/fastview-eclipse-rcp/

2 голосов
/ 30 апреля 2010

Вы можете добавить правую кнопку, как в этой теме :

, что можно сделать, добавив кнопку в панель быстрого просмотра и открыв стандартный вид в событии кнопки

Кнопка кнопка = новая кнопка ((Composite) ((WorkbenchWindow) окно) .getFastViewBar () .getControl (), SWT.PUSH);

, чтобы избежать наложения на событие кнопки, сначала создайте макет папки для этого вида со ссылкой на исходный вид, а затем вызовите действие для добавления вида.

IFolderLayout ViewLayout1 = layout.createFolder ( "ViewLayout1",
                                                  IPageLayout.BOTTOM,
                                                  0.50f, initalView.ID);
OpenViewAction ov = new OpenViewAction (window, "label", secondview.ID);
ov.run ();

Отображение и минимизация быстрого просмотра программно должны выполняться командой "org.eclipse.ui.views.showView" с параметром "org.eclipse.ui.views.showView.makeFast".

См. Eclipse RCP: открыть вид с помощью стандартной команды org.eclipse.ui.handlers.ShowViewHandler:

Eclipse предоставляет стандартную команду org.eclipse.ui.views.showView для открытия произвольного представления.
По умолчанию используется обработчик org.eclipse.ui.handlers.ShowViewHandler. Этот обработчик является хорошим примером того, как вы можете добавить свою собственную команду с аргументами. Требуется два параметра:

  • Первый имеет ID org.eclipse.ui.views.showView.viewId и идентифицирует идентификатор представления, который должен быть открыт,
  • следующий имеет ID org.eclipse.ui.views.showView.makeFast и определяет, должен ли вид быть открытым как быстрый вид.

Без параметров команда позволит пользователю выбрать, какой вид открыть.

См. Параметр для команд для некоторых примеров

Давайте посмотрим на реальный пример: команда «Показать представление». Команда является общей и может отображать любое представление. Идентификатор представления задается команде в качестве параметра:

<command
     name="%command.showView.name"
     description="%command.showView.description"
     categoryId="org.eclipse.ui.category.views"
     id="org.eclipse.ui.views.showView"
     defaultHandler="org.eclipse.ui.handlers.ShowViewHandler">
  <commandParameter
         id="org.eclipse.ui.views.showView.viewId"
         name="%command.showView.viewIdParameter"
         values="org.eclipse.ui.internal.registry.ViewParameterValues" />
  <commandParameter
     id="org.eclipse.ui.views.showView.makeFast"
     name="%command.showView.makeFastParameter"
     optional="true"/>
</command>

Список всех возможных значений параметра задается классом ViewParameterValues. Класс будет перебирать реестр представлений и возвращать его.


Примечание: просто для полноты, в теории ( эта тема )

Приложения RCP могут отключать быстрый просмотр, вызывая WorkbenchWindowConfigurer.setShowFastViewBar(false) из своих WorkbenchAdvisor s preWindowOpen() метод.
Это не только скрывает панель быстрого просмотра, но также скрывает пункт меню быстрого просмотра на видах.

...