**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]].