From 1240236527f942c1bf320f185850156ee2bfc9c4 Mon Sep 17 00:00:00 2001
From: Paul McCarthy <pauld.mccarthy@gmail.com>
Date: Thu, 21 May 2015 14:43:54 +0100
Subject: [PATCH] HistogramPanel shows a message if non-volumetric overlay is
 selected

---
 fsl/data/strings.py                 |  2 ++
 fsl/fslview/views/histogrampanel.py | 15 ++++++++++++++-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/fsl/data/strings.py b/fsl/data/strings.py
index ee69c6d36..51b826498 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 624d6bed6..6970306f4 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):
 
-- 
GitLab