Обратите внимание, что Ruby имеет английские имена в течение дней недели, уже встроенной в ее класс даты. Необходимо попытаться усилить это, если Вы можете. Вот rdoc.
Тогда, как Может, предложил, просто делают следующее:
select(:event, :day, Date::DAYNAMES)
Имеют в виду, что это решение не особенно i18n дружественное. Если бы i18n является проблемой, я также проверил бы локализованный плагин дат и изменения, которые были внесены в направляющих 2.2 для поддержки i18n.
Используйте Display.asyncExec или Display.syncExec , в зависимости от ваших потребностей.
] Например, другой поток может вызвать этот метод для безопасного обновления метки:
private static void doUpdate(final Display display, final Label target,
final String value) {
display.asyncExec(new Runnable() {
@Override
public void run() {
if (!target.isDisposed()) {
target.setText(value);
target.getParent().layout();
}
}
});
}
Здесь есть учебное пособие .
«SWT делает упор на отказоустойчивость, когда дело доходит до проблем с потоками; поэтому, по крайней мере, типичные проблемы не оставаться незамеченным до начала производства. Вопрос, однако, в том, что делать, если вам нужно обновить метку / кнопку / супер-элемент управления в SWT из фонового потока? Что ж, это удивительно похоже на Swing: "
// Code in background thread.
doSomeExpensiveProcessing();
Display.getDefault().asyncExec(new Runnable() {
public void run() {
someSwtLabel.setText("Complete!");
}
});
Фактически вы можете просто послать сообщение потоку графического интерфейса пользователя, что некоторые модификации были изменены. Это будет чище, если вы посмотрите на это с точки зрения MVC.
При создании отдельного потока от основного потока передайте объект Gui новому потоку, и вы сможете получить доступ ко всем свойствам этого объекта GUI.