"Add Resources from GP Cloud" improvements - #2814
Conversation
dbarashev
commented
Aug 16, 2026
- Properly handle exceptions in HTTP layer
- Enable/disable "Add" button depending on the selected resources
- Properly handle exceptions in HTTP layer - Enable/disable "Add" button depending on the selected resources
|
Claude finished @dbarashev's task in 3m 57s —— View job Code review — PR #2814
The refactoring is a clear improvement: check state moved onto the DTO instead of a side map, exceptions no longer swallowed inside Blocking1. Clicking the checkbox does not update the model — Apply stays disabled (
Repro: open the dialog, click the checkbox next to a resource → checkbox visibly toggles, but Suggested fix — drive everything from one listener instead of the click handler: private val isChecked = SimpleBooleanProperty().also { prop ->
checkBox.selectedProperty().bindBidirectional(prop) // bind once, see #2
prop.addListener { _, _, newValue ->
item?.let { it.isChecked = newValue }
onCheckedToggle()
}
}2. Cell recycling leaks check state into other rows (
Related: 3.
loadTeams().map { async { loadTeamResources(it) } }.awaitAll().flatten().distinctBy { it.email }Worth fixing4. The 5. Nothing ever assigns 6.
7. The scope is only cancelled by the Cancel button ( ESC and the window close button go through 8. HTTP layer only wraps Given the PR's goal, this leaves the common failures uncovered: Nits
I did not build or run the module, so the above is from reading the code only. |