Создание кнопки remove в контроллере экрана

Здравствуйте. версия jmix 1.5.5

в xml кнопка remove создается так

                        <table id="table"
                               dataContainer="tableDc" editable="true">
                            <actions>
                                <action id="remove" type="remove"/>
                            </actions>
                            <buttonsPanel id="buttonsPanel" alwaysVisible="true">
                                <button id="addParameter1Btn" caption="msg://addParameterBtn"/>
                                <button id="removeParameter1Btn"
                                        action="table.remove"/>
                            </buttonsPanel>
                            <columns>
                                <column id="parameterField" caption="msg://parameter" editable="true"/>
                                <column id="valueField" caption="msg://value"
                                        editable="true"/>
                                <column id="remarkField" captionAsHtml="true" caption="msg://remark" editable="true"/>
                            </columns>
                        </table>

я хочу создать панель с кнопками в контроллере. начинаю писать код, но чего-то не хватает

    private ButtonsPanel createButtonsPanel(KeyValueCollectionContainer tableDc, Integer  number, Table table){

        Button remove = uiComponents.create(Button.class);
        remove.setId("removeParameterBtn" + number);

        RemoveAction<Table<KeyValueCollectionContainer>> removeAction = new RemoveAction();
       // здесь не хватает логики
        remove.setAction(removeAction);

        ButtonsPanel buttonsPanel = uiComponents.create(ButtonsPanel.class);
        buttonsPanel.setId("buttonsPanel" + number);
        buttonsPanel.setAlwaysVisible(true);
        buttonsPanel.add(remove);

        return buttonsPanel;
    }

Здравствуйте.

Для создания действий необходимо использовать специальный Spring Bean – Actions.
Если вы создаёте Action, который является ListAction, то ему необходимо указать target атрибут. RemoveAction является наследником ListAction.

ListAction, это действия, которые относятся к компонентам, которые используются для отображения списков (таблицы, сетки данных и т.д.).

Чтобы указать атрибут target вы можете использовать setTarget(ListComponent) у экземпляра RemoveAction. Либо, если вы хотите, чтобы ваш RemoveAction попал в контекстное меню таблицы, вы можете добавить его через table.addAction(action). В таком случае произойдёт автоматическая установка table в качестве target для action.

Учитывая всё вышесказанное, ваш код должен принять примерно вот такую форму:

        RemoveAction<?> removeAction = actions.create(RemoveAction.ID);
        removeAction.setTarget(usersTable);
        // или
        // usersTable.addAction(removeAction);

        Button button = uiComponents.create(Button.class);
        button.setAction(removeAction);

        buttonsPanel.add(button);

С уважением,
Дмитрий