From 2f35bc1cb8f83552496ec68eb827a0289bdc9fde Mon Sep 17 00:00:00 2001 From: Ricky O'Steen Date: Fri, 27 Dec 2024 10:17:42 -0500 Subject: [PATCH] Address review comments --- jdaviz/app.py | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/jdaviz/app.py b/jdaviz/app.py index 699050db1e..2f98dc9756 100644 --- a/jdaviz/app.py +++ b/jdaviz/app.py @@ -2075,23 +2075,32 @@ def _rename_subset(self, old_label, new_label, subset_group=None, check_valid=Tr self.state.layer_icons[new_label] = self.state.layer_icons[old_label] _ = self.state.layer_icons.pop(old_label) - # Updated extracted spectrum if applicable and update _update_live_plugin_results dict. - if self.config == 'cubeviz': - for d in self.data_collection: - if d.label.split("(")[-1].split(",")[0] == old_label: - old_data_label = d.label - new_data_label = d.label.replace(old_label, new_label) - d.label = new_data_label - self.state.layer_icons[new_data_label] = self.state.layer_icons[old_data_label] - _ = self.state.layer_icons.pop(old_data_label) - results_dict = d.meta['_update_live_plugin_results'] - results_dict['aperture'] = new_label + # Updated derived data if applicable + for d in self.data_collection: + data_renamed = False + # Extracted spectra are named, e.g., 'Data (Subset 1, sum)' + if d.label.split("(")[-1].split(",")[0] == old_label: + old_data_label = d.label + new_data_label = d.label.replace(old_label, new_label) + d.label = new_data_label + self.state.layer_icons[new_data_label] = self.state.layer_icons[old_data_label] + _ = self.state.layer_icons.pop(old_data_label) + + # Update the entries in the old data menu + for data_item in self.state.data_items: + if data_item['name'] == old_data_label: + data_item['name'] = new_data_label + + # Update live plugin results subscriptions + if hasattr(d, 'meta') and '_update_live_plugin_results' in d.meta: + results_dict = d.meta['_update_live_plugin_results'] + for key in results_dict.get('_subscriptions', {}).get('subset'): + results_dict[key] = new_label + + if data_renamed: results_dict['add_results']['label'] = new_data_label - d.meta['_update_live_plugin_results'] = results_dict - for data_item in self.state.data_items: - if data_item['name'] == old_data_label: - data_item['name'] = new_data_label + d.meta['_update_live_plugin_results'] = results_dict self.hub.broadcast(SubsetRenameMessage(subset_group, old_label, new_label, sender=self))