2011-05-13 36 views
7

在GWT中,我使用CellTable。如何將鼠標改爲突出顯示?

將鼠標懸停在CellTable上時,它會突出顯示每一行。

如何改變從鼠標突出顯示的行爲?具體做法是:

  • 變化凸顯
  • 禁用的顏色/啓用
  • 使其在光標(而不是整行)
只突出特定的網格項

(目前我已經創建了一堆1列寬的CellTables並將它們添加到VerticalPanel佈局......創建一個CellTable的錯覺,並根據您的光標突出顯示每個網格。 這是不好的?爲什麼?表現? )

回答

17

你會發現CellTable使用資源包,這意味着所有的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
  • ç ellTableSelectedRow
  • cellTableSelectedRowCell
  • cellTableKeyboardSelectedCell

需要注意的是單元格表的「選擇行」和「鍵盤選擇行」區分開來是很重要的。所選行是所選的實際行(即通過SelectionModel)。鍵盤選定行是指當用戶按下上/下鍵時突出顯示的內容,但並不意味着該行實際被選中(如果有意義的話)。名單上的

+1

澄清一下,我建議複製CellTableBasic.css樣式並將其用作基準:http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com /google/gwt/user/cellview/client/CellTableBasic.css ...標準CellTable.css樣式表包含圖像資源,CellTableBasic.css是純CSS,並且可能更易於修改 – 2011-05-16 22:13:49

+1

對於您最後一段的解釋'selected row'和'keyboard selected row'之間的區別。這是我第一次看到它解釋 – Justin 2011-12-20 15:28:12

+0

這是如何幫助刪除實際突出顯示?我嘗試覆蓋所有提到的樣式(包括未提及的'cellTableHoveredRow'和'cellTableHoveredRowCell'),但我無法使突出顯示完全消失。我可以改變它有點不同,但我不能刪除它。也許有人可以共享實際的CSS來刪除鼠標懸停在行上的突出顯示?謝謝。 – joscarsson 2012-11-24 12:42:07

1
  1. CellTable可以通過CSS設置樣式:How do I style a gwt 2.1 CellTables headers?

  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

+0

請問您可以提供一些關於如何在列表中執行第2項的細節,「只需將懸停CSS屬性設置爲無」?我在哪裏設置該屬性,CSS類等?謝謝。 – joscarsson 2012-11-24 12:45:26

4

我就加了2號),你可以簡單地做

cellList.setSkipRowHoverStyleUpdate(true) 

完全禁用突出。與懸停有關的CellList上還有兩個更多的setSkip函數。

相關問題