ProcessInstanceLogBasicFiltersPresenter extends BasicFiltersPresenter { @Override public void loadFilters() { final Map<String, String> logStateOptions = new HashMap<>(); logStateOptions.put(LogUtils.NODE_ENTERED.toString(), constants.NodeEntered()); logStateOptions.put(LogUtils.NODE_COMPLETED.toString(), constants.NodeCompleted()); view.addMultiSelectFilter(constants.EventType(), logStateOptions, f -> { final List<String> values = f.getValue(); final ColumnFilter columnFilter = in(COLUMN_LOG_TYPE, values); addSearchFilterList(f, columnFilter); } ); final Map<String, String> logTypeOptions = new HashMap<>(); logTypeOptions.put(LogUtils.ALL_NODES, constants.All()); logTypeOptions.put(LogUtils.NODE_TYPE_HUMAN_TASK, constants.Human_Tasks()); logTypeOptions.put(LogUtils.NODE_TYPE_START, constants.StartNodes()); logTypeOptions.put(LogUtils.NODE_TYPE_END, constants.EndNodes()); logTypeOptions.put(LogUtils.NODE_TYPE_ACTION, constants.ActionNodes()); logTypeOptions.put(LogUtils.NODE_TYPE_MILESTONE, constants.Milestones()); logTypeOptions.put(LogUtils.NODE_TYPE_SUBPROCESS, constants.SubProcesses()); logTypeOptions.put(LogUtils.NODE_TYPE_RULE_SET, constants.RuleSets()); logTypeOptions.put(LogUtils.NODE_TYPE_WORK_ITEM, constants.WorkItems()); view.addMultiSelectFilter(constants.EventNodeType(), logTypeOptions, f -> { final List<String> values = f.getValue(); final ColumnFilter columnFilter = in(COLUMN_LOG_NODE_TYPE, values); if (values != null && values.contains(LogUtils.ALL_NODES)) { removeSearchFilter(f, columnFilter); checkSelectFilterValues(constants.EventNodeType(), Arrays.asList(LogUtils.NODE_TYPE_HUMAN_TASK, LogUtils.NODE_TYPE_START, LogUtils.NODE_TYPE_END, LogUtils.NODE_TYPE_ACTION, LogUtils.NODE_TYPE_MILESTONE, LogUtils.NODE_TYPE_SUBPROCESS, LogUtils.NODE_TYPE_RULE_SET, LogUtils.NODE_TYPE_WORK_ITEM)); } else { addSearchFilterList(f, columnFilter); } }); view.hideFilterBySection(); }  @Override String getDataSetId(); @Override void loadFilters(); void checkSelectFilterValues(String label,
                                        List<String> values);  }
@Override @Test public void testLoadFilters() { presenter.loadFilters(); final InOrder inOrder = inOrder(getView()); inOrder.verify(getView()).addMultiSelectFilter(eq(Constants.INSTANCE.EventType()), any(), any()); inOrder.verify(getView()).addMultiSelectFilter(eq(Constants.INSTANCE.EventNodeType()), any(), any()); inOrder.verify(getView()).hideFilterBySection(); }