Skip to content

Commit ef09dd3

Browse files
Merge pull request #52 from dynamiatools/26.2.x
Refactor DefaultFieldCustomizer and TableViewRowRenderer to improve component configuration
2 parents 7425286 + d4a1087 commit ef09dd3

File tree

3 files changed

+24
-6
lines changed

3 files changed

+24
-6
lines changed

platform/ui/zk/src/main/java/tools/dynamia/zk/crud/ui/EntityPickerBox.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ public void setSelected(Object object) {
325325
}
326326
}
327327

328-
public final void setEntityClass(String entityClass) {
328+
public void setEntityClass(String entityClass) {
329329
try {
330330
Class clazz = Class.forName(entityClass);
331331
setEntityClass(clazz);
@@ -336,11 +336,11 @@ public final void setEntityClass(String entityClass) {
336336
}
337337
}
338338

339-
public final void setEntityClassName(String entityClassName) {
339+
public void setEntityClassName(String entityClassName) {
340340
setEntityClass(entityClassName);
341341
}
342342

343-
public final void setEntityClass(Class entityClass) {
343+
public void setEntityClass(Class entityClass) {
344344
this.entityClass = entityClass;
345345
if (entityClass != null) {
346346
entityName = StringUtils.addSpaceBetweenWords(entityClass.getSimpleName());

platform/ui/zk/src/main/java/tools/dynamia/zk/viewers/DefaultFieldCustomizer.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,13 +115,20 @@ public void customize(String viewTypeName, Field field) {
115115
} else if (field.getFieldClass() == Boolean.class || field.getFieldClass() == boolean.class) {
116116
field.setComponentClass(Checkbox.class);
117117
field.set("disabled", true);
118-
} else {
119-
field.setComponentClass(Label.class);
118+
}
119+
120+
if (field.getComponent() != null && !field.getComponent().isBlank() && field.getComponentClass() == null) {
121+
field.setComponentClass(ComponentAliasIndex.getInstance().get(field.getComponent()));
120122
}
121123

122124
if (field.getComponentClass() != null && field.getComponent() == null) {
123125
field.setComponent(ComponentAliasIndex.getInstance().getAlias(field.getComponentClass()));
124126
}
127+
128+
if (field.getComponentClass() == null && field.getComponent() == null) {
129+
field.setComponentClass(Label.class);
130+
field.setComponent("label");
131+
}
125132
}
126133

127134

platform/ui/zk/src/main/java/tools/dynamia/zk/viewers/table/TableViewRowRenderer.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import tools.dynamia.viewers.util.ComponentCustomizerUtil;
3939
import tools.dynamia.viewers.util.ViewRendererUtil;
4040
import tools.dynamia.viewers.util.Viewers;
41+
import tools.dynamia.zk.ComponentAliasIndex;
4142
import tools.dynamia.zk.actions.BootstrapButtonActionRenderer;
4243
import tools.dynamia.zk.converters.Util;
4344
import tools.dynamia.zk.ui.Import;
@@ -288,7 +289,17 @@ protected void renderFieldCell(Binder binder, Listitem item, Object data,
288289
}
289290

290291
protected Component createFieldComponent(Object data, Object cellValue, Field field, Listcell cell) {
291-
Class<?> componentClass = field.getComponentClass() != null ? field.getComponentClass() : Label.class;
292+
Class<?> componentClass = null;
293+
if (field.getComponentClass() != null) {
294+
componentClass = field.getComponentClass();
295+
} else if (field.getComponent() != null && !field.getComponent().isEmpty()) {
296+
componentClass = ComponentAliasIndex.getInstance().get(field.getComponent());
297+
}
298+
299+
if (componentClass == null) {
300+
componentClass = Label.class;
301+
}
302+
292303
Component component = (Component) ObjectOperations.newInstance(componentClass);
293304
if (component != null) {
294305
ZKUtil.changeReadOnly(component, tableView.isReadonly());

0 commit comments

Comments
 (0)