GXT EditorGrid:按单元格选择单元格编辑器类型



GXT EditorGrid提供了为列设置编辑器类型的机制。

是否有按单元格定义编辑器类型的方法?

好奇的头脑:

我需要创建一个转置表;列变成行,行变成列。在这种情况下,一列(从普通表的角度来看)将具有各种编辑器类型,而一行将具有相同的编辑器类型。

基本上,您必须处理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);
}

最新更新