Skip to content

Commit

Permalink
Merge pull request #288 from lineupjs/sgratzl/reset_hist
Browse files Browse the repository at this point in the history
Fix reset of the filter histogram
  • Loading branch information
thinkh committed Apr 7, 2020
2 parents a926cad + 14491ae commit 36d2bfa
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 6 deletions.
19 changes: 15 additions & 4 deletions src/renderer/HistogramCellRenderer.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import {normalizedStatsBuilder, IStatistics, getNumberOfBins} from '../internal';
import {Column, IDataRow, IOrderedGroup, INumberColumn, INumbersColumn, isNumberColumn, isNumbersColumn, IMapAbleColumn, isMapAbleColumn, INumberFilter} from '../model';
import {Column, IDataRow, IOrderedGroup, INumberColumn, INumbersColumn, isNumberColumn, isNumbersColumn, IMapAbleColumn, isMapAbleColumn, Ranking} from '../model';
import InputNumberDialog from '../ui/dialogs/InputNumberDialog';
import {colorOf} from './impose';
import {IRenderContext, ERenderMode, ICellRendererFactory, IImposer, IRenderTasks, ICellRenderer, IGroupCellRenderer, ISummaryRenderer} from './interfaces';
Expand Down Expand Up @@ -142,13 +142,12 @@ export function createNumberFilter(col: INumberColumn & IMapAbleColumn, parent:

const updateFilter = initFilter(summaryNode, fContext);

const rerender = (filter?: INumberFilter) => {
const rerender = () => {
const ready = context.tasks.summaryNumberStats(col).then((r) => {
if (typeof r === 'symbol') {
return;
}
const {summary, data} = r;
currentFilter = createFilterInfo(col, filter);
updateFilter(data ? data.missing : (summary ? summary.missing : 0), currentFilter);
summaryNode.classList.toggle(cssClass('missing'), !summary);
if (!summary) {
Expand All @@ -164,11 +163,23 @@ export function createNumberFilter(col: INumberColumn & IMapAbleColumn, parent:
summaryNode.classList.remove(engineCssClass('loading'));
});
};

const ranking = col.findMyRanker()!;

if (ranking) {
ranking.on(`${Ranking.EVENT_ORDER_CHANGED}.numberFilter`, () => rerender());
}
rerender();

return {
cleanUp() {
if (ranking) {
ranking.on(`${Ranking.EVENT_ORDER_CHANGED}.numberFilter`, null);
}
},
reset() {
rerender(noNumberFilter());
currentFilter = createFilterInfo(col, noNumberFilter());
rerender();
},
submit() {
applyFilter(currentFilter.filterMissing, currentFilter.filterMin, currentFilter.filterMax);
Expand Down
9 changes: 7 additions & 2 deletions src/ui/dialogs/NumberFilterDialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import ADialog, {IDialogContext} from './ADialog';
/** @internal */
export default class NumberFilterDialog extends ADialog {
private readonly before: INumberFilter;
private handler: {reset: () => void, submit: () => void} | null = null;
private handler: {reset: () => void, submit: () => void, cleanUp: () => void} | null = null;

constructor(private readonly column: IMapAbleColumn, dialog: IDialogContext, private readonly ctx: IRankingHeaderContext) {
super(dialog, {
Expand All @@ -23,10 +23,15 @@ export default class NumberFilterDialog extends ADialog {
this.handler = createNumberFilter(this.column, node, {
dialogManager: this.ctx.dialogManager,
idPrefix: this.ctx.idPrefix,
tasks: this.ctx.provider.getTaskExecutor()
tasks: this.ctx.provider.getTaskExecutor(),
}, this.showLivePreviews());
}

cleanUp(action: 'cancel' | 'confirm' | 'handled') {
super.cleanUp(action);
this.handler!.cleanUp();
}

protected reset() {
this.handler!.reset();
}
Expand Down

0 comments on commit 36d2bfa

Please sign in to comment.