package au.com.vaadinutils.crud.example;
import au.com.vaadinutils.crud.BaseCrudView;
import au.com.vaadinutils.crud.HeadingPropertySet;
import au.com.vaadinutils.crud.MultiColumnFormLayout;
import au.com.vaadinutils.crud.ValidatingFieldGroup;
import au.com.vaadinutils.crud.example.entities.TblExample;
import au.com.vaadinutils.dao.BatchingPerRequestEntityProvider;
import au.com.vaadinutils.layout.TopVerticalLayout;
import com.vaadin.addon.jpacontainer.JPAContainer;
import com.vaadin.data.Container.Filter;
import com.vaadin.data.util.filter.Or;
import com.vaadin.data.util.filter.SimpleStringFilter;
import com.vaadin.ui.AbstractLayout;
import com.vaadin.ui.VerticalLayout;
/** A start view for navigating to the main view */
public class ExampleLayout extends BaseCrudView<TblExample>
{
public ExampleLayout()
{
JPAContainer<TblExample> container = makeJPAContainer();
HeadingPropertySet headings = new HeadingPropertySet.Builder<TblExample>()
.addColumn("Name", "name").addColumn("Host", "host").addColumn("Type", "type").build();
init(TblExample.class, container, headings);
}
public JPAContainer<TblExample> makeJPAContainer()
{
JPAContainer<TblExample> container = new JPAContainer<TblExample>(TblExample.class);
container.setEntityProvider(new BatchingPerRequestEntityProvider<TblExample>(TblExample.class));
return container;
}
private static final long serialVersionUID = 1L;
public AbstractLayout buildEditor(ValidatingFieldGroup<TblExample> validatingFieldGroup)
{
VerticalLayout main = new VerticalLayout();
MultiColumnFormLayout<TblExample> layout = new MultiColumnFormLayout<TblExample>(1, validatingFieldGroup);
layout.setColumnFieldWidth(0, 250);
TopVerticalLayout wrapper = new TopVerticalLayout();
wrapper.addComponent(layout);
main.addComponent(wrapper);
layout.bindTextField("Name", "name");
layout.bindTextField("Host", "host");
layout.bindTextField("Schema", "schema");
layout.bindTextField("Username", "username");
layout.bindPasswordField("Password", "password");
return main;
}
@Override
protected String getTitleText()
{
return "Example";
}
@Override
protected Filter getContainerFilter(String filterText, boolean advancedSearchActive)
{
Filter filter = null;
String[] searchFields = new String[] { "name" };
for (String property : searchFields)
{
if (filter == null)
{
filter = new SimpleStringFilter(property, filterText, true, false);
}
filter = new Or(new SimpleStringFilter(property, filterText, true, false), filter);
}
return filter;
}
}