Ну, лучше поздно, чем никогда!У меня была такая же проблема.Решение на самом деле довольно простое.
Допустим, у вас есть диалоговое окно, которое наследуется от Composite
и содержит виджеты для ввода данных и кнопки.Главное окно также содержит некоторые виджеты пользовательского интерфейса, такие как поля ввода и несколько кнопок.Вы устанавливаете порядок вкладок для этого главного окна.При нажатии кнопки для вызова диалогового окна установите каждый из элементов управления в главном окне (setTabIndex(-1)
), которое отключает порядок табуляции.
Для нового диалогового окна зарегистрируйте следующий код в конструкторе:
this.addAttachHandler( new AttachEvent.Handler() {
@Override
public void onAttachOrDetach(AttachEvent event) {
if(isAttached()) {
setTabOrder();
} else {
clearTabOrder();
}
}
});
и затем создайте два метода setTabOrder()
и clearTabOrder()
, которые вызываются соответствующим образом.Похоже, что GWT путают с несколькими окнами с порядком вкладок.Вы можете положить конец путанице, динамически создавая порядок табуляции, когда каждое диалоговое окно отображается / скрывается.