package au.com.vaadinutils.crud.adaptor.example; import java.util.List; import javax.persistence.metamodel.SingularAttribute; import com.vaadin.addon.jpacontainer.EntityItem; import com.vaadin.addon.jpacontainer.JPAContainer; import com.vaadin.data.Container.Filter; import com.vaadin.ui.Component; import com.vaadin.ui.VerticalLayout; import au.com.vaadinutils.crud.CrudAction; import au.com.vaadinutils.crud.ParentCrud; import au.com.vaadinutils.crud.ValidatingFieldGroup; import au.com.vaadinutils.crud.adaptor.BaseCrudAdaptor; import au.com.vaadinutils.crud.adaptor.ChildCrudAdaptor; import au.com.vaadinutils.crud.adaptor.ChildCrudInterface; import au.com.vaadinutils.crud.adaptor.CrudAdaptor; import au.com.vaadinutils.jasper.scheduler.entities.ReportEmailScheduleEntity; import au.com.vaadinutils.jasper.scheduler.entities.ReportEmailScheduleEntity_; import au.com.vaadinutils.jasper.scheduler.entities.ReportEmailScheduledDateParameter; import au.com.vaadinutils.jasper.scheduler.entities.ReportEmailScheduledDateParameter_; /** * this class can be either a child crud or a basecrud for the type * ReportEmailScheduledDateParameter * * @author rsutton * */ public class ExampleCrud extends VerticalLayout implements ChildCrudInterface<ReportEmailScheduleEntity, ReportEmailScheduledDateParameter> { private static final long serialVersionUID = 1L; private CrudAdaptor<?, ReportEmailScheduledDateParameter> crud; /** * construct a child crud * * @param parent */ ExampleCrud(ParentCrud<ReportEmailScheduleEntity> parent) { crud = createChildCrud(parent); } /** * construct a parent crud */ ExampleCrud() { crud = createParentCrud(); } CrudAdaptor<?, ReportEmailScheduledDateParameter> createChildCrud(ParentCrud<ReportEmailScheduleEntity> parent) { return new ChildCrudAdaptor<>(this, parent, ReportEmailScheduleEntity.class, ReportEmailScheduledDateParameter.class, ReportEmailScheduleEntity_.iID, ReportEmailScheduledDateParameter_.iID); } CrudAdaptor<?, ReportEmailScheduledDateParameter> createParentCrud() { return new BaseCrudAdaptor<>(this); } @Override public Component buildEditor(ValidatingFieldGroup<ReportEmailScheduledDateParameter> fieldGroup2) { return new VerticalLayout(); } @Override public Filter getContainerFilter(String filterString, boolean advancedSearchActive) { // TODO Auto-generated method stub return null; } @Override public String getTitleText() { return "Example child/base crud"; } @Override public List<CrudAction<ReportEmailScheduledDateParameter>> getCrudActions() { return crud.getDefaultCrudActions(); } @Override public EntityItem<ReportEmailScheduledDateParameter> createNewEntity(EntityItem<ReportEmailScheduledDateParameter> newEntity, ReportEmailScheduledDateParameter previousEntity) throws InstantiationException, IllegalAccessException { return newEntity; } @Override public ReportEmailScheduledDateParameter preNew(ReportEmailScheduledDateParameter newEntity, ReportEmailScheduledDateParameter previousEntity) { return newEntity; } @Override public void rowChanged(EntityItem<ReportEmailScheduledDateParameter> item) { // TODO Auto-generated method stub } @Override public void postNew(EntityItem<ReportEmailScheduledDateParameter> newEntity) { // TODO Auto-generated method stub } @Override public void interceptSaveValues(EntityItem<ReportEmailScheduledDateParameter> entityItem) throws Exception { // TODO Auto-generated method stub } @Override public void resetFilters(JPAContainer<ReportEmailScheduledDateParameter> container) { // TODO Auto-generated method stub } @Override public SingularAttribute<ReportEmailScheduledDateParameter, String> getGuidAttribute() { // TODO Auto-generated method stub return null; } @Override public void associateChild(ReportEmailScheduleEntity newParent, ReportEmailScheduledDateParameter child) { // TODO Auto-generated method stub } @Override public String getNewButtonActionLabel() { return "Create New Date Parameter"; } @Override public void selectedParentRowChanged(EntityItem<ReportEmailScheduleEntity> item) { // TODO Auto-generated method stub } }