GWT Celltable и TABbing
Так что у меня есть GWT cellTable с различными входами, включая selectboxes, EditTextCells и некоторые ссылки. Я бы хотел, чтобы TAB проходил по каждой клетке.
Тем не менее, в настоящее время я могу получить только переключение TAB для переключения между окнами выбора (когда KeyboardSelectionPolicy.DISABLED
). (т.е. отсюда). Но это не вкладка в EditTextCells или другие ячейки.
(потенциально связанный, EditText <input>
Кажется, у них не может быть своего tabindex!=-1, иначе я вижу ошибки бросания cellTable. (и, кажется, предупреждает в EditText, что вы не должны этого делать).
Есть ли другой tabIndex для EditText или других общих ячеек, которые мне не хватает, может быть? Один парень здесь, казалось, не мог заставить его работать и opt'd out.
Но в соответствии с этой проблемой в GoogleCode, другие люди делают это успешно.
2 ответа
Вы можете создать новую ячейку. Или вы можете добавить некоторый скрипт в CellTable для обработки вкладок и клавиш SHIFT+TAB.
Расширьте CellTable для достижения этой цели, добавив обработчик вкладок, который будет работать для вас. Смотрите эту ссылку.
Итак, добавление tabIndex работает. для editTextCell я добавил новый шаблон для текста (обычно просто сгенерированного safehtml), например так:
interface TemplateBasic extends SafeHtmlTemplates {
@Template("<Label tabindex=\"{1}\">{0}</Label>")
SafeHtml input(String value, String index);
}
а потом в рендере, когда он устанавливает...
else if (value != null) {
SafeHtml html = renderer.render(value);
sb.append(html) );
}
вместо этого я использовал
else if (value != null) {
SafeHtml html = renderer.render(value);
sb.append(templatebasic.input(html.asString(), Integer.toString( context.getIndex() )) );
}
это должно работать и для чековой ячейки; переопределение средства визуализации, чтобы не использовать статический определенный INPUT_CHECKED/UNCHECKED с tabIndex=-1
но я все еще думаю / надеюсь, что может быть лучше...