Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rehome subsets after removing data from viewer. #2409

Merged
merged 40 commits into from
Oct 23, 2023
Merged
Changes from 1 commit
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
c3ca86a
First crack at rehoming subsets
rosteen Aug 30, 2023
f915604
allow deleting non-plugin data if not last entry
kecnry May 19, 2023
8276b76
Prevent data deletion for mosviz and cubeviz
duytnguyendtn May 19, 2023
95f70f4
Unloadable equivalencies for sci, err, dq
duytnguyendtn May 16, 2023
35b6b79
Changelog
duytnguyendtn May 19, 2023
775f71f
Hackily add data back temporarily to transfer subset ownership
duytnguyendtn May 19, 2023
90d3550
Remove defunct visible flag
duytnguyendtn May 19, 2023
1325a13
Add subset warning to removal tooltip
duytnguyendtn May 19, 2023
e24ea38
update test to include viewer id in remove event
duytnguyendtn May 19, 2023
a35ea86
Update CHANGES.rst
duytnguyendtn May 19, 2023
441dcb7
Debugging subset rehoming for Imviz, currently seems to flip x and y
rosteen Aug 30, 2023
48bc4c8
I think this logic will need to go first to add WCS transform before …
rosteen Sep 5, 2023
6eceec3
Now converts all four spatial subsets through WCS link to new parent …
rosteen Sep 18, 2023
4b15f74
Add simple test for this
rosteen Sep 18, 2023
63959e6
Move subset reparenting logic to data deletion, handle TrueCircularRo…
rosteen Sep 20, 2023
69ce19e
Handle converting spectral units if necessary
rosteen Sep 20, 2023
857e0bb
Force subset plugin to update when subsets are re-parented
rosteen Sep 20, 2023
5e161fb
Split out reparenting into its own function so it can be used with re…
rosteen Sep 22, 2023
da1b902
Refactor reparenting to act on subset_groups rather than viewer layers
rosteen Sep 26, 2023
8636d02
Relink if ref data is deleted
rosteen Oct 9, 2023
76a92c0
Restore responsiveness (to plot options, etc) for Imviz layers after …
rosteen Oct 10, 2023
2d6d49a
Exclude subsets from layers to potentially reload
rosteen Oct 10, 2023
00119d2
Check Imviz for refdata
rosteen Oct 11, 2023
89b4ba0
Fix overlapping data name/removal icon
rosteen Oct 11, 2023
0feae84
Add some screenshots and documentation about data deletion
rosteen Oct 11, 2023
3ff1beb
Add test for data deletion in Specviz
rosteen Oct 12, 2023
e1fad8d
Make Specviz/Imviz display docs more consistent
rosteen Oct 16, 2023
39559ae
Update jdaviz/configs/specviz/tests/test_helper.py
rosteen Oct 16, 2023
4d3093b
Consolidate 1D spectrum creation in conftest
rosteen Oct 16, 2023
a6cf464
Changelog
duytnguyendtn May 19, 2023
c5b1f82
Debugging subset rehoming for Imviz, currently seems to flip x and y
rosteen Aug 30, 2023
e0b0ab2
I think this logic will need to go first to add WCS transform before …
rosteen Sep 5, 2023
0380cea
Now converts all four spatial subsets through WCS link to new parent …
rosteen Sep 18, 2023
3ada40b
Add simple test for this
rosteen Sep 18, 2023
fd6a8a4
Move subset reparenting logic to data deletion, handle TrueCircularRo…
rosteen Sep 20, 2023
3353575
parent 9732bfe9d374f8f16e94983348d5d1b840eb4682
rosteen Sep 26, 2023
9e955a8
Consolidate this with center() and move_to()
rosteen Oct 17, 2023
add75cb
Apply suggestions from code review
rosteen Oct 18, 2023
1b6b8ea
Handle composite subsets
rosteen Oct 18, 2023
95d0b7d
Make sure data is unloaded from all viewers before deleting it
rosteen Oct 20, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
First crack at rehoming subsets
rosteen committed Oct 23, 2023
commit c3ca86a66e0913aba44c04878ef704e874044e4b
17 changes: 17 additions & 0 deletions jdaviz/app.py
Original file line number Diff line number Diff line change
@@ -1594,6 +1594,23 @@ def remove_data_from_viewer(self, viewer_reference, data_label):
viewer.remove_data(data)
viewer._layers_with_defaults_applied = [layer_info for layer_info in viewer._layers_with_defaults_applied # noqa
if layer_info['data_label'] != data.label] # noqa

# Set subset attributes to match remaining data.
for l in viewer.layers:
if hasattr(l.layer, "subset_state"):
for att in ("att", "x_att", "y_att"):
if hasattr(l.layer.subset_state, att):
subset_att = getattr(l.layer.subset_state, att)
data_components = l.layer.data.components
if subset_att not in data_components:
new_atts = []
a_labels = [a.label for a in l.layer.subset_state.attributes]
for label in a_labels:
cid = [c for c in data_components if c.label == label][0]
new_atts.append(cid)
new_atts = tuple(new_atts)
l.layer.subset_state.att = new_atts[0]

remove_data_message = RemoveDataMessage(data, viewer,
viewer_id=viewer_id,
sender=self)