Не могу установить на кнопку ссылку на другой экран

Здравствуйте!
Читаю доки второй день, но так и не смог найти, как собственными силами добавить ссылку на любой из Экранов к обычной кнопке, по аналогии <item screen="User.browse"/> из файла meny.xml.
Это работает через <groupTable …/>, но мне не нужно, что бы под кнопкой отображалась лишняя таблица, нужно, что бы кнопка просто ссылалась на другой Экран. )
Подскажите пожалуйста, как это делается?

Честно, прочитал три раза, но не понял Откуда надо вызвать любой экран… И причем тут “мне не нужно, что бы под кнопкой отображалась лишняя таблица”…
Вызывать любой экран с кнопки на экране, то используйте ScreenBuilders и открывайте любой нужный экран в любом режиме.

Пытаюсь, к любой button привязать событие, которое ссылается на удобный мне Экран. Подобные кнопки реализованы в файле menu.xml через атрибуты , которые отображаются в side.meny Экрана main-screen. Но атрибуты работают только в файле menu.xml. Пытаясь их добавить в другой файл xml Экрана, возникает ошибка.
Желаемый мне результат можно получить из AddAction, но этот action работает только внутри таблиц и т.п., Вот пример:

           <groupTable id="toolsGroupTable" dataContainer="documentsDc" >
                <actions>
                    <action id="addDoc" type="add">
                        <properties>
                            <property name="openMode" value="THIS_TAB"/>
                            <property name="screenClass" value="ru.comp.screen.documents.DocumentsBrowse"/>
                        </properties>
                    </action>
                </actions>

                <buttonsPanel alwaysVisible="true">
                    <linkButton id="documents1" action="toolsGroupTable.addDoc"
                                stylename="side-meny-contract-button"
                                icon="branding/documents.svg"
                                caption="Документы"/>
                </buttonsPanel>
            </groupTable>

Но в случае такой реализации, кнопка не только ссылается на нужный мне Экран, но и отображает под собой таблицу. А если я вывожу это action за пределы groupTable, пытаясь просто прицепить это действие к нужной кнопке. Убирая action вверх xml файла Экрана к другим actions, таким как “windowCommitAndClose” и “windowClose”, а саму кнопку вывожу за пределы groupTable. То при нажатии на эту кнопку получаю исключение: IllegalStateException: AddAction target is not set

Вызывать любой экран с кнопки на экране, то используйте ScreenBuilders и открывайте любой нужный экран в любом режиме.

Понял. Спасибо!

Естественно, вы создали Action, связанный с таблицей и пытаетесь его использовать где-то на кнопке, не связанной с этой таблицей.

Просто размещайте кнопку где надо на экране:

<layout spacing="true" expand="editActions">
        <form id="form" dataContainer="newEntityDc">
            <column width="350px">
                <textField id="field1Field" property="field1"/>
                <textField id="sumWithDiscount"/>
                <button id="userScreenButton"/>
            </column>
        </form>
......

В контроллере обрабатывайте ее нажатие и открывайте нужный экран:

....
    @Subscribe("userScreenButton")
    public void onScreenButtonClick(Button.ClickEvent event) {
        screenBuilders.screen(this)
                .withScreenClass(UserEdit.class)
                .withOpenMode(OpenMode.DIALOG)
                .build()
                .show();
    }
.....

Или создайте в контроллере действие для кнопки, которое будет аналогично вызывать screenBuilders.

1 симпатия