Как поменять курсор над подсветкой?
В GWT я использую CellTable.
Когда вы наводите курсор мыши на CellTable, он выделяет каждую строку.
Как изменить поведение подсветки при наведении курсора мыши? В частности:
- изменить цвет подсветки
- отключения / включения
- сделать так, чтобы на вашем курсоре выделялся только конкретный элемент сетки (вместо всей строки)
(В настоящее время у меня есть хак для создания группы CellTable шириной в 1 столбец и добавления их в макет VerticalPanel... создавая иллюзию, что существует один CellTable и он подсвечивает каждую сетку в соответствии с вашим курсором. Это плохо? Почему? спектакль?)
3 ответа
Вы заметите, что CellTable использует ResourceBundle, что означает, что все стили css запутаны... это затрудняет переопределение стилей.
Конструктор CellTable фактически позволит вам переопределить ResourceBundle по умолчанию. Итак, во-первых, вам нужно создать свой собственный пакет ресурсов следующим образом:
public interface CellTableResources extends Resources {
public CellTableResources INSTANCE =
GWT.create(CellTableResources.class);
/**
* The styles used in this widget.
*/
@Source("CellTable.css")
CellTable.Style cellTableStyle();
}
Затем вам нужно создать свой собственный файл CSS. Я рекомендую скопировать стиль CellTable прямо в ваш проект и использовать его в качестве отправной точки. Вы можете найти его здесь: http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/user/cellview/client/CellTable.css
Сначала убедитесь, что стиль введен, а затем просто вставьте его в конструктор CellTable следующим образом:
CellTableResources.INSTANCE.cellTableStyle().ensureInjected();
myCellTable = new CellTable<T>(Integer.MAX_VALUE,CellTableResources.INSTANCE);
В частности, вы хотите настроить эти стили:
- cellTableKeyboardSelectedRow
- cellTableKeyboardSelectedRowCell
- cellTableSelectedRow
- cellTableSelectedRowCell
- cellTableKeyboardSelectedCell
Важно отметить, что таблица ячеек различает "выбранную строку" и "выбранную строку клавиатуры". Выбранная строка является фактической выбранной строкой (т.е. с помощью SelectionModel). Строка, выбранная клавиатурой, указывает на то, что подсвечивается, когда пользователь нажимает клавишу вверх / вниз, но не означает, что строка фактически выбрана (если это имеет смысл).
Я просто добавлю номер 2) в свой список, вы можете просто сделать
cellList.setSkipRowHoverStyleUpdate(true)
Это полностью отключает подсветку. Есть еще два setSkip
-функции в CellList, связанные с зависанием.
CellTable может быть стилизован с помощью CSS: как мне стилизовать заголовки gwt 2.1 CellTables?
Чтобы отключить подсветку, просто установите свойство CSS при наведении на ничего.
Возможно - попробуйте настроить
.cellTableSelectedRow
а также.cellTableSelectedRowCell
,
Вот оригинальный CellTable.css: http://www.google.com/codesearch/p?hl=en#A1edwVHBClQ/user/src/com/google/gwt/user/cellview/client/CellTable.css&q=cellTableLastColumn&d= 8