00001 //# Copyright (C) 2008 00002 //# Associated Universities, Inc. Washington DC, USA. 00003 //# 00004 //# This program is free software; you can redistribute it and/or modify it 00005 //# under the terms of the GNU General Public License as published by the Free 00006 //# Software Foundation; either version 2 of the License, or (at your option) 00007 //# any later version. 00008 //# 00009 //# This program is distributed in the hope that it will be useful, but WITHOUT 00010 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00011 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 00012 //# more details. 00013 //# 00014 //# You should have received a copy of the GNU General Public License along 00015 //# with this program; if not, write to the Free Software Foundation, Inc., 00016 //# 675 Massachusetts Ave, Cambridge, MA 02139, USA. 00017 //# 00018 //# Correspondence concerning AIPS++ should be addressed as follows: 00019 //# Internet email: aips2-request@nrao.edu. 00020 //# Postal address: AIPS++ Project Office 00021 //# National Radio Astronomy Observatory 00022 //# 520 Edgemont Road 00023 //# Charlottesville, VA 22903-2475 USA 00024 //# 00025 00026 #ifndef PLOTENGINE_H_ 00027 #define PLOTENGINE_H_ 00028 00029 #include <graphics/GenericPlotter/PlotLogger.h> 00030 #include <graphics/GenericPlotter/PlotFactory.h> 00031 #include <plotms/Plots/PlotMSPlotManager.h> 00032 #include <plotms/PlotMS/PlotMSExportParam.h> 00033 #include <plotms/Plots/PlotMSPlotParameters.h> 00034 #include <plotms/PlotMS/PlotMSFlagging.h> 00035 00036 namespace casa { 00037 00038 class PlotMSPlot; 00039 00045 class PlotEngine { 00046 public: 00047 00048 // Gets the logger associated with this PlotMS. 00049 virtual PlotLoggerPtr getLogger() = 0; 00050 00051 // Returns the PlotMSPlotManager associated with this PlotMS. 00052 virtual PlotMSPlotManager& getPlotManager() = 0; 00053 virtual PlotFactoryPtr getPlotFactory() = 0; 00054 virtual PlotMSParameters& getParameters() = 0; 00055 virtual PlotMSExportParam& getExportParameters() = 0; 00056 00057 //Symbols 00058 virtual PlotSymbolPtr createSymbol (const String& descriptor, 00059 Int size, const String& color, 00060 const String& fillPattern, bool outline ) = 0; 00061 00062 virtual PlotMSPlot* addOverPlot(const PlotMSPlotParameters* p = NULL) = 0; 00063 00064 00065 //Show/hide 00066 virtual void showGUI(bool show = true) = 0; 00067 virtual bool guiShown() const = 0; 00068 virtual bool isClosed() const = 0; 00069 virtual void clearPlots() = 0; 00070 00071 virtual bool isOperationCompleted() const = 0; 00072 virtual void setOperationCompleted( bool complete) = 0; 00073 virtual bool save(const PlotExportFormat& format) = 0; 00074 virtual PlotMSFlagging getFlagging() const = 0; 00075 virtual void setFlagging(PlotMSFlagging flag) = 0; 00076 virtual void quitApplication() = 0; 00077 virtual bool isDrawing() const = 0; 00078 00079 virtual Record locateInfo( Bool& success, String& errorMessage ) = 0; 00080 00081 protected: 00082 PlotEngine(){} 00083 virtual ~PlotEngine(){}; 00084 }; 00085 00086 } 00087 #endif /* PLOTENGINE_H_ */