GXT EditorGrid: выбор типа редактора ячеек для каждой ячейки - PullRequest
1 голос
/ 07 августа 2011

GXT EditorGrid предоставляет механизм для установки типа редактора для столбца.

Есть ли способ определить тип редактора для каждой ячейки?

Для любопытных умов:

Мне нужно создать транспонированную таблицу; столбец становится строкой, а строка - столбцом. В этом случае столбец (с точки зрения обычной таблицы) будет иметь различный тип редактора, в результате чего строка будет иметь идентичный тип редактора.

1 Ответ

2 голосов
/ 08 августа 2011

По сути, вы должны обработать событие 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);

}
...