Multi edit означает, что можно редактировать несколько ячеек одновременно. Это, конечно же, делается в редакторе, так как нет смысла выполнять мультиредактирование внутри строки. Вам лучше взглянуть на openInline(IConfigRegistry, List<String>)
или даже лучше на EditConfigAttributes#OPEN_IN_DIALOG
, чтобы решить, что вы ищете.
Но вы на самом деле ищете способ по-разному справиться с открытием редактора при различных взаимодействиях пользовательского интерфейса. Поэтому вам необходимо зарегистрировать соответствующие привязки пользовательского интерфейса. Это уже обсуждалось на форуме NatTable .
. И EditorExample показывает довольно много возможных вариантов конфигурации, доступных для редактирования. И почти каждый редактируемый пример показывает возможности мультиредактирования. Вам просто нужно выбрать несколько ячеек, которые вы хотите отредактировать, а затем начать печатать или нажимать клавишу F2.
Следующий код поможет вам с конфигурацией, основанной на метке, добавленной в действие привязки пользовательского интерфейса:
public class OpenEditorConfiguration extends AbstractRegistryConfiguration {
@Override
public void configureRegistry(IConfigRegistry configRegistry) {
configRegistry.registerConfigAttribute(
EditConfigAttributes.OPEN_IN_DIALOG,
Boolean.TRUE,
DisplayMode.EDIT,
"open_in_dialog");
}
@Override
public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
uiBindingRegistry.registerDoubleClickBinding(
new CellEditorMouseEventMatcher(GridRegion.BODY),
new IMouseAction() {
@Override
public void run(NatTable natTable, MouseEvent event) {
int columnPosition = natTable.getColumnPositionByX(event.x);
int rowPosition = natTable.getRowPositionByY(event.y);
ILayerCell cell = natTable.getCellByPosition(columnPosition, rowPosition);
cell.getConfigLabels().add("open_in_dialog");
natTable.doCommand(new EditCellCommand(
natTable,
natTable.getConfigRegistry(),
cell));
}
});
}
}