From 68db9abb0980e9b2fe33e9fc2190629d0a2dc9d0 Mon Sep 17 00:00:00 2001
From: Houtan Bastani <houtan@dynare.org>
Date: Thu, 22 May 2014 18:30:56 +0200
Subject: [PATCH] reporting: add new option graphShowInLegend to addSeries

---
 @graph/writeGraphFile.m              |  2 +-
 @report_series/getNameForLegend.m    | 31 ++++++++++++++++++++++++++++
 @report_series/report_series.m       |  2 ++
 @report_series/writeSeriesForGraph.m |  1 +
 4 files changed, 35 insertions(+), 1 deletion(-)
 create mode 100644 @report_series/getNameForLegend.m

diff --git a/@graph/writeGraphFile.m b/@graph/writeGraphFile.m
index b379416..2b706a8 100644
--- a/@graph/writeGraphFile.m
+++ b/@graph/writeGraphFile.m
@@ -183,7 +183,7 @@ end
 for i=1:ne
     o.series{i}.writeSeriesForGraph(fid, dd);
     if o.showLegend
-        le = o.series{i}.getTexName();
+        le = o.series{i}.getNameForLegend();
         if ~isempty(le)
             fprintf(fid, '\\addlegendentry{%s}\n', le);
         end
diff --git a/@report_series/getNameForLegend.m b/@report_series/getNameForLegend.m
new file mode 100644
index 0000000..0748a8d
--- /dev/null
+++ b/@report_series/getNameForLegend.m
@@ -0,0 +1,31 @@
+function s = getNameForLegend(o)
+%function s = getNameForLegend(o)
+
+% Copyright (C) 2014 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% Dynare is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+if isempty(o.data) || ~o.graphShowInLegend
+    % for the case when there is no data in the series
+    % e.g. graphVline was passed
+    % or when the user does not want this series shown in
+    % the legend
+    s = '';
+else
+    assert(size(o.data,2) == 1);
+    s = o.data.tex{:};
+end
+end
\ No newline at end of file
diff --git a/@report_series/report_series.m b/@report_series/report_series.m
index 7c708df..0fcb611 100644
--- a/@report_series/report_series.m
+++ b/@report_series/report_series.m
@@ -41,6 +41,8 @@ o.graphLineColor = 'black';
 o.graphLineStyle = 'solid';
 o.graphLineWidth = 0.5;
 
+o.graphShowInLegend = true;
+
 o.graphMarker = '';
 o.graphMarkerEdgeColor = '';
 o.graphMarkerFaceColor = '';
diff --git a/@report_series/writeSeriesForGraph.m b/@report_series/writeSeriesForGraph.m
index 315d5c8..0d3123f 100644
--- a/@report_series/writeSeriesForGraph.m
+++ b/@report_series/writeSeriesForGraph.m
@@ -37,6 +37,7 @@ end
 
 assert(ischar(o.graphMiscTikzAddPlotOptions), ['@report_series.writeSeriesForGraph: ' ...
                     'graphMiscTikzAddPlotOptions file must be a string']);
+assert(islogical(o.graphShowInLegend), '@graph.graph: graphShowInLegend must be either true or false');
 
 % Line
 valid_graphLineColor = {'red', 'green', 'blue', 'cyan ', 'magenta', 'yellow', ...
-- 
GitLab