protected void afterDraw() { updateRefreshTimer(); for (DisplayerListener listener : listenerList) { listener.onDraw(this); } }
public void handleError(final ClientRuntimeError error) { for (DisplayerListener listener : listenerList) { listener.onError(this, error); } }
@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 testDrawAll() { displayerCoordinator.drawAll(); verify(listener, times(5)).onDataLookup(any(Displayer.class)); verify(listener, times(5)).onDraw(any(Displayer.class)); }
@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 testFilterPropagations() { displayerCoordinator.drawAll(); // Click on the "Engineering" slice reset(listener); deptPieChart.filterUpdate(COLUMN_DEPARTMENT, 0); // Check the allRowsTable receives the filter request DataSet dataSet = allRowsTable.getDataSetHandler().getLastDataSet(); assertEquals(dataSet.getRowCount(), 19); verify(listener).onDataLookup(allRowsTable); verify(listener).onRedraw(allRowsTable); }
@Test public void testDraw() { AbstractDisplayer displayer = (AbstractDisplayer) displayerLocator.lookupDisplayer(settings); AbstractDisplayer.View view = displayer.getView(); displayer.addListener(listener); assertEquals(displayer.isDrawn(), false); displayer.draw(); assertEquals(displayer.isDrawn(), true); verify(view).showLoading(); verify(view).setId("expenses"); verify(listener).onDataLookup(displayer); verify(listener).onDataLoaded(displayer); verify(listener).onDraw(displayer); verify(listener, never()).onRedraw(displayer); assertDataSetValues(displayer.getDataSetHandler().getLastDataSet(), new String[][]{ {"2012", "13.00", "6,126.13"}, {"2013", "11.00", "5,252.96"}, {"2014", "11.00", "4,015.48"}, {"2015", "15.00", "7,336.69"} }, 0); }
@Test public void testSelectProcess() { reset(view); reset(displayerListener); presenter.getProcessesByType().filterUpdate(COLUMN_PROCESS_NAME, 1); final String process = "Process B"; assertEquals(presenter.getSelectedProcess(), process); verify(view).showBreadCrumb(process); verify(view).setHeaderText(i18n.selectedProcessStatusHeader("", process)); verify(displayerListener, times(12)).onRedraw(any(Displayer.class)); verify(displayerListener, never()).onError(any(Displayer.class), any(ClientRuntimeError.class)); }
@Test public void testRedraw() { AbstractDisplayer displayer = (AbstractDisplayer) displayerLocator.lookupDisplayer(settings); AbstractDisplayer.View view = displayer.getView(); displayer.addListener(listener); displayer.draw(); reset(view); reset(listener); assertEquals(displayer.isDrawn(), true); displayer.redraw(); assertEquals(displayer.isDrawn(), true); verify(listener).onDataLookup(displayer); verify(listener).onRedraw(displayer); verify(listener, never()).onDraw(displayer); verify(view, never()).showLoading(); assertDataSetValues(displayer.getDataSetHandler().getLastDataSet(), new String[][]{ {"2012", "13.00", "6,126.13"}, {"2013", "11.00", "5,252.96"}, {"2014", "11.00", "4,015.48"}, {"2015", "15.00", "7,336.69"} }, 0); }
protected void afterRedraw() { updateRefreshTimer(); for (DisplayerListener listener : listenerList) { listener.onRedraw(this); } }
@Test public void testFilterWithNull() { // Insert a null entry into the dataset DataSet expensesDataSet = clientDataSetManager.getDataSet(EXPENSES); int column = expensesDataSet.getColumnIndex(expensesDataSet.getColumnById(COLUMN_DEPARTMENT)); expensesDataSet.setValueAt(0, column, null); // Draw the charts displayerCoordinator.drawAll(); // Click on the "Engineering" slice reset(listener); deptPieChart.filterUpdate(COLUMN_DEPARTMENT, 1); // Check the allRowsTable receives the filter request DataSet dataSet = allRowsTable.getDataSetHandler().getLastDataSet(); verify(listener, never()).onError(any(Displayer.class), any(ClientRuntimeError.class)); verify(listener).onDataLookup(allRowsTable); verify(listener).onRedraw(allRowsTable); assertEquals(dataSet.getRowCount(), 18); }
@Test public void testSelectDisabled() { dateSelectorSettings.setFilterEnabled(false); SelectorSliderDisplayer presenter = createSelectorDisplayer(dateSelectorSettings); DisplayerListener listener = mock(DisplayerListener.class); SelectorSliderDisplayer.View view = presenter.getView(); presenter.draw(); reset(view); presenter.addListener(listener); presenter.onSliderChange(0, 1); // Check filter notifications verify(listener, never()).onFilterEnabled(eq(presenter), any(DataSetFilter.class)); verify(listener, never()).onRedraw(presenter); // Ensure data does not change verify(view, never()).showSlider(anyInt(), anyInt(), anyInt(), anyInt(), anyInt()); }
@Test public void test_JBPM_5834_Fix() { assertEquals(presenter.getTotalMetric().isFilterOn(), true); verify(totalMetricListener, never()).onFilterEnabled(any(), any(DataSetFilter.class)); }
/** * 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(); } } }
protected void afterLoad() { for (DisplayerListener listener : listenerList) { listener.onDataLoaded(this); } }
protected void beforeLoad() { for (DisplayerListener listener : listenerList) { listener.onDataLookup(this); } }
@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 testFilterPropagations() { displayerCoordinator.drawAll(); // Click on the "Engineering" slice reset(listener); deptPieChart.filterUpdate(COLUMN_DEPARTMENT, 0); // Check the allRowsTable receives the filter request DataSet dataSet = allRowsTable.getDataSetHandler().getLastDataSet(); assertEquals(dataSet.getRowCount(), 19); verify(listener).onDataLookup(allRowsTable); verify(listener).onRedraw(allRowsTable); }
@Test public void testDraw() { AbstractDisplayer displayer = (AbstractDisplayer) displayerLocator.lookupDisplayer(settings); AbstractDisplayer.View view = displayer.getView(); displayer.addListener(listener); assertEquals(displayer.isDrawn(), false); displayer.draw(); assertEquals(displayer.isDrawn(), true); verify(view).showLoading(); verify(view).setId("expenses"); verify(listener).onDataLookup(displayer); verify(listener).onDataLoaded(displayer); verify(listener).onDraw(displayer); verify(listener, never()).onRedraw(displayer); assertDataSetValues(displayer.getDataSetHandler().getLastDataSet(), new String[][]{ {"2012", "13.00", "6,126.13"}, {"2013", "11.00", "5,252.96"}, {"2014", "11.00", "4,015.48"}, {"2015", "15.00", "7,336.69"} }, 0); }
@Test public void testSelectProcess() { reset(view); reset(displayerListener); presenter.getTasksByProcess().filterUpdate(COLUMN_PROCESS_NAME, 1); final String process = "Process B"; assertEquals(presenter.getSelectedProcess(), process); verify(view).showBreadCrumb(process); verify(view).setHeaderText(i18n.selectedTaskStatusHeader("", process)); verify(displayerListener, times(17)).onRedraw(any(Displayer.class)); verify(displayerListener, never()).onError(any(Displayer.class), any(ClientRuntimeError.class)); }