Как я могу отфильтровать опцию «Мой компьютер» в SWT DirectoryDialog?

в нашем приложении Eclipse RCP, работающем в Windows XP, мы используем диалоговое окно DirectoryDialog, в котором пользователь должен... хм... выбрать каталог! :D

Проблема в том, что если пользователь выбирает опцию «Мой компьютер» (в немецкой Windows «Arbeitsplatz»), диалоговое окно возвращает значение null.

DirectoryDialog предоставляет метод setFilterPath(String path), в который я помещаю File.pathSeparatorChar (чтобы оставаться независимым от ОС).

Мое предложение заключалось в том, что если в каталоге должен быть разделитель файлов, параметр «Мой компьютер» будет игнорироваться, потому что он равен нулю, например, кнопка «ОК» будет неактивна или что-то в этом роде. вот так... но можно и нажать "ОК".

Есть предложения с вашей стороны? :D

Заранее спасибо!

Алекс


person Pantonaut    schedule 26.05.2010    source источник
comment
My Computer не является каталогом, поэтому я думаю, что кнопка OK может быть серой.   -  person True Soft    schedule 26.05.2010
comment
+1 это должен быть ответ, а не комментарий.   -  person Daniel    schedule 27.05.2010
comment
ПРИМЕЧАНИЕ 1: setFilterPath устанавливает начальный выбор диалогового окна и ничего не отфильтровывает. ПРИМЕЧАНИЕ 2. Нажатие кнопки «Отмена» в диалоговом окне также приводит к нулевому значению. Из того, что я могу сказать, практически невозможно по-разному относиться к отмене и выбору недопустимых путей.   -  person drstupid    schedule 27.05.2010
comment
Какую версию SWT вы используете?   -  person True Soft    schedule 28.05.2010


Ответы (1)


My Computer не является каталогом, поэтому я думаю, что кнопка OK может быть серой.

person True Soft    schedule 27.05.2010
comment
Проблема в том, что кнопка OK не неактивна. - person drstupid; 27.05.2010
comment
@drstupid: Теперь я понимаю проблему, хотя это и странно. - person True Soft; 28.05.2010
comment
Я использую Eclipse RCP Galileo, так что думаю 3.5.1! Какие-либо предложения? - person Pantonaut; 11.06.2010
comment
Версия Eclipse — это одно, а версия SWT — другое. Что печатает SWT.getVersion()? - person True Soft; 12.06.2010