2011-08-07 49 views
1

GXT EditorGrid提供了一種設置列的編輯器類型的機制。GXT EditorGrid:在單元格基礎上選擇單元格編輯器類型

有沒有辦法在單元格基礎上定義編輯器類型?

對於那些好奇的人們:

我需要創建一個換位表;列成爲行,行成爲列。既然如此,一列(從普通表格的角度來看)將會有各種編輯器類型,其中一行將具有相同的編輯器類型。

回答

2

基本上,你必須處理BeforeEdit事件並設置編輯器。這裏有一個基類,您可以從中實現您的網格:

public abstract class AnyEditorGrid<T extends ModelData> extends EditorGrid<T> { 

    public AnyEditorGrid(final ListStore<T> listStore, final ColumnModel columnModel) { 
     super(listStore, columnModel); 
     addListener(Events.BeforeEdit, new Listener<GridEvent<T>>() { 
      @Override 
      public void handleEvent(final GridEvent<T> be) { 
       final CellEditor editor = getEditor(be.getRowIndex(), be.getColIndex(), be.getModel()); 
       if (editor != null) { 
        getColumnModel().setEditor(be.getColIndex(), editor); 
       } else { 
        be.setCancelled(true); 
       } 
      } 
     }); 
    } 

    protected abstract CellEditor getEditor(int rowIndex, int colIndex, T model); 

} 
+0

工作。謝謝。 =) – bungrudi