2016-11-14 411 views
0

當我單擊一行時,整個行顏色會按預期更改。但鼠標所在的單元格會變爲與該行其餘部分不同的顏色。我試圖阻止單元格變成與其餘行不同的顏色。更改NatTable單元格選擇顏色

我想弄清楚單元格選擇顏色設置的位置以及如何刪除它(讓單元格選擇使用單元格當前背景顏色)。

我已經嘗試過失敗之類的東西修改CellConfigAttribute或通過註銷它:

getNatTable().getConfigRegistry(). 
    unregisterConfigAttribute(CellConfigAttributes.CELL_STYLE); 

,但沒有運氣。我不知道如何按順序遍歷所有樣式,並查看從哪裏生成。我本來希望看到類似於現有方法:

List<ConfigAttribute<IStyle>> list = getNatTable().getConfigRegistry(). 
    getConfigAttributesInOrder(); 

不幸的是我看到的是這樣的事情,我不覺得我的情況非常有用:

List<String> strings = getNatTable().getConfigRegistry(). 
    getDisplayModeOrdering().getDisplayModeOrdering("SELECT"); 

我已閱讀有一些一般建議,但沒有看到明確的代碼示例顯示如何做到這一點的文檔。那麼,我應該確定細胞在哪裏被修改,我該如何預防它?

我使用了完整的行選擇的代碼是:

public void foo() { 
    final SelectionLayer selectionLayer = glazedListsGridLayer. 
     getBodyLayerStack().getSelectionLayer(); 
    final RowOnlySelectionConfiguration<T> selectionConfig = 
     new RowOnlySelectionConfiguration<>(); 
    selectionLayer.addConfiguration(selectionConfig); 
    getNatTable().addConfiguration(new RowOnlySelectionBindings()); 
} 

回答

1

你所談論的選擇錨點。唯一需要做的是爲DisplayMode.SELECT註冊相同的樣式,並標註您只註冊DisplayMode.SELECT的SelectionStyleLabels.SELECTION_ANCHOR_STYLE。不同的風格是在DefaultSelectionStyleConfiguration註冊

+0

明白了,謝謝! – ekjcfn3902039