![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
val_vp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 15.11.2006 Где: Днепродзержинск Репутация: нет Всего: нет |
Доброго времени суток,
у меня довольно странная ошибка, вот её суть: Есть таблица в которой содержиться некоторое кол-во строк (не обязательно много, я воспроизводил при 5-30). Ячейки таблицы не редектируемые, таблица допускает множественное выделение, согласно бизнес требований, при определенных действиях ("подтверждение" или "отказ") выделенные строки таблицы не отображаются, а выделение получает ближайшая строка, т.е. стоит фильтр управляющий видимостью "подтвержденых" или "отказаннх" строк. баг проявляется так - при неоднократном выделении нескольких строк и их "подтверждении", может, хотя и крайне редко (приходиться до 10 раз повторят одно и тоже действие), случится сбой, т.е. ранее выделенные строки сохраняют выделение и не "подтверждаются" вместо этого в метод отвечающий за "подтверждение" выделенных строк приходит, как выделенная, строка с индексом 0, что соответственно серьёзный баг, т.к. "подтверждение" получили не те строки. у нас на проекте свой ГУЙ-й набор (точнее можно наверное даже фрейморком назвать), в него входят и таблицы, и модельки для таблиц, и механизм управления выделением в таблицах, т.н. SelectionKeeper-ы, вот какая чихарда с индексами выделенных строк происходит (в таблице оставалось 4 строки): Нормальный кейс действие индекс --- комент открыли модуль 0 --- по умолчанию выбирает верхнюю строку обновили таблицу 0 --- отвечает кнопка update, нужно сделать, что б в таблице были свежие данные, также выделяется верхняя строка (индекс 0) выделяю 3,4-ю строки 2 --- 3 --- собственно выделенными значатся правильные строки "подтверждение" 2 --- 3 --- подтверждение, на "подтверждение" идут данные из 2-х строк 2,3 после "подтверждения" 0 --- 0 --- возвращается выделение на 0-ю строку (это поумолчанию поведение таблицы как я понимаю) только почему-то 2 раза ? 1 --- 1 --- выделение переходит на ближайшую строку по правилам сохранения "выделения", т.к. строки 2,3 теперь не отображаються Баг (тоже 4 стоки осталось) обновили таблицу 0 --- выделяется верхняя строка (индекс 0) выделяю 3,4-ю строки 2 --- 3 --- вроде выделил их 0 --- 0 --- и прошел сброс выделения на верхнюю строку !!! "подтверждение" 0 --- на "подтверждение" пошла неправильно выделенная 0-я строка !!! после "подтверждения" 0 --- 0 --- возвращается выделение на 0-ю строку, которой теперь стала 1-я 2 --- 1 --- 2 --- далее непонятно как выбирает выделенные строки и почему не сбросило выделение? метод реализующий "подтверждение" --- вызывается листенером на кнопку "подтверждение" Ух, написал ![]() А вопрос такой - есть ли методика отлова таких багов ? правильно ли я понимаю что проблемы в потоках, т.е. отрисовка и обработчик, выполняющиеся в разных потоках и приводят к такой проблеме ? или это проблема конкретной jdk, на проекте используется 1.4.2_08 (но вот я не очень приуспел в поиске багов swing-а) ? Это сообщение отредактировал(а) val_vp - 25.5.2009, 13:22 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |