use of org.jowidgets.cap.ui.api.filter.IUiBooleanFilterBuilder in project jo-client-platform by jo-source.
the class UiFilterToolsImpl method removeProperty.
@SuppressWarnings("unchecked")
@Override
public IUiFilter removeProperty(final IUiFilter sourceFilter, final String propertyName) {
Assert.paramNotNull(sourceFilter, "sourceFilter");
Assert.paramNotNull(propertyName, "propertyName");
final IUiFilterFactory filterFactory = CapUiToolkit.filterToolkit().filterFactory();
if (sourceFilter instanceof IUiBooleanFilter) {
boolean empty = true;
final IUiBooleanFilter source = (IUiBooleanFilter) sourceFilter;
final IUiBooleanFilterBuilder builder = filterFactory.booleanFilterBuilder();
builder.setOperator(source.getOperator());
builder.setInverted(source.isInverted());
for (final IUiFilter childFilter : source.getFilters()) {
final IUiFilter childResultFilter = removeProperty(childFilter, propertyName);
if (childResultFilter != null) {
builder.addFilter(childResultFilter);
empty = false;
}
}
if (empty) {
return null;
} else {
return builder.build();
}
} else if (sourceFilter instanceof IUiArithmeticFilter<?>) {
final IUiArithmeticFilter<Object> source = (IUiArithmeticFilter<Object>) sourceFilter;
if (propertyName.equals(source.getPropertyName())) {
return null;
} else {
return source;
}
} else if (sourceFilter instanceof IUiArithmeticPropertyFilter<?>) {
final IUiArithmeticPropertyFilter<Object> source = (IUiArithmeticPropertyFilter<Object>) sourceFilter;
if (propertyName.equals(source.getPropertyName())) {
return null;
} else {
return source;
}
} else if (sourceFilter instanceof IUiCustomFilter<?>) {
final IUiCustomFilter<Object> source = (IUiCustomFilter<Object>) sourceFilter;
if (propertyName.equals(source.getPropertyName())) {
return null;
} else {
return source;
}
} else {
throw new IllegalArgumentException("The source filter type '" + sourceFilter.getClass().getName() + "' is not supported");
}
}
use of org.jowidgets.cap.ui.api.filter.IUiBooleanFilterBuilder in project jo-client-platform by jo-source.
the class UiFilterToolsImpl method invert.
@SuppressWarnings("unchecked")
@Override
public IUiFilter invert(final IUiFilter sourceFilter) {
Assert.paramNotNull(sourceFilter, "sourceFilter");
final IUiFilterFactory filterFactory = CapUiToolkit.filterToolkit().filterFactory();
if (sourceFilter instanceof IUiBooleanFilter) {
final IUiBooleanFilter source = (IUiBooleanFilter) sourceFilter;
final IUiBooleanFilterBuilder builder = filterFactory.booleanFilterBuilder();
builder.setOperator(source.getOperator());
builder.setInverted(!source.isInverted());
builder.setFilters(source.getFilters());
return builder.build();
} else if (sourceFilter instanceof IUiArithmeticFilter<?>) {
final IUiArithmeticFilter<Object> source = (IUiArithmeticFilter<Object>) sourceFilter;
final IUiArithmeticFilterBuilder<Object> builder = filterFactory.arithmeticFilterBuilder();
builder.setOperator(source.getOperator());
builder.setPropertyName(source.getPropertyName());
builder.setParameters(source.getParameters());
builder.setConfig(source.getConfig());
builder.setInverted(!source.isInverted());
return builder.build();
} else if (sourceFilter instanceof IUiArithmeticPropertyFilter<?>) {
final IUiArithmeticPropertyFilter<Object> source = (IUiArithmeticPropertyFilter<Object>) sourceFilter;
final IUiArithmeticPropertyFilterBuilder<Object> builder = filterFactory.arithmeticPropertyFilterBuilder();
builder.setOperator(source.getOperator());
builder.setPropertyName(source.getPropertyName());
builder.setRightHandPropertyNames(source.getRightHandPropertyNames());
builder.setConfig(source.getConfig());
builder.setInverted(!source.isInverted());
return builder.build();
} else if (sourceFilter instanceof IUiCustomFilter<?>) {
final IUiCustomFilter<Object> source = (IUiCustomFilter<Object>) sourceFilter;
final IUiCustomFilterBuilder<Object> builder = filterFactory.customFilterBuilder();
builder.setOperator(source.getOperator());
builder.setPropertyName(source.getPropertyName());
builder.setValue(source.getValue());
builder.setFilterType(source.getFilterType());
builder.setConfig(source.getConfig());
builder.setInverted(!source.isInverted());
return builder.build();
} else {
throw new IllegalArgumentException("The source filter type '" + sourceFilter.getClass().getName() + "' is not supported");
}
}
use of org.jowidgets.cap.ui.api.filter.IUiBooleanFilterBuilder in project jo-client-platform by jo-source.
the class UiFilterToolsImpl method addFilter.
@Override
public IUiFilter addFilter(final IUiFilter sourceFilter, final IUiFilter addedFilter) {
Assert.paramNotNull(addedFilter, "addedFilter");
final IUiFilterFactory filterFactory = CapUiToolkit.filterToolkit().filterFactory();
if (sourceFilter == null) {
return addedFilter;
} else if (sourceFilter instanceof IUiBooleanFilter) {
final IUiBooleanFilter booleanSourceFilter = (IUiBooleanFilter) sourceFilter;
final IUiBooleanFilterBuilder builder = filterFactory.booleanFilterBuilder();
builder.setOperator(booleanSourceFilter.getOperator());
builder.setInverted(booleanSourceFilter.isInverted());
builder.setFilters(booleanSourceFilter.getFilters());
builder.addFilter(addedFilter);
return builder.build();
} else {
final IUiBooleanFilterBuilder builder = filterFactory.booleanFilterBuilder();
builder.setOperator(BooleanOperator.AND);
builder.addFilter(sourceFilter);
builder.addFilter(addedFilter);
return builder.build();
}
}
use of org.jowidgets.cap.ui.api.filter.IUiBooleanFilterBuilder in project jo-client-platform by jo-source.
the class BeanLinkPanelImpl method doFilter.
private void doFilter(final IBeanProxy<LINKABLE_BEAN_TYPE> bean) {
final IBeanTableModel<LINKABLE_BEAN_TYPE> tableModel = linkableTable.getModel();
final IFilterToolkit filterToolkit = CapUiToolkit.filterToolkit();
final IUiFilterFactory filterFactory = filterToolkit.filterFactory();
final IUiBooleanFilterBuilder filterBuilder;
filterBuilder = filterFactory.booleanFilterBuilder().setOperator(BooleanOperator.AND);
if (bean != null) {
for (final IBeanModification modification : bean.getModifications()) {
final String propertyName = modification.getPropertyName();
final IAttribute<Object> attribute = tableModel.getAttribute(propertyName);
final IIncludingFilterFactory<Object> includingFilterFactory = getIncludingFilterFactory(attribute);
if (includingFilterFactory != null) {
final Object operand = getModifiedFilterOperand(modification.getNewValue());
filterBuilder.addFilter(includingFilterFactory.getIncludingFilter(operand));
}
}
}
if (filterBuilder.hasEntries()) {
tableModel.setFilter(BEAN_LINK_SEARCH_FILTER_ID, filterBuilder.build());
} else {
tableModel.setFilter(BEAN_LINK_SEARCH_FILTER_ID, null);
}
tableModel.loadScheduled(LOAD_DELAY);
}
Aggregations