Hello everyone! I have two entities -> Concourse and ConcourseRequest. In ConcourseRequest I have ManyToOne relation with Concourse entity. What I’m trying to do is, in concourse-request-browse screen I insert one field from Concourse called “name_ru”. I’ve created linkInvoke argument on that field. The logic is next, when I click to that “name_ru” field I want to be redirected to concourse-edit for that item. In UI Controller I’ve created listener where trying to compare concourse id which located in ConcourseRequest with Concourse id. But I’m getting IllegalStateException error, below I provide code:
ConcourseRequestBrowse UI Controller
@Inject
protected Screens screens;
@Inject
protected ScreenBuilders screenBuilders;
@Inject
protected CollectionContainer<ConcourseRequest> concourseRequestsDc;
@Inject
protected DataManager dataManager;
@Inject
protected CollectionLoader<ConcourseRequest> concourseRequestsDl;
public void openConcourse() {
ConcourseRequest concourseRequest = concourseRequestsDc.getItem();
Concourse concourse = dataManager.load(Concourse.class).query(
"select e from tsadv_concourse e " +
"where e.id =: concourseId")
.parameter("concourseId", concourseRequest.getConcourse().getId()).view("concourse-view")
.optional()
.orElse(null);
EditorBuilder<Concourse> concourseEditorBuilder;
concourseEditorBuilder = screenBuilders.editor(Concourse.class, this).editEntity(concourse);
System.out.println(concourseRequest);
concourseEditorBuilder.withOpenMode(OpenMode.NEW_TAB).build().show();
}
concourse-request-browse.xml
…
<collection id="concourseRequestsDc"
class="kz.uco.tsadv.modules.competition.ConcourseRequest">
<view extends="_local">
<property name="concourse" view="_minimal">
<property name="name_ru"/>
<property name="category"/>
</property>
<property name="status" view="_minimal"/>
<property name="personGroup" view="_minimal">
<property name="fullName"/>
</property>
</view>
<loader id="concourseRequestsDl">
<query>
<![CDATA[select e from tsadv_ConcourseRequest e]]>
</query>
</loader>
</collection>
......
<column id="concourse.name_ru" caption="msg://concourse.name_ru" link="true" linkInvoke="openConcourse"/>
Could someone help me?