**Adichatz** generates XML file using **Scenarios** and from the XML files use **Generators** which produce **Java** classes. \\
The result (editors, navigators, entities...) is rather a draft but by changing manually Adichatz XML file, developers can easily improve layouts and behaviors.
==== Original XML File ====
return null==value ? "" : #FV().name;
return null==value ? "" : #FV().name;
return #FV() < 1900 || #FV() > 2155;
return null == value ? null : ((java.math.BigDecimal) value).doubleValue();
return null == value ? null : new java.math.BigDecimal((Double) value);
return null == value ? null : ((java.math.BigDecimal) value).doubleValue();
return null == value ? null : new java.math.BigDecimal((Double) value);
return ((#MODELPACKAGE().MpaaRatingEnum) element).getValue();
return java.util.Arrays.asList(#MODELPACKAGE().MpaaRatingEnum.values());
return java.util.Arrays.copyOf((Object[]) value, ((Object[]) value).length, String[].class);
==== Original layout ====
{{ tutorial:film_detail_generated.jpg?550 | Film detail (brute)}}
Using Adichatz XML file editor, it is very easy to change completely the behavior:
==== Improved XML File ====
return null==value ? "" : #FV().name;
return null==value ? "" : #FV().name;
return ((#MODELPACKAGE().MpaaRatingEnum) element).getValue();
return java.util.Arrays.asList(#MODELPACKAGE().MpaaRatingEnum.values());
#BEAN().isActive()
#CONTROLLER(detailContainer).reflowControllers();
return java.util.Arrays.copyOf((Object[]) value, ((Object[]) value).length, String[].class);
==== Improved layout ====
{{{{tutorial:entity_editor:1_detail.jpg ?550 | Film detail (improved)}}
The differences are:
* A better layout.
* an Image field rather a Text field containing an URL.
* Combo field replace a text field.
* A dynamic block for the rent issue.
So in a few minutes you can completely change the behavior of generated editors. That only a small part of what you can do.
For example, Three other staways are available:
* add [[features:create_listener|listeners]].
* extends [[features:extend_controller|controllers]].
* add [[features:validation_process|Validation process]].