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

A better fix for the GUI update loop #185 #456

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
13 changes: 11 additions & 2 deletions jdaviz/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -866,7 +866,14 @@ def vue_data_item_selected(self, event):
event : dict
Traitlet event provided the 'old' and 'new' values.
"""
viewer_id, selected_items = event['id'], event['selected_items']
viewer_id, item_id, checked = event['id'], event['item_id'], event['checked']
viewer_item = self._viewer_item_by_id(viewer_id)

if checked:
selected_items = [*viewer_item['selected_data_items'], item_id]
else:
selected_items = list(filter(
lambda id: id != item_id, viewer_item['selected_data_items']))

self._update_selected_data_items(viewer_id, selected_items)

Expand All @@ -884,10 +891,12 @@ def vue_save_figure(self, event):

def _update_selected_data_items(self, viewer_id, selected_items):
# Find the active viewer
viewer_item = self._viewer_item_by_id(viewer_id)
viewer = self._viewer_by_id(viewer_id)

# Update the stored selected data items
data_ids = selected_items
viewer_item['selected_data_items'] = selected_items
data_ids = viewer_item['selected_data_items']

active_data_labels = []

Expand Down
20 changes: 10 additions & 10 deletions jdaviz/container.vue
Original file line number Diff line number Diff line change
Expand Up @@ -75,16 +75,16 @@

<v-tabs-items v-model="viewer.tab" style="max-height: 500px; width: 350px;">
<v-tab-item key="0" class="overflow-y-auto" style="height: 450px">
<v-treeview
dense
selectable
:items="dataItems"
hoverable
v-model="viewer.selected_data_items"
activatable
item-disabled="locked"
@input="$emit('data-item-selected', {'id': viewer.id, 'selected_items': $event})"
></v-treeview>
<v-checkbox
v-for="item in dataItems" :key="item.id" :label="item.name" dense hide-details
:input-value="viewer.selected_data_items.includes(item.id)"
@change="$emit('data-item-selected', {
id: viewer.id,
item_id: item.id,
checked: $event
})"
class="pl-4"
/>
</v-tab-item>

<v-tab-item key="1" eager class="overflow-y-auto" style="height: 100%">
Expand Down