/** * Clear any filter on the given column. * * @param columnId The name of the column to reset. */ public void filterReset(String columnId) { if (displayerSettings.isFilterEnabled()) { columnSelectionMap.remove(columnId); DataSetGroup groupOp = dataSetHandler.getGroupOperation(columnId); // Notify to those interested parties the reset event. if (displayerSettings.isFilterNotificationEnabled()) { for (DisplayerListener listener : listenerList) { listener.onFilterReset(this, Arrays.asList(groupOp)); } } // Apply the selection to this displayer if (displayerSettings.isFilterSelfApplyEnabled()) { dataSetHandler.drillUp(groupOp); redraw(); } } }
/** * Clear any filter on the given column. * * @param columnId The name of the column to reset. */ public void filterReset(String columnId) { if (displayerSettings.isFilterEnabled()) { columnSelectionMap.remove(columnId); DataSetGroup groupOp = dataSetHandler.getGroupOperation(columnId); // Notify to those interested parties the reset event. if (displayerSettings.isFilterNotificationEnabled()) { for (DisplayerListener listener : listenerList) { listener.onFilterReset(this, Arrays.asList(groupOp)); } } // Apply the selection to this displayer if (displayerSettings.isFilterSelfApplyEnabled()) { dataSetHandler.drillUp(groupOp); redraw(); } } }
@Test public void testNotifications() { AbstractDisplayer deptPieChart = (AbstractDisplayer) displayerLocator.lookupDisplayer(byDepartment); DisplayerListener listener = mock(DisplayerListener.class); deptPieChart.addListener(listener); deptPieChart.draw(); deptPieChart.filterUpdate(COLUMN_DEPARTMENT, 0); verify(listener).onFilterEnabled(eq(deptPieChart), any(DataSetGroup.class)); verify(listener, never()).onRedraw(deptPieChart); deptPieChart.filterReset(); verify(listener).onFilterReset(eq(deptPieChart), anyList()); verify(listener, never()).onRedraw(deptPieChart); }
@Test public void testNotifications() { AbstractDisplayer deptPieChart = (AbstractDisplayer) displayerLocator.lookupDisplayer(byDepartment); DisplayerListener listener = mock(DisplayerListener.class); deptPieChart.addListener(listener); deptPieChart.draw(); deptPieChart.filterUpdate(COLUMN_DEPARTMENT, 0); verify(listener).onFilterEnabled(eq(deptPieChart), any(DataSetGroup.class)); verify(listener, never()).onRedraw(deptPieChart); deptPieChart.filterReset(); verify(listener).onFilterReset(eq(deptPieChart), anyList()); verify(listener, never()).onRedraw(deptPieChart); }
@Test public void testResetMetric() { MetricDisplayer activeMetric = presenter.getActiveMetric(); activeMetric.filterApply(); reset(displayerListener, view); activeMetric.filterReset(); assertNull(presenter.getSelectedMetric()); verify(view).setHeaderText(i18n.allProcesses()); verify(displayerListener).onFilterReset(eq(activeMetric), any(DataSetFilter.class)); verify(displayerListener, times(1)).onFilterReset(any(Displayer.class), any(DataSetFilter.class)); // Check that only processes with status=active are shown DataSet dataSet = presenter.getProcessesTable().getDataSetHandler().getLastDataSet(); assertDataSetValues(dataSet, new String[][]{ {"1.00", "org.jbpm.test", "1", "Process A", "user1", "1.00", "1", "01/01/19 12:00", "", ""}, {"2.00", "org.jbpm.test", "1", "Process A", "user2", "1.00", "1", "01/01/19 12:00", "", ""}, {"3.00", "org.jbpm.test", "1", "Process B", "user1", "1.00", "1", "01/01/19 12:00", "", ""}, {"4.00", "org.jbpm.test", "1", "Process B", "user2", "2.00", "1", "01/01/19 12:00", "01/02/19 10:00", "100,000.00"} }, 0); }
@Test public void testSelectMetric() { presenter.resetCurrentMetric(); reset(view); reset(displayerListener); MetricDisplayer activeMetric = presenter.getActiveMetric(); activeMetric.filterApply(); assertEquals(presenter.getSelectedMetric(), activeMetric); verify(view).setHeaderText(i18n.activeProcesses()); verify(displayerListener).onFilterEnabled(eq(activeMetric), any(DataSetFilter.class)); verify(displayerListener, times(1)).onFilterEnabled(any(Displayer.class), any(DataSetFilter.class)); verify(displayerListener, never()).onFilterReset(any(Displayer.class), any(DataSetFilter.class)); // Check that only processes with status=active are shown DataSet dataSet = presenter.getProcessesTable().getDataSetHandler().getLastDataSet(); assertDataSetValues(dataSet, new String[][]{ {"1.00", "org.jbpm.test", "1", "Process A", "user1", "1.00", "1", "01/01/19 12:00", "", ""}, {"2.00", "org.jbpm.test", "1", "Process A", "user2", "1.00", "1", "01/01/19 12:00", "", ""}, {"3.00", "org.jbpm.test", "1", "Process B", "user1", "1.00", "1", "01/01/19 12:00", "", ""} }, 0); }
@Test public void testResetMetric() { MetricDisplayer inProgressMetric = presenter.getInProgressMetric(); inProgressMetric.filterApply(); reset(displayerListener, view); inProgressMetric.filterReset(); assertNull(presenter.getSelectedMetric()); verify(view).setHeaderText(i18n.allTasks()); verify(displayerListener).onFilterReset(eq(inProgressMetric), any(DataSetFilter.class)); verify(displayerListener, times(1)).onFilterReset(any(Displayer.class), any(DataSetFilter.class)); // Check that only tasks with status=InProgress are shown DataSet dataSet = presenter.getTasksTable().getDataSetHandler().getLastDataSet(); assertDataSetValues(dataSet, new String[][]{ {"1.00", "Process A", "Task 1", "user1", "InProgress", "01/01/19 10:00", "", ""}, {"4.00", "Process A", "Task 4", "user2", "InProgress", "01/01/19 10:00", "", ""}, {"8.00", "Process B", "Task 4", "user4", "Completed", "01/01/19 10:00", "12/02/19 16:00", "10,000.00"}, {"2.00", "Process A", "Task 2", "user1", "Completed", "01/01/19 09:00", "01/01/19 13:00", "9,000.00"}, {"3.00", "Process A", "Task 3", "user2", "Suspended", "01/01/19 08:00", "", ""}, {"7.00", "Process B", "Task 3", "user4", "Reserved", "01/01/19 08:00", "", ""}, {"6.00", "Process B", "Task 2", "user3", "Error", "01/01/19 07:00", "", ""}, {"5.00", "Process B", "Task 2", "user1", "InProgress", "01/01/19 06:00", "", ""} }, 0); }
@Test public void testSelectMetric() { presenter.resetCurrentMetric(); reset(view); reset(displayerListener); MetricDisplayer inProgressMetric = presenter.getInProgressMetric(); inProgressMetric.filterApply(); assertEquals(presenter.getSelectedMetric(), inProgressMetric); verify(view).setHeaderText(i18n.tasksInProgress()); verify(displayerListener).onFilterEnabled(eq(inProgressMetric), any(DataSetFilter.class)); verify(displayerListener, times(1)).onFilterEnabled(any(Displayer.class), any(DataSetFilter.class)); verify(displayerListener, never()).onFilterReset(any(Displayer.class), any(DataSetFilter.class)); // Check that only processes with status=active are shown DataSet dataSet = presenter.getTasksTable().getDataSetHandler().getLastDataSet(); assertDataSetValues(dataSet, new String[][]{ {"1.00", "Process A", "Task 1", "user1", "InProgress", "01/01/19 10:00", "", ""}, {"4.00", "Process A", "Task 4", "user2", "InProgress", "01/01/19 10:00", "", ""}, {"5.00", "Process B", "Task 2", "user1", "InProgress", "01/01/19 06:00", "", ""} }, 0); }
@Test public void testResetMetric() { MetricDisplayer activeMetric = presenter.getActiveMetric(); activeMetric.filterApply(); reset(displayerListener, view); activeMetric.filterReset(); assertNull(presenter.getSelectedMetric()); verify(view).setHeaderText(i18n.allProcesses()); verify(displayerListener).onFilterReset(eq(activeMetric), any(DataSetFilter.class)); verify(displayerListener, times(1)).onFilterReset(any(Displayer.class), any(DataSetFilter.class)); // Check that only processes with status=active are shown DataSet dataSet = presenter.getProcessesTable().getDataSetHandler().getLastDataSet(); assertDataSetValues(dataSet, new String[][]{ {"1.00", "org.jbpm.test", "1", "Process A", "user1", "1.00", "1", "01/01/19 12:00", "", ""}, {"2.00", "org.jbpm.test", "1", "Process A", "user2", "1.00", "1", "01/01/19 12:00", "", ""}, {"3.00", "org.jbpm.test", "1", "Process B", "user1", "1.00", "1", "01/01/19 12:00", "", ""}, {"4.00", "org.jbpm.test", "1", "Process B", "user2", "2.00", "1", "01/01/19 12:00", "01/02/19 10:00", "100,000.00"} }, 0); }
@Test public void testResetMetric() { MetricDisplayer activeMetric = presenter.getActiveMetric(); activeMetric.filterApply(); reset(displayerListener, view); activeMetric.filterReset(); assertNull(presenter.getSelectedMetric()); verify(view).setHeaderText(i18n.allProcesses()); verify(displayerListener).onFilterReset(eq(activeMetric), any(DataSetFilter.class)); verify(displayerListener, times(1)).onFilterReset(any(Displayer.class), any(DataSetFilter.class)); // Check that only processes with status=active are shown DataSet dataSet = presenter.getProcessesTable().getDataSetHandler().getLastDataSet(); assertDataSetValues(dataSet, new String[][]{ {"1.00", "org.jbpm.test", "1", "Process A", "user1", "1.00", "1", "01/01/19 12:00", "", ""}, {"2.00", "org.jbpm.test", "1", "Process A", "user2", "1.00", "1", "01/01/19 12:00", "", ""}, {"3.00", "org.jbpm.test", "1", "Process B", "user1", "1.00", "1", "01/01/19 12:00", "", ""}, {"4.00", "org.jbpm.test", "1", "Process B", "user2", "2.00", "1", "01/01/19 12:00", "01/02/19 10:00", "100,000.00"} }, 0); }
@Test public void testSelectMetric() { presenter.resetCurrentMetric(); reset(view); reset(displayerListener); MetricDisplayer inProgressMetric = presenter.getInProgressMetric(); inProgressMetric.filterApply(); assertEquals(presenter.getSelectedMetric(), inProgressMetric); verify(view).setHeaderText(i18n.tasksInProgress()); verify(displayerListener).onFilterEnabled(eq(inProgressMetric), any(DataSetFilter.class)); verify(displayerListener, times(1)).onFilterEnabled(any(Displayer.class), any(DataSetFilter.class)); verify(displayerListener, never()).onFilterReset(any(Displayer.class), any(DataSetFilter.class)); // Check that only processes with status=active are shown DataSet dataSet = presenter.getTasksTable().getDataSetHandler().getLastDataSet(); assertDataSetValues(dataSet, new String[][]{ {"1.00", "Process A", "1.00", "Task 1", "user1", "InProgress", "01/01/19 10:00", "", ""}, {"4.00", "Process A", "1.00", "Task 4", "user2", "InProgress", "01/01/19 10:00", "", ""}, {"5.00", "Process B", "2.00", "Task 2", "user1", "InProgress", "01/01/19 06:00", "", ""} }, 0); }
@Test public void testSwitchMetric() { MetricDisplayer activeMetric = presenter.getActiveMetric(); MetricDisplayer completedMetric = presenter.getCompletedMetric(); activeMetric.filterApply(); reset(displayerListener, view); completedMetric.filterApply(); assertEquals(presenter.getSelectedMetric(), completedMetric); verify(displayerListener).onFilterReset(eq(activeMetric), any(DataSetFilter.class)); verify(displayerListener).onFilterEnabled(eq(completedMetric), any(DataSetFilter.class)); // Check that only processes with status=completed are shown DataSet dataSet = presenter.getProcessesTable().getDataSetHandler().getLastDataSet(); assertDataSetValues(dataSet, new String[][]{ {"4.00", "org.jbpm.test", "1", "Process B", "user2", "2.00", "1", "01/01/19 12:00", "01/02/19 10:00", "100,000.00"} }, 0); }
@Test public void testSwitchMetric() { MetricDisplayer inProgressMetric = presenter.getInProgressMetric(); MetricDisplayer completedMetric = presenter.getCompletedMetric(); inProgressMetric.filterApply(); reset(displayerListener, view); completedMetric.filterApply(); assertEquals(presenter.getSelectedMetric(), completedMetric); verify(displayerListener).onFilterReset(eq(inProgressMetric), any(DataSetFilter.class)); verify(displayerListener).onFilterEnabled(eq(completedMetric), any(DataSetFilter.class)); // Check that only tasks with status=Completed are shown DataSet dataSet = presenter.getTasksTable().getDataSetHandler().getLastDataSet(); assertDataSetValues(dataSet, new String[][]{ {"8.00", "Process B", "Task 4", "user4", "Completed", "01/01/19 10:00", "12/02/19 16:00", "10,000.00"}, {"2.00", "Process A", "Task 2", "user1", "Completed", "01/01/19 09:00", "01/01/19 13:00", "9,000.00"} }, 0); }
@Test public void testSelectMetric() { presenter.resetCurrentMetric(); reset(view); reset(displayerListener); MetricDisplayer activeMetric = presenter.getActiveMetric(); activeMetric.filterApply(); assertEquals(presenter.getSelectedMetric(), activeMetric); verify(view).setHeaderText(i18n.activeProcesses()); verify(displayerListener).onFilterEnabled(eq(activeMetric), any(DataSetFilter.class)); verify(displayerListener, times(1)).onFilterEnabled(any(Displayer.class), any(DataSetFilter.class)); verify(displayerListener, never()).onFilterReset(any(Displayer.class), any(DataSetFilter.class)); // Check that only processes with status=active are shown DataSet dataSet = presenter.getProcessesTable().getDataSetHandler().getLastDataSet(); assertDataSetValues(dataSet, new String[][]{ {"1.00", "org.jbpm.test", "1", "Process A", "user1", "1.00", "1", "01/01/19 12:00", "", ""}, {"2.00", "org.jbpm.test", "1", "Process A", "user2", "1.00", "1", "01/01/19 12:00", "", ""}, {"3.00", "org.jbpm.test", "1", "Process B", "user1", "1.00", "1", "01/01/19 12:00", "", ""} }, 0); }
@Test public void testSwitchMetric() { MetricDisplayer activeMetric = presenter.getActiveMetric(); MetricDisplayer completedMetric = presenter.getCompletedMetric(); activeMetric.filterApply(); reset(displayerListener, view, activeMetric.getView()); completedMetric.filterApply(); assertEquals(presenter.getSelectedMetric(), completedMetric); verify(activeMetric.getView()).setHtml(anyString()); verify(displayerListener).onFilterReset(eq(activeMetric), any(DataSetFilter.class)); verify(displayerListener).onFilterEnabled(eq(completedMetric), any(DataSetFilter.class)); // Check that only processes with status=completed are shown DataSet dataSet = presenter.getProcessesTable().getDataSetHandler().getLastDataSet(); assertDataSetValues(dataSet, new String[][]{ {"4.00", "org.jbpm.test", "1", "Process B", "user2", "2.00", "1", "01/01/19 12:00", "01/02/19 10:00", "100,000.00"} }, 0); }
@Test public void testSwitchOffFilter() { DisplayerSettings empty = DisplayerSettingsFactory.newMetricSettings() .dataset(EXPENSES) .filter(COLUMN_ID, FilterFactory.isNull()) .column(COLUMN_AMOUNT) .filterOn(false, true, true) .buildSettings(); MetricDisplayer presenter = createMetricDisplayer(empty); MetricDisplayer.View view = presenter.getView(); presenter.draw(); presenter.filterApply(); reset(view); reset(listener); presenter.filterReset(); verify(listener).onFilterReset(eq(presenter), any(DataSetFilter.class)); }
@Test public void testSwitchMetric() { MetricDisplayer inProgressMetric = presenter.getInProgressMetric(); MetricDisplayer completedMetric = presenter.getCompletedMetric(); inProgressMetric.filterApply(); reset(displayerListener, view, inProgressMetric.getView()); completedMetric.filterApply(); assertEquals(presenter.getSelectedMetric(), completedMetric); verify(inProgressMetric.getView()).setHtml(anyString()); verify(displayerListener).onFilterReset(eq(inProgressMetric), any(DataSetFilter.class)); verify(displayerListener).onFilterEnabled(eq(completedMetric), any(DataSetFilter.class)); // Check that only tasks with status=Completed are shown DataSet dataSet = presenter.getTasksTable().getDataSetHandler().getLastDataSet(); assertDataSetValues(dataSet, new String[][]{ {"8.00", "Process B", "2.00", "Task 4", "user4", "Completed", "01/01/19 10:00", "12/02/19 16:00", "10,000.00"}, {"2.00", "Process A", "1.00", "Task 2", "user1", "Completed", "01/01/19 09:00", "01/01/19 13:00", "9,000.00"} }, 0); }
@Test public void testSwitchMetric() { MetricDisplayer activeMetric = presenter.getActiveMetric(); MetricDisplayer completedMetric = presenter.getCompletedMetric(); activeMetric.filterApply(); reset(displayerListener, view, activeMetric.getView()); completedMetric.filterApply(); assertEquals(presenter.getSelectedMetric(), completedMetric); verify(activeMetric.getView()).setHtml(anyString()); verify(displayerListener).onFilterReset(eq(activeMetric), any(DataSetFilter.class)); verify(displayerListener).onFilterEnabled(eq(completedMetric), any(DataSetFilter.class)); // Check that only processes with status=completed are shown DataSet dataSet = presenter.getProcessesTable().getDataSetHandler().getLastDataSet(); assertDataSetValues(dataSet, new String[][]{ {"4.00", "org.jbpm.test", "1", "Process B", "user2", "2.00", "1", "01/01/19 12:00", "01/02/19 10:00", "100,000.00"} }, 0); }
@Test public void testSwitchMetric() { MetricDisplayer inProgressMetric = presenter.getInProgressMetric(); MetricDisplayer completedMetric = presenter.getCompletedMetric(); inProgressMetric.filterApply(); reset(displayerListener, view, inProgressMetric.getView()); completedMetric.filterApply(); assertEquals(presenter.getSelectedMetric(), completedMetric); verify(inProgressMetric.getView()).setHtml(anyString()); verify(displayerListener).onFilterReset(eq(inProgressMetric), any(DataSetFilter.class)); verify(displayerListener).onFilterEnabled(eq(completedMetric), any(DataSetFilter.class)); // Check that only tasks with status=Completed are shown DataSet dataSet = presenter.getTasksTable().getDataSetHandler().getLastDataSet(); assertDataSetValues(dataSet, new String[][]{ {"8.00", "Process B", "2.00", "Task 4", "user4", "Completed", "01/01/19 10:00", "12/02/19 16:00", "10,000.00"}, {"2.00", "Process A", "1.00", "Task 2", "user1", "Completed", "01/01/19 09:00", "01/01/19 13:00", "9,000.00"} }, 0); }
@Test public void testSwitchOffFilter() { DisplayerSettings empty = DisplayerSettingsFactory.newMetricSettings() .dataset(EXPENSES) .filter(COLUMN_ID, FilterFactory.isNull()) .column(COLUMN_AMOUNT) .filterOn(false, true, true) .buildSettings(); MetricDisplayer presenter = createMetricDisplayer(empty); MetricDisplayer.View view = presenter.getView(); presenter.draw(); presenter.filterApply(); reset(view); reset(listener); presenter.filterReset(); verify(listener).onFilterReset(eq(presenter), any(DataSetFilter.class)); }