package org.lightadmin.demo.config; import org.lightadmin.api.config.AdministrationConfiguration; import org.lightadmin.api.config.builder.*; import org.lightadmin.api.config.unit.*; import org.lightadmin.demo.model.Product; import static org.lightadmin.api.config.utils.Editors.wysiwyg; import static org.lightadmin.api.config.utils.EnumElement.element; @SuppressWarnings("unused") public class ProductAdministration extends AdministrationConfiguration<Product> { public EntityMetadataConfigurationUnit configuration(EntityMetadataConfigurationUnitBuilder configurationBuilder) { return configurationBuilder .nameField("name") .singularName("Product") .pluralName("Products") .field("type").enumeration( element("SP", "Smartphone"), element("TB", "Tablet"), element("OT", "Other")) .build(); } public ScreenContextConfigurationUnit screenContext(ScreenContextConfigurationUnitBuilder screenContextBuilder) { return screenContextBuilder.screenName("Products Administration").build(); } public FieldSetConfigurationUnit listView(FieldSetConfigurationUnitBuilder fragmentBuilder) { return fragmentBuilder .field("name").caption("Name") .field("type").caption("Type").enumeration( element("SP", "S"), element("TB", "T"), element("OT", "O")) .field("productType").caption("Product Type") .field("description").caption("Description") .field("price").caption("Price") .field("retired").caption("Out of production") .field("releaseDate").caption("Released on") .field("releaseTime").caption("Released on time") .field("picture").caption("Picture").build(); } public FieldSetConfigurationUnit showView(final FieldSetConfigurationUnitBuilder fragmentBuilder) { return fragmentBuilder .field("name").caption("Name") .field("type").caption("Type") .field("productType").caption("Product Type") .field("description").caption("Description") .field("price").caption("Price") .field("retired").caption("Out of production") .field("releaseDate").caption("Released on") .field("releaseTime").caption("Released on time") .field("picture").caption("Picture").build(); } public FieldSetConfigurationUnit formView(final PersistentFieldSetConfigurationUnitBuilder fragmentBuilder) { return fragmentBuilder .field("name").caption("Name") .field("type").caption("Type") .field("productType").caption("Product Type").enumeration( element("SMARTPHONE", "Smartphone"), element("TABLET", "Tablet"), element("OTHER", "Other")) .field("description").caption("Description").editor(wysiwyg()) .field("price").caption("Price") .field("releaseDate").caption("Released on") .field("releaseTime").caption("Released on time") .field("retired").caption("Out of production") .field("picture").caption("Picture").build(); } public FieldSetConfigurationUnit quickView(final FieldSetConfigurationUnitBuilder fragmentBuilder) { return fragmentBuilder .field("uuid").caption("UUID") .field("name").caption("Name") .field("type").caption("Type") .field("description").caption("Description") .field("retired").caption("Out of production") .field("releaseDate").caption("Released on") .field("picture").caption("Picture").build(); } public FiltersConfigurationUnit filters(final FiltersConfigurationUnitBuilder filterBuilder) { return filterBuilder .filter("Name", "name") .filter("Description", "description") .filter("Price", "price") .filter("Released on", "releaseDate") .filter("Released on time", "releaseTime") .filter("Retired", "retired").build(); } public SidebarsConfigurationUnit sidebars(final SidebarsConfigurationUnitBuilder sidebarsBuilder) { return sidebarsBuilder .sidebar("Custom Sidebar", "/WEB-INF/lightadmin/sidebars/sidebar.jsp") .build(); } }