Удаление вида из окна Eclipse -> Показать виды - PullRequest
1 голос
/ 28 апреля 2010

У нас есть приложение, в котором некоторые виды работают только при привязке к определенным точкам зрения. Мы хотим удалить эти виды из диалогового окна Окно -> Показать представление , чтобы пользователи не могли добавлять их к перспективам, где они не работают.

Есть идеи, как это сделать программно или декларативно?

Я пытался использовать <visibleWhen />, но в диалоговом окне по-прежнему отображаются виды:

  <view class="com.mycompany.ViewClass" 
        id="com.mycompany.ViewId" 
        name="View Name" 
        restorable="true">

        <visibleWhen>
            <with variable="activeWorkbenchWindow.activePerspective">
                <equals value="com.mycompany.MyPerspective"/>
            </with>
        </visibleWhen>
  </view>

Я не думаю, что есть какие-либо проблемы с предложением <visibleWhen />, поэтому мне интересно, можно ли его использовать с View?

Ответы [ 2 ]

0 голосов
/ 29 апреля 2010

К сожалению, похоже, что Eclipse уже делает это для представления Представления, вызывая приватный ViewContentProvider.removeIntroView в поставщике контента для диалога Show Views. Чтобы обойти это ограничение, можно определить действия, добавив к точке расширения org.eclipse.ui.activities (см. activityPatternBinding о том, как действия могут быть сопоставлены с вкладами пользовательского интерфейса). Это не только удалит виды из диалогового окна «Показать виды», но также не позволит им отображаться в самих перспективах. Представления могут быть показаны программно. Мне также пришлось включить действия в методе ApplicationWorkbenchAdvisor.preStartup из-за ограничений в нашем приложении:

    Set<String> activityIds = new HashSet<String>();
    activityIds.add("com.my.activity.id");
    IWorkbenchActivitySupport activitySupport = PlatformUI.getWorkbench().getActivitySupport();
    activitySupport.setEnabledActivityIds(activityIds);

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

Надеемся, что в следующей версии Eclipse будет добавлена ​​точка расширения, чтобы разработчики могли декларативно удалять представления из диалога.

0 голосов
/ 28 апреля 2010

Его следует рассматривать как вклад в меню , используя <visibleWhen/>, чтобы отображать эту опцию только при выполнении определенного условия.

Подробнее см. вики-статью "Вклад в меню" .

...