Как поменять курсор над подсветкой?

В 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, связанные с зависанием.

  1. CellTable может быть стилизован с помощью CSS: как мне стилизовать заголовки gwt 2.1 CellTables?

  2. Чтобы отключить подсветку, просто установите свойство CSS при наведении на ничего.

  3. Возможно - попробуйте настроить .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

Другие вопросы по тегам