Skip to content

Commit fa0d458

Browse files
Refactor StorageCombobox and ComponentAliasIndex to improve selection logic and initialize classes
1 parent f96a177 commit fa0d458

3 files changed

Lines changed: 16 additions & 2 deletions

File tree

extensions/entity-files/sources/ui/src/main/java/tools/dynamia/modules/entityfile/ui/components/StorageCombobox.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
package tools.dynamia.modules.entityfile.ui.components;
1919

2020
import java.io.Serial;
21+
import java.util.Objects;
2122
import java.util.Optional;
2223

2324
import org.zkoss.zul.Combobox;
@@ -29,6 +30,10 @@
2930
import tools.dynamia.zk.ComponentAliasIndex;
3031
import tools.dynamia.zk.util.ZKUtil;
3132

33+
/**
34+
* Custom Combobox for EntityFileStorage selection
35+
* @author Mario A. Serrano Leones
36+
*/
3237
public class StorageCombobox extends Combobox {
3338

3439
/**
@@ -65,7 +70,7 @@ public String getSelected() {
6570
}
6671

6772
public void setSelected(String selected) {
68-
if (selected != this.selected) {
73+
if (!Objects.equals(selected, this.selected)) {
6974
this.selected = selected;
7075
try {
7176
Optional<EntityFileStorage> selectedStorage = Containers.get().findObjects(EntityFileStorage.class)

platform/ui/zk/src/main/java/tools/dynamia/zk/ComponentAliasIndex.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717
package tools.dynamia.zk;
1818

19+
import org.springframework.util.ClassUtils;
1920
import org.zkoss.zk.ui.Component;
2021
import org.zkoss.zul.*;
2122
import tools.dynamia.commons.ObjectOperations;
@@ -105,6 +106,7 @@ public class ComponentAliasIndex extends HashMap<String, Class<? extends Compone
105106
Class clazz = ObjectOperations.findClass(aliases.getProperty(alias));
106107
if (clazz != null) {
107108
getInstance().add(alias, clazz);
109+
initClass(clazz);
108110
}
109111
} catch (Exception ex) {
110112
logger.error(
@@ -120,6 +122,13 @@ public class ComponentAliasIndex extends HashMap<String, Class<? extends Compone
120122

121123
}
122124

125+
private static void initClass(Class clazz) {
126+
try {
127+
ObjectOperations.newInstance(clazz);
128+
} catch (Exception ex) {
129+
}
130+
}
131+
123132
public static ComponentAliasIndex getInstance() {
124133
return INDEX;
125134
}

platform/ui/zk/src/main/java/tools/dynamia/zk/util/ZKUtil.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ public static void fillCombobox(Combobox combo, Collection data, boolean live) {
206206
* @param live if true, the model reflects changes in the underlying collection
207207
*/
208208
public static void fillCombobox(Combobox combo, Collection data, Object selected, boolean live) {
209-
if (combo != null) {
209+
if (combo != null && ZKUtil.isInEventListener()) {
210210
ListModelList model = new ListModelList<>(data);
211211
if (selected != null) {
212212
model.addToSelection(selected);

0 commit comments

Comments
 (0)