package org.lightadmin.demo.config;
import org.lightadmin.api.config.AdministrationConfiguration;
import org.lightadmin.api.config.builder.*;
import org.lightadmin.api.config.unit.EntityMetadataConfigurationUnit;
import org.lightadmin.api.config.unit.FieldSetConfigurationUnit;
import org.lightadmin.api.config.unit.FiltersConfigurationUnit;
import org.lightadmin.api.config.unit.ScreenContextConfigurationUnit;
import org.lightadmin.api.config.utils.EntityNameExtractor;
import org.lightadmin.demo.model.Address;
@SuppressWarnings("unused")
public class AddressAdministration extends AdministrationConfiguration<Address> {
public EntityMetadataConfigurationUnit configuration(EntityMetadataConfigurationUnitBuilder configurationBuilder) {
return configurationBuilder
.nameExtractor(addressNameExtractor())
.singularName("Address")
.pluralName("Addresses").build();
}
public ScreenContextConfigurationUnit screenContext(ScreenContextConfigurationUnitBuilder screenContextBuilder) {
return screenContextBuilder.screenName("Addresses Administration").build();
}
public FieldSetConfigurationUnit listView(FieldSetConfigurationUnitBuilder fragmentBuilder) {
return fragmentBuilder
.field("country").caption("Country")
.field("city").caption("City")
.field("street").caption("Street").build();
}
public FieldSetConfigurationUnit quickView(FieldSetConfigurationUnitBuilder fragmentBuilder) {
return fragmentBuilder
.field("country").caption("Country")
.field("city").caption("City").build();
}
public FieldSetConfigurationUnit showView(final FieldSetConfigurationUnitBuilder fragmentBuilder) {
return fragmentBuilder
.field("country").caption("Country")
.field("city").caption("City")
.field("street").caption("Street").build();
}
public FieldSetConfigurationUnit formView(final PersistentFieldSetConfigurationUnitBuilder fragmentBuilder) {
return fragmentBuilder
.field("country").caption("Country")
.field("city").caption("City")
.field("street").caption("Street")
.field("customer").caption("Customer").build();
}
public FiltersConfigurationUnit filters(final FiltersConfigurationUnitBuilder filterBuilder) {
return filterBuilder
.filter("Country", "country")
.filter("City", "city")
.filter("Street", "street")
.filter("Customer", "customer").build();
}
private static EntityNameExtractor<Address> addressNameExtractor() {
return new EntityNameExtractor<Address>() {
@Override
public String apply(final Address address) {
return String.format("%s, %s, %s", address.getCountry(), address.getCity(), address.getStreet());
}
};
}
}