Есть сущность
@JmixEntity(name = "jt_TestEntity")
open class TestEntity {
@JmixGeneratedValue
@JmixId
var id: UUID? = null
}
Экран:
<data>
<collection id="testDc" class="com.company.test.entity.TestEntity"/>
</data>
<layout>
<dataGrid id="dataGrid" dataContainer="testDc">
<columns>
<column property="id"/>
</columns>
</dataGrid>
</layout>
@ViewComponent
private lateinit var dataGrid: DataGrid<TestEntity>
@Autowired
private lateinit var metadata: Metadata
@ViewComponent
private lateinit var testDc: CollectionContainer<TestEntity>
@Subscribe
private fun onBeforeShow(event: BeforeShowEvent) {
dataGrid.addColumn {
"test-${it.id}"
}.setHeader("test")
generateData()
}
private fun generateData() {
val testEntities = List(10) {
metadata.create(TestEntity::class.java)
}
testDc.mutableItems.addAll(testEntities)
}
При первом открытии экрана все нормально:
Если не закрывать экран и попытаться вновь нажать на него в пункте меню то видимо экран не закрывается и вновь вызывает BeforeShowEvent
:
Попробовал перенести код из BeforeShowEvent
в ReadyEvent
- то-же самое
С InitEvent
все нормально.
jmix 2.0.2