Source
1
+
//# Copyright (C) 2009
2
+
//# Associated Universities, Inc. Washington DC, USA.
3
+
//#
4
+
//# This library is free software; you can redistribute it and/or modify it
5
+
//# under the terms of the GNU Library General Public License as published by
6
+
//# the Free Software Foundation; either version 2 of the License, or (at your
7
+
//# option) any later version.
8
+
//#
9
+
//# This library is distributed in the hope that it will be useful, but WITHOUT
10
+
//# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
+
//# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
12
+
//# License for more details.
13
+
//#
14
+
//# You should have received a copy of the GNU Library General Public License
15
+
//# along with this library; if not, write to the Free Software Foundation,
16
+
//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
17
+
//#
18
+
//# Correspondence concerning AIPS++ should be addressed as follows:
19
+
//# Internet email: aips2-request@nrao.edu.
20
+
//# Postal address: AIPS++ Project Office
21
+
//# National Radio Astronomy Observatory
22
+
//# 520 Edgemont Road
23
+
//# Charlottesville, VA 22903-2475 USA
24
+
//#
25
+
26
+
#include "FlagActionUtil.h"
27
+
#include <plotms/PlotMS/PlotMS.h>
28
+
#include <plotms/Plots/PlotMSPlot.h>
29
+
#include <plotms/Plots/PlotMSPlotParameterGroups.h>
30
+
#include <plotms/Client/Client.h>
31
+
32
+
using namespace casacore;
33
+
namespace casa {
34
+
35
+
FlagActionUtil::FlagActionUtil()
36
+
: flaggedPlots(){
37
+
}
38
+
39
+
FlagActionUtil::~FlagActionUtil() {
40
+
}
41
+
42
+
void FlagActionUtil::addRedrawPlot( PlotMSPlot* plot ){
43
+
flaggedPlots.push_back( plot );
44
+
}
45
+
46
+
void FlagActionUtil::redrawPlots(Client *client, PlotMSPlot* plot, vector<PlotCanvasPtr>& visibleCanv ){
47
+
// For a flag/unflag, need to tell the plots to redraw themselves,
48
+
// and clear selected regions.
49
+
bool hold = client->allDrawingHeld();
50
+
if(!hold) client->holdDrawing();
51
+
52
+
for(unsigned int i = 0; i < flaggedPlots.size(); i++) {
53
+
flaggedPlots[i]->plotDataChanged();
54
+
55
+
vector<PlotCanvasPtr> canv = plot->canvases();
56
+
for(unsigned int j = 0; j < canv.size(); j++) {
57
+
// Only apply to visible canvases.
58
+
bool visible = false;
59
+
for(unsigned int k = 0;
60
+
!visible && k < visibleCanv.size(); k++)
61
+
if(canv[j] == visibleCanv[k]) visible = true;
62
+
if(!visible) continue;
63
+
64
+
canv[j]->clearSelectedRects();
65
+
}
66
+
}
67
+
68
+
if(!hold) client->releaseDrawing();
69
+
flaggedPlots.clear();
70
+
}
71
+
72
+
} /* namespace casa */