use of com.vaadin.data.Container.Filter in project VaadinUtils by rlsutton1.
the class TwinColumnSearchableSelect method createAvailableTable.
private void createAvailableTable() {
availableTable = new SearchableSelectableEntityTable<C>(this.getClass().getSimpleName()) {
private static final long serialVersionUID = 1L;
@Override
public HeadingPropertySet getHeadingPropertySet() {
return new HeadingPropertySet.Builder<C>().addColumn(availableColumnHeader, itemLabel).build();
}
@Override
public Filterable getContainer() {
return availableContainer;
}
@Override
protected Filter getContainerFilter(String filterString, boolean advancedSearchActive) {
Filter searchFilter = null;
if (filterString != null && filterString.length() > 0) {
searchFilter = getSearchFilter(filterString);
}
return NullFilter.and(baselineFilter, selectedFilter, searchFilter);
}
@Override
protected String getTitle() {
return "";
}
};
availableTable.addItemClickListener(new ItemClickListener() {
private static final long serialVersionUID = 1L;
@Override
public void itemClick(ItemClickEvent event) {
if (event.isDoubleClick()) {
addButton.click();
}
}
});
availableTable.disableSelectable();
availableTable.setWidth(200, Unit.PIXELS);
availableTable.setHeight(300, Unit.PIXELS);
}
use of com.vaadin.data.Container.Filter in project VaadinUtils by rlsutton1.
the class TwinColumnSearchableSelect method refreshSelected.
private void refreshSelected() {
final List<Long> selectedIds = beans.getItemIds();
if (selectedIds.size() == 1) {
selectedFilter = new Not(new Compare.Equal(beanIdField.getName(), selectedIds.get(0)));
availableTable.triggerFilter();
return;
}
final Vector<Filter> filters = new Vector<>();
for (Long id : selectedIds) {
filters.add(new Compare.Equal(beanIdField.getName(), id));
}
selectedFilter = new Not(new Or(filters.toArray(new Filter[filters.size()])));
availableTable.triggerFilter();
}
use of com.vaadin.data.Container.Filter in project VaadinUtils by rlsutton1.
the class TwinColumnSelect method refreshSelected.
private void refreshSelected() {
final List<Long> selectedIds = selectedBeans.getItemIds();
if (selectedIds.size() == 1) {
selectedFilter = new Not(new Compare.Equal(beanIdField.getName(), selectedIds.get(0)));
availableGrid.triggerFilter();
return;
}
final Vector<Filter> filters = new Vector<>();
for (Long id : selectedIds) {
filters.add(new Compare.Equal(beanIdField.getName(), id));
}
selectedFilter = new Not(new Or(filters.toArray(new Filter[filters.size()])));
availableGrid.triggerFilter();
}
use of com.vaadin.data.Container.Filter in project VaadinUtils by rlsutton1.
the class ReportParameterDependantTable method applyParentFilters.
private void applyParentFilters(Collection<Long> selectedIds) {
super.removeAllContainerFilters();
boolean filtersAdded = false;
if (selectedIds.size() > 0) {
Filter filter = null;
Set<Long> ids = new HashSet<>();
for (Long parentId : selectedIds) {
for (Long id : mapParentIdToPrimaryKey(parentId)) {
if (id != null) {
ids.add(id);
}
}
}
// set filters on de-duped id list
for (Long id : ids) {
filtersAdded = true;
if (filter == null) {
filter = new Compare.Equal(getPrimaryKeyFieldName(), id);
} else {
filter = new Or(filter, new Compare.Equal(getPrimaryKeyFieldName(), id));
}
}
if (filter != null) {
addContainerFilter(filter);
}
}
if (!filtersAdded) {
addContainerFilter(new Compare.Equal(getPrimaryKeyFieldName(), -1));
}
grid.deselectAll();
}
use of com.vaadin.data.Container.Filter in project VaadinUtils by rlsutton1.
the class ReportParameterDependantTableSingleSelect method setParentFilter.
/**
* provide the parent ReportParameterTable, this method will attach this
* parameter as a value change listener so that selections will cascade to
* the reportparameter
*
* @param parent
*/
public void setParentFilter(ReportParameterSelectionListener<P> parent) {
ValueChangeListener listener = new ValueChangeListener() {
private static final long serialVersionUID = -3033912391060894738L;
@Override
public void valueChange(ValueChangeEvent event) {
@SuppressWarnings("unchecked") Collection<Long> selectedIds = (Collection<Long>) event.getProperty().getValue();
removeAllContainerFilters();
boolean filtersAdded = false;
if (selectedIds != null) {
if (selectedIds.size() > 0) {
Filter filter = null;
for (Long parentId : selectedIds) {
for (Long id : mapParentIdToPrimaryKey(parentId)) {
filtersAdded = true;
if (filter == null) {
filter = new Compare.Equal(getPrimaryKeyFieldName(), id);
} else {
filter = new Or(filter, new Compare.Equal(getPrimaryKeyFieldName(), id));
}
}
}
if (filter != null) {
addContainerFilter(filter);
}
}
}
if (!filtersAdded) {
addContainerFilter(new Compare.Equal(getPrimaryKeyFieldName(), -1));
}
grid.deselectAll();
}
};
addContainerFilter(new Compare.Equal(getPrimaryKeyFieldName(), -1));
parent.addSelectionListener(listener);
}
Aggregations