From 3a9226dc18cf9c10745f6e9393060e45c7e5e0a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Tue, 9 Jun 2020 14:03:09 +0200 Subject: [PATCH] [dome] few fix in tables --- ivette/src/dome/src/renderer/table/arrays.ts | 4 ++++ ivette/src/dome/src/renderer/table/models.ts | 9 ++++++++- ivette/src/dome/src/renderer/table/views.tsx | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ivette/src/dome/src/renderer/table/arrays.ts b/ivette/src/dome/src/renderer/table/arrays.ts index cade7114870..9cdd951fea2 100644 --- a/ivette/src/dome/src/renderer/table/arrays.ts +++ b/ivette/src/dome/src/renderer/table/arrays.ts @@ -88,6 +88,10 @@ export class MapModel<Key, Row> // Consolidated order (computed on demand) private order?: SORT<Key, Row>; + // -------------------------------------------------------------------------- + // --- Rebuild Array + // -------------------------------------------------------------------------- + // Lazily compute order protected sorter(): SORT<Key, Row> { let current = this.order; diff --git a/ivette/src/dome/src/renderer/table/models.ts b/ivette/src/dome/src/renderer/table/models.ts index 78bad99218c..c6f38e21a31 100644 --- a/ivette/src/dome/src/renderer/table/models.ts +++ b/ivette/src/dome/src/renderer/table/models.ts @@ -127,6 +127,10 @@ export abstract class Model<Key, Row> { private clients = new Map<number, Watcher>(); private clientsId = 0; + constructor() { + this.reload = this.reload.bind(this); + } + /** Shall return the number of rows to be currently displayed in the table. Negative values are considered as zero. @@ -187,7 +191,10 @@ export abstract class Model<Key, Row> { } } - /** Re-render all views. */ + /** + Re-render all views. + Bound to this. + */ reload() { this.clients.forEach(({ reload }) => reload && reload()); } /** diff --git a/ivette/src/dome/src/renderer/table/views.tsx b/ivette/src/dome/src/renderer/table/views.tsx index cfb3ce310a0..a6e9252d719 100644 --- a/ivette/src/dome/src/renderer/table/views.tsx +++ b/ivette/src/dome/src/renderer/table/views.tsx @@ -37,7 +37,7 @@ const SVG = SVGraw as (props: { id: string, size?: number }) => JSX.Element; // -------------------------------------------------------------------------- /** Cell data renderer. */ -export type Renderer<Cell> = (data?: Cell) => null | JSX.Element; +export type Renderer<Cell> = (data: Cell) => null | JSX.Element; /** Associates, for each field `{ fd: Cell }` in `Row`, a renderer -- GitLab