Подсказка для отключенного ToolItem — RAP vs RCP

Есть ли способ получить ToolItem в ToolBar быть отключенным и по-прежнему иметь всплывающую подсказку?

Я знаю, что по умолчанию это невозможно, и можно использовать обходные пути (обтекание другим виджетом), но поскольку ToolItem требует родителя ToolBar, я не нашел решения в этом случае. Кто-нибудь видит, как вы можете «взломать» обходной путь всплывающей подсказки в этом случае?

Не знаю, актуально ли, но это код:

class CustomItem extends org.eclipse.jface.action.ContributionItem {

 @Override
    public void fill(final ToolBar toolBar, final int index) {

      toolItem = new ToolItem(toolBar, SWT.PUSH);

      // . . .

    }
}

Обновлять:

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

Ответ, предоставленный Subash J, верен для приложений RCP, но не будет работать для RAP.

После разговора с разработчиком RAP он указал мне на эту ошибку: https://bugs.eclipse.org/bugs/show_bug.cgi?id=435750

Я обновил заголовок, чтобы он лучше отражал содержание этого поста.


person Teabee    schedule 05.06.2018    source источник


Ответы (1)


Да, вы можете отключить ToolItem на панели инструментов и по-прежнему показывать всплывающую подсказку. Попробуйте приведенный ниже код.

class CustomItem extends org.eclipse.jface.action.ContributionItem {

 @Override
    public void fill(final ToolBar toolBar, final int index) {
      final ToolItem toolItem = new ToolItem(toolBar, SWT.PUSH);
        toolItem.setText("Sample Tool Item 1");
        toolItem.setEnabled(false);
        toolItem.setToolTipText("Sample Tool Tip 1");

        final ToolItem toolItem2 = new ToolItem(toolBar, SWT.PUSH);
        toolItem2.setText("Sample Tool Item 2");
        toolItem2.setToolTipText("Sample Tool Tip 2");

    }
}

Вывод будет аналогичен приведенному ниже, где Sample Tool Item 1 отключен, и в то же время отображается всплывающая подсказка.

Вывод

person Subash J    schedule 05.06.2018