Skip to content

Commit

Permalink
reset just within the dialog
Browse files Browse the repository at this point in the history
  • Loading branch information
sgratzl committed Mar 18, 2020
1 parent 768f550 commit c8e6e46
Show file tree
Hide file tree
Showing 23 changed files with 32 additions and 52 deletions.
14 changes: 6 additions & 8 deletions src/renderer/HistogramCellRenderer.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import {normalizedStatsBuilder, IStatistics, round, getNumberOfBins} from '../internal';
import {Column, IDataRow, IOrderedGroup, INumberColumn, INumbersColumn, isNumberColumn, isNumbersColumn, IMapAbleColumn, isMapAbleColumn} from '../model';
import {Column, IDataRow, IOrderedGroup, INumberColumn, INumbersColumn, isNumberColumn, isNumbersColumn, IMapAbleColumn, isMapAbleColumn, INumberFilter} from '../model';
import InputNumberDialog from '../ui/dialogs/InputNumberDialog';
import {colorOf} from './impose';
import {IRenderContext, ERenderMode, ICellRendererFactory, IImposer, IRenderTasks} from './interfaces';
Expand Down Expand Up @@ -142,14 +142,14 @@ export function createNumberFilter(col: INumberColumn & IMapAbleColumn, parent:

const updateFilter = initFilter(summaryNode, fContext);

const rerender = () => {
const rerender = (filter?: INumberFilter) => {
const ready = context.tasks.summaryNumberStats(col).then((r) => {
if (typeof r === 'symbol') {
return;
}
const {summary, data} = r;

updateFilter(data ? data.missing : (summary ? summary.missing : 0), createFilterInfo(col));
currentFilter = createFilterInfo(col, filter);
updateFilter(data ? data.missing : (summary ? summary.missing : 0), currentFilter);
summaryNode.classList.toggle(cssClass('missing'), !summary);
if (!summary) {
return;
Expand All @@ -167,8 +167,7 @@ export function createNumberFilter(col: INumberColumn & IMapAbleColumn, parent:

return {
reset() {
col.setFilter(noNumberFilter());
rerender();
rerender(noNumberFilter());
},
submit() {
applyFilter(currentFilter.filterMissing, currentFilter.filterMin, currentFilter.filterMax);
Expand All @@ -192,8 +191,7 @@ export function getHistDOMRenderer(col: INumberColumn, imposer?: IImposer) {
};
}

function createFilterInfo(col: IMapAbleColumn): IFilterInfo<number> {
const filter = col.getFilter();
function createFilterInfo(col: IMapAbleColumn, filter = col.getFilter()): IFilterInfo<number> {
const domain = col.getMapping().domain;
const filterMin = isFinite(filter.min) ? filter.min : domain[0];
const filterMax = isFinite(filter.max) ? filter.max : domain[1];
Expand Down
14 changes: 7 additions & 7 deletions src/ui/dialogs/ADialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ abstract class ADialog {
return false;
}
if (this.submit()) {
this.destroy();
this.destroy(true);
}
return false;
};
Expand All @@ -148,7 +148,7 @@ abstract class ADialog {
evt.stopPropagation();
evt.preventDefault();
this.cancel();
this.destroy();
this.destroy(true);
};
}

Expand All @@ -173,17 +173,17 @@ abstract class ADialog {

protected abstract cancel(): void;

onBackgroundClick(action: 'cancel' | 'confirm') {
onBackgroundClick(action: 'cancel' | 'confirm' | 'auto') {
if (action === 'confirm') {
this.submit(); // TODO what if submit wasn't successful?
} else {
} else if (action === 'cancel') {
this.cancel();
}
this.destroy();
this.destroy(true);
}

protected destroy() {
this.dialog.manager.remove(this);
protected destroy(handled = false) {
this.dialog.manager.remove(this, handled);
if (this.popper) {
this.popper.destroy();
}
Expand Down
1 change: 0 additions & 1 deletion src/ui/dialogs/BooleanFilterDialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ export default class BooleanFilterDialog extends ADialog {
protected reset() {
const v = 'null';
this.forEach('input[type="radio"]', (d: HTMLInputElement) => d.checked = d.value === v);
this.updateFilter(null);
}

protected cancel() {
Expand Down
1 change: 0 additions & 1 deletion src/ui/dialogs/CategoricalColorMappingDialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ export default class CategoricalColorMappingDialog extends ADialog {
this.forEach('[data-cat]', (n: HTMLInputElement, i) => {
n.value = color(cats[i]!.color)!.hex();
});
this.column.setColorMapping(DEFAULT_CATEGORICAL_COLOR_FUNCTION);
}

submit() {
Expand Down
1 change: 0 additions & 1 deletion src/ui/dialogs/CategoricalFilterDialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ export default class CategoricalFilterDialog extends ADialog {

protected reset() {
this.forEach('input[data-cat]', (n: HTMLInputElement) => n.checked = true);
this.updateFilter(null, false);
}

protected cancel() {
Expand Down
2 changes: 0 additions & 2 deletions src/ui/dialogs/CategoricalMappingFilterDialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,6 @@ export default class CategoricalMappingFilterDialog extends ADialog {
n.checked = false;
(<HTMLInputElement>n.nextElementSibling!).value = '50';
});
this.updateFilter(null, false);
this.column.setMapping(this.column.categories.map(() => 1));
}

protected submit() {
Expand Down
15 changes: 12 additions & 3 deletions src/ui/dialogs/ChangeRendererDialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,18 @@ export default class ChangeRendererDialog extends ADialog {

protected reset() {
const desc = this.column.desc;
this.column.setRenderer(desc.renderer || desc.type);
this.column.setGroupRenderer(desc.groupRenderer || desc.type);
this.column.setSummaryRenderer(desc.summaryRenderer || desc.type);
const r = this.findInput(`input[name=renderer][value="${desc.renderer || desc.type}"]`);
if (r) {
r.checked = true;
}
const g = this.findInput(`input[name=group][value="${desc.groupRenderer || desc.type}"]`);
if (g) {
g.checked = true;
}
const s = this.findInput(`input[name=summary][value="${desc.summaryRenderer || desc.type}"]`);
if (s) {
s.checked = true;
}
}

protected submit() {
Expand Down
10 changes: 4 additions & 6 deletions src/ui/dialogs/ColorMappingDialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ export default class ColorMappingDialog extends ADialog {
this.before = this.column.getColorMapping();
}

private createTemplate(id: string) {
const current = this.column.getColorMapping();
private createTemplate(id: string, current: IColorMappingFunction) {
const entries = current instanceof CustomColorMappingFunction ? current.entries : [];

let h = '';
Expand Down Expand Up @@ -114,11 +113,11 @@ export default class ColorMappingDialog extends ADialog {
}
}

protected build(node: HTMLElement) {
protected build(node: HTMLElement, value = this.column.getColorMapping()) {
node.classList.add(cssClass('dialog-color'));

const id = this.id;
node.innerHTML = this.createTemplate(id);
node.innerHTML = this.createTemplate(id, value);

const continuouos = this.findInput(`#${id}KC`);
const quantized = this.findInput(`#${id}KQ`);
Expand Down Expand Up @@ -194,8 +193,7 @@ export default class ColorMappingDialog extends ADialog {
}

protected reset() {
this.column.setColorMapping(DEFAULT_COLOR_FUNCTION);
this.build(this.node);
this.build(this.node, DEFAULT_COLOR_FUNCTION);
}

protected submit() {
Expand Down
1 change: 0 additions & 1 deletion src/ui/dialogs/CutOffHierarchyDialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ export default class CutOffHierarchyDialog extends ADialog {
protected reset() {
this.findInput('input[type="text"]').value = this.column.hierarchy.path;
this.findInput('input[type="number"]').value = '';
this.column.setCutOff(this.before);
}

protected cancel() {
Expand Down
1 change: 0 additions & 1 deletion src/ui/dialogs/DateFilterDialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ export default class DateFilterDialog extends ADialog {
protected reset() {
this.forEach('input[type=date]', (n: HTMLInputElement) => n.value = '');
this.forEach('input[type=checkbox]', (n: HTMLInputElement) => n.checked = false);
this.updateFilter(null);
}

protected cancel() {
Expand Down
4 changes: 2 additions & 2 deletions src/ui/dialogs/DialogManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,14 +87,14 @@ export default class DialogManager {
this.takeDown();
}

remove(dialog: ADialog) {
remove(dialog: ADialog, handled = false) {
const index = this.openDialogs.indexOf(dialog);
if (index < 0) {
return false;
}
// destroy self and all levels below that = after that
const destroyed = this.openDialogs.splice(index, this.openDialogs.length - index);
destroyed.reverse().forEach((d) => d.onBackgroundClick(this.onDialogBackgroundClick));
destroyed.reverse().forEach((d) => d.onBackgroundClick(handled ? 'auto' : this.onDialogBackgroundClick));

if (this.openDialogs.length === 0) {
this.takeDown();
Expand Down
1 change: 0 additions & 1 deletion src/ui/dialogs/EditPatternDialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ export default class EditPatternDialog extends ADialog {

protected reset() {
this.node.querySelector('input')!.value = '';
this.column.setPattern('');
}

protected submit() {
Expand Down
1 change: 0 additions & 1 deletion src/ui/dialogs/MappingDialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,6 @@ export default class MappingDialog extends ADialog {
this.update();
this.updateLines();
this.createMappings();
this.column.setMapping(this.scale);
}

private copyMapping(columnId: string) {
Expand Down
1 change: 0 additions & 1 deletion src/ui/dialogs/RenameDialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ export default class RenameDialog extends ADialog {
this.findInput('input[type="text"]').value = meta.label;
this.findInput('input[name="summary"]').value = meta.summary
this.node.querySelector('textarea')!.value = meta.description;
this.column.setMetaData(meta);
}

protected submit() {
Expand Down
1 change: 0 additions & 1 deletion src/ui/dialogs/RenameRankingDialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ export default class RenameRankingDialog extends ADialog {

protected reset() {
this.findInput('input[type="text"]').value = this.before;
this.ranking.setLabel(this.before);
}

protected cancel() {
Expand Down
3 changes: 1 addition & 2 deletions src/ui/dialogs/ScriptEditDialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@ export default class ScriptEditDialog extends ADialog {
}

protected reset() {
this.node.querySelector('textarea')!.value = this.before;
this.column.setScript(this.before);
this.node.querySelector('textarea')!.value = (<any>this.column.desc).script || ScriptColumn.DEFAULT_SCRIPT;
}

protected submit() {
Expand Down
1 change: 0 additions & 1 deletion src/ui/dialogs/ShowTopNDialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,5 @@ export default class ShowTopNDialog extends ADialog {
protected reset() {
const defaultValue = 10;
this.findInput('input').value = defaultValue.toString();
this.provider.setShowTopN(defaultValue);
}
}
1 change: 0 additions & 1 deletion src/ui/dialogs/StringFilterDialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ export default class StringFilterDialog extends ADialog {
protected reset() {
this.findInput('input[type="text"]').value = '';
this.forEach('input[type=checkbox]', (n: HTMLInputElement) => n.checked = false);
this.updateFilter(null);
}

protected cancel() {
Expand Down
1 change: 0 additions & 1 deletion src/ui/dialogs/WeightsEditDialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ export default class WeightsEditDialog extends ADialog {
n.value = String(v);
(<HTMLElement>n.nextElementSibling!.firstElementChild!).style.width = `${v}%`;
});
this.column.setWeights(this.weights.slice().fill(weight));
}

protected build(node: HTMLElement) {
Expand Down
2 changes: 0 additions & 2 deletions src/ui/dialogs/groupDate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,6 @@ export default function appendDate(col: DateColumn, node: HTMLElement): IToolbar
circular.checked = r.circular;
const g = node.querySelector<HTMLInputElement>(`input[name=granularity][value="${r.granularity}"]`)!;
g.checked = true;

col.setDateGrouper(r);
}
};
}
2 changes: 0 additions & 2 deletions src/ui/dialogs/groupNumber.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,6 @@ export default function groupNumber(col: NumberColumn, node: HTMLElement, dialog
bins.value = getNumberOfBins(ranking.getOrderLength()).toString();
bins.disabled = false;
node.querySelector<HTMLInputElement>('input[name=threshold][value=threshold]')!.checked = true;

col.setGroupThresholds([value]);
}
}
}
5 changes: 0 additions & 5 deletions src/ui/dialogs/groupString.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,6 @@ export default function groupString(col: StringColumn, node: HTMLElement, dialog
reset() {
text.value = '';
startsWithRadioButton.checked = true;

col.setGroupCriteria({
type: EStringGroupCriteriaType.startsWith,
values: []
});
}
};
}
1 change: 0 additions & 1 deletion src/ui/dialogs/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ export function sortMethods(node: HTMLElement, column: {setSortMethod(v: string)
},
reset() {
node.querySelector<HTMLInputElement>(`input[name=multivaluesort][value="${bak}"]`)!.checked = true;
column.setSortMethod(bak);
}
}
}
Expand Down

0 comments on commit c8e6e46

Please sign in to comment.