From 0d42b9e26de97be22eca6ce1f75b89dca5c9934a Mon Sep 17 00:00:00 2001 From: Paul Elliott Date: Tue, 15 Oct 2024 20:06:16 -0400 Subject: [PATCH] refactor(image-list): reuse AbstractElement state+ctrl Guard against double call to init_visibile_columns --- src/nrtk_explorer/app/transforms.py | 2 +- src/nrtk_explorer/app/ui/image_list.py | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/nrtk_explorer/app/transforms.py b/src/nrtk_explorer/app/transforms.py index 5b25326..0c363ff 100644 --- a/src/nrtk_explorer/app/transforms.py +++ b/src/nrtk_explorer/app/transforms.py @@ -391,7 +391,7 @@ def apply_ui(self): self._parameters_app.transform_apply_ui() def dataset_widget(self): - ImageList(self.server, self.on_scroll, self.on_hover) + ImageList(self.on_scroll, self.on_hover) # This is only used within when this module (file) is executed as an Standalone app. @property diff --git a/src/nrtk_explorer/app/ui/image_list.py b/src/nrtk_explorer/app/ui/image_list.py index 4c21281..e11dac7 100644 --- a/src/nrtk_explorer/app/ui/image_list.py +++ b/src/nrtk_explorer/app/ui/image_list.py @@ -68,11 +68,17 @@ def column_toggler(old_columns, new_columns): "original_detection_to_transformed_detection_score", ] +visibile_columns_initialized = False + def init_visibile_columns(state): + global visibile_columns_initialized + if visibile_columns_initialized: + return state.visible_columns = [col["name"] for col in COLUMNS] make_dependent_columns_handler(state, ORIGINAL_COLUMNS) make_dependent_columns_handler(state, TRANSFORM_COLUMNS) + visibile_columns_initialized = True class ImageWithSpinner(html.Div): @@ -147,12 +153,8 @@ def update_pagination(self, **kwargs): else: self.state.pagination = {**old_pagination, "rowsPerPage": 0} # show all rows - def __init__(self, server, on_scroll, on_hover, **kwargs): + def __init__(self, on_scroll, on_hover, **kwargs): super().__init__(classes="full-height", **kwargs) - self.server = server - self.state = server.state - self.ctrl = server.controller - self.visible_ids = set() self.scroll_callback = on_scroll self.update_pagination()