У меня есть в моем приложении, которое имеет следующие особенности в TableViewer
:Выберите строку в TableViewer
- Он получает данные из веб-службы, а также при выборе строки, кнопки получить включен, и вы можете совершать операции (все эти операции вызывают веб-сервис, поэтому таблица остается в синхронизации с базой данных).
- Когда я добавляю новую строку, я отправляю команду «добавить» в веб-службу и обновляю таблицу. Теперь у меня новая строка, и я знаю, какая строка новая.
Теперь я хочу, чтобы выбрать новую строку по умолчанию, и я попробовал много команд, как tableViewer.getTable().select(index);
и, как сейчас:
public void selectAdded(int id) {
tableViewer.getTable().setSelection(id);
}
Эта картина показывает, что проблема:
Верхний показывает, как он работает теперь с этим кодом. Строка ниже показывает, как она выглядит, когда я нажимаю строку. Проблема в том, что кнопки не активируются, и у меня есть два текстовых поля только для чтения, которые остаются пустыми, а не отображают необходимую мне информацию. Но когда я нажимаю, все работает нормально.
Что делать, чтобы добиться того, что selectAdded(int id)
действует как один клик? Решение должно быть многоплатформенным (Mac/Windows), но, по крайней мере, на Mac.
Спасибо, он работает. Мой босс заметил, что было бы лучше, если выбор будет показан синим цветом (теперь он темно-серый). Есть идеи? –
На большинстве платформ темно-синий используется, когда элемент управления (стол) имеет фокус, темно-серый, когда что-то еще имеет фокус. Изменение цвета фокуса затруднено. –
Спасибо вам большое! Я добавляю 'tableViewer.getTable(). SetFocus();' и он отлично выглядит так, как я хотел. –