FlexibleSearchLayout extends AbstractModelSearchLayout<ID, T> { public FlexibleSearchLayout(BaseService<ID, T> service, EntityModel<T> entityModel, QueryType queryType, FormOptions formOptions, SortOrder<?> sortOrder, FetchJoinInformation... joins) { super(service, entityModel, queryType, formOptions, sortOrder, joins); } FlexibleSearchLayout(BaseService<ID, T> service, EntityModel<T> entityModel, QueryType queryType,
            FormOptions formOptions, SortOrder<?> sortOrder, FetchJoinInformation... joins); void addBasicStringFilterProperty(String property); @Override ModelBasedFlexibleSearchForm<ID, T> getSearchForm(); @Override void setSearchValue(String propertyId, Object value); @Override void setSearchValue(String propertyId, Object value, Object auxValue);  }
@Test public void testFlexibleSearchLayout() { FlexibleSearchLayout<Integer, TestEntity> layout = createLayout(new FormOptions()); layout.build(); assertTrue(layout.getAddButton().isVisible()); assertTrue(layout.getEditButton().isVisible()); assertFalse(layout.getRemoveButton().isVisible()); assertEquals("name", layout.getSortOrders().get(0).getSorted()); assertEquals(SortDirection.ASCENDING, layout.getSortOrders().get(0).getDirection()); TestEntity entity = layout.createEntity(); assertNotNull(entity); layout.getGridWrapper().forceSearch(); assertEquals(3, layout.getGridWrapper().getDataProviderSize()); layout.select(e1); }