Skip to content

Commit

Permalink
layer icons/colors/collapsed function
Browse files Browse the repository at this point in the history
  • Loading branch information
kecnry committed Jul 8, 2022
1 parent d8bf6f3 commit 0395e98
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 15 deletions.
6 changes: 4 additions & 2 deletions jdaviz/components/viewer_data_select.vue
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
</v-btn>
</template>

<v-list style="max-height: 500px; width: 430px; padding-top: 0px" class="overflow-y-auto">
<v-list style="max-height: 500px; width: 460px; padding-top: 0px" class="overflow-y-auto">
<v-row key="title" style="padding-left: 25px; margin-right: 0px; background-color: #E3F2FD">
<span style="overflow-wrap: anywhere; font-size: 12pt; padding-top: 6px; padding-left: 6px; font-weight: bold; color: black">
{{viewerTitleCase}}
Expand Down Expand Up @@ -47,6 +47,7 @@
<v-row v-for="item in filteredDataItems" :key="item.id" style="padding-left: 25px; margin-right: 0px; margin-top: 4px; margin-bottom: 4px">
<j-viewer-data-select-item
:item="item"
:icon="layer_icons[item.name]"
:viewer="viewer"
:multi_select="multi_select"
@data-item-selected="$emit('data-item-selected', $event)"
Expand Down Expand Up @@ -75,6 +76,7 @@
<v-row v-if="showExtraItems" v-for="item in extraDataItems" :key="item.id" style="padding-left: 25px; margin-right: 0px; margin-top: 4px; margin-bottom: 4px">
<j-viewer-data-select-item
:item="item"
:icon="layer_icons[item.name]"
:viewer="viewer"
:multi_select="multi_select"
@data-item-selected="$emit('data-item-selected', $event)"
Expand All @@ -91,7 +93,7 @@
<script>
module.exports = {
props: ['data_items', 'viewer', 'app_settings', 'viewer_data_visibility', 'icons'],
props: ['data_items', 'viewer', 'layer_icons', 'app_settings', 'viewer_data_visibility', 'icons'],
data: function () {
var multi_select = true
if (this.$props.viewer.config === 'cubeviz') {
Expand Down
7 changes: 4 additions & 3 deletions jdaviz/components/viewer_data_select_item.vue
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@
</j-tooltip>
</div>

<j-tooltip :tooltipcontent="'data label: '+item.name" span_style="font-size: 12pt; padding-top: 6px; padding-left: 6px; width: calc(100% - 80px); cursor: default;">
<div class="text-ellipsis-middle">
<j-tooltip :tooltipcontent="'data label: '+item.name" span_style="font-size: 12pt; padding-top: 6px; padding-left: 6px; width: calc(100% - 110px); cursor: default;">
<v-icon class='invert-if-dark' style='color: #000000DE; margin-left: 4px; margin-right: -2px'>{{icon}}</v-icon>
<div class="text-ellipsis-middle" style="font-weight: 500">
<span>
{{itemNamePrefix}}
</span>
Expand Down Expand Up @@ -61,7 +62,7 @@
<script>
module.exports = {
props: ['item', 'multi_select', 'viewer'],
props: ['item', 'icon', 'multi_select', 'viewer'],
methods: {
selectClicked() {
prevVisibleState = this.visibleState
Expand Down
29 changes: 21 additions & 8 deletions jdaviz/configs/default/plugins/viewers.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import numpy as np

from glue.core.subset import RoiSubsetState
from glue_jupyter.bqplot.profile import BqplotProfileView
from glue_jupyter.bqplot.image import BqplotImageView
from glue_jupyter.table import TableViewer
Expand Down Expand Up @@ -67,19 +68,31 @@ def _on_layers_update(self, layers=None):
def _get_layer_color(layer):
return layer.color

def _get_layer_suffix(layer):
#if self.__class__.__name__ == 'CubevizProfileView' and len(layer.layer.data.shape) == 3:
# # then the underlying data is cube-like and we're in the profile viewer, so we
# # want to include the collapse function *unless* the layer is a spectral subset
# if isinstance(subset.subset_state, RoiSubsetState):
# return f" (collapsed: {self.state.function})"
return ''
def _get_layer_info(layer):
if self.__class__.__name__ == 'CubevizProfileView' and len(layer.layer.data.shape) == 3:
suffix = f" (collapsed: {self.state.function})"
else:
suffix = ""

# then the underlying data is cube-like and we're in the profile viewer, so we
# want to include the collapse function *unless* the layer is a spectral subset
for subset in self.jdaviz_app.data_collection.subset_groups:
if subset.label == layer.layer.label:
if isinstance(subset.subset_state, RoiSubsetState):
return "mdi-chart-scatter-plot", suffix
else:
return "mdi-chart-bell-curve", ""
return "", suffix

return '', ''

visible_layers = {}
for layer in self.state.layers:
if layer.visible:
prefix_icon, suffix = _get_layer_info(layer)
visible_layers[layer.layer.label] = {'color': _get_layer_color(layer),
'label_suffix': _get_layer_suffix(layer)}
'prefix_icon': prefix_icon,
'suffix_label': suffix}
viewer_item['visible_layers'] = visible_layers

if not len(self._expected_subset_layers):
Expand Down
7 changes: 5 additions & 2 deletions jdaviz/container.vue
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,13 @@
<div v-for="(icon, layer_name) in layer_icons" :class="viewer.config==='imviz' ? 'viewer-label viewer-label-imviz invert-if-dark' : 'viewer-label invert-if-dark'">
<div v-if="Object.keys(viewer.visible_layers).indexOf(layer_name) !== -1">
<j-tooltip span_style="white-space: nowrap">
<v-icon :class="viewer.config==='imviz' ? 'invert' : 'invert-if-dark'" style="float: right">{{icon}}</v-icon>
<v-icon :class="viewer.config==='imviz' ? 'invert' : 'invert-if-dark'" style="float: right" :color="viewer.visible_layers[layer_name].color">{{icon}}</v-icon>
</j-tooltip>
<span :class="viewer.config==='imviz' ? 'invert' : 'invert-if-dark'" style="margin-left: 24px; margin-right: 32px; line-height: 24px">
{{layer_name}}{{viewer.visible_layers[layer_name].label_suffix}}
<v-icon v-if="viewer.visible_layers[layer_name].prefix_icon" dense>
{{viewer.visible_layers[layer_name].prefix_icon}}
</v-icon>
{{layer_name}}{{viewer.visible_layers[layer_name].suffix_label}}
</span>
</div>
</div>
Expand Down

0 comments on commit 0395e98

Please sign in to comment.