diff --git a/fsl/data/strings.py b/fsl/data/strings.py index ee69c6d367a6d7bbad44f9b4a06c044d4e982411..51b826498a83bece9f822e145c327d933ea8fbdd 100644 --- a/fsl/data/strings.py +++ b/fsl/data/strings.py @@ -54,6 +54,8 @@ messages = TypeDict({ 'saving the screenshot. Try ' 'calling render directly with ' 'this command: \n{}', + + 'HistogramPanel.noData' : 'Selected overlay has no data', }) diff --git a/fsl/fslview/views/histogrampanel.py b/fsl/fslview/views/histogrampanel.py index 624d6bed65328a93f2eb7321cd13abd560eed7da..6970306f4b39560e63635c973dd61ed176c80c4a 100644 --- a/fsl/fslview/views/histogrampanel.py +++ b/fsl/fslview/views/histogrampanel.py @@ -71,7 +71,7 @@ class HistogramPanel(plotpanel.PlotPanel): self._overlayList.addListener( 'overlays', self._name, - self._selectedOveralyChanged) + self._selectedOverlayChanged) self._displayCtx.addListener( 'selectedOverlay', self._name, @@ -160,6 +160,7 @@ class HistogramPanel(plotpanel.PlotPanel): overlay = self._displayCtx.getSelectedOverlay() if not isinstance(overlay, fslimage.Image): + self._displayMessage(strings.messages[self, 'noData']) return minval = float(overlay.data.min()) @@ -210,6 +211,18 @@ class HistogramPanel(plotpanel.PlotPanel): self._domainHighlight = None self.dataRange.x = newRange + + def _displayMessage(self, msg): + + axis = self.getAxis() + axis.clear() + axis.set_xlim((0.0, 1.0)) + axis.set_ylim((0.0, 1.0)) + axis.text(0.5, 0.5, msg, ha='center', va='center') + + self.getCanvas().draw() + self.Refresh() + def _drawPlot(self, *a):