Почему отключенная ссылка SWT не выделена серым цветом? - PullRequest
2 голосов
/ 27 февраля 2010

Я отключаю org.eclipse.ui.forms.widgets.Hyperlink контроль, просто звоню hyperLink.setEnabled(false).

Однако после этого ссылка не выглядит как отключенное управление. Ссылка не выделена серым цветом (но я, конечно, не могу ее щелкнуть).

Вопрос в том, почему ссылка не отображается серым цветом, и что я должен сделать, чтобы затемнить отключенные ссылки?

Ответы [ 3 ]

0 голосов
/ 27 февраля 2010

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

0 голосов
/ 18 марта 2013

Обратите внимание, что в дополнение к Santosh s answer с Eclipse 4.3 M6 вы можете легче восстановить цвет по умолчанию, поскольку теперь у вас есть :

Добавлена ​​новая константа (SWT_COLOR_LINK_FOREGROUND), которая будет возвращать собственный цвет гиперссылок на всех платформах.

SWT link color

0 голосов
/ 27 февраля 2010

Вы пытались установить серый передний план явно?

Вы можете использовать следующий вспомогательный метод:

public static void setEnabled(Link link, boolean enable){
    if(link.isEnabled()!=enable){
        if(enable)
          link.setForeground(null); // resets to system's default color
        else
          link.setForeground(link.getDisplay().getSystemColor(SWT.COLOR_GRAY));
        link.setEnabled(enable);
    }
}
...