TerraLib 4.1
E:/Projetos_Primeiro_Semestre_2012/TerraView/terralib/src/terralib/drivers/spl/PluginParameters.h
Go to the documentation of this file.
00001 /************************************************************************************
00002 TerraView - visualization and exploration of geographical databases
00003 using TerraLib.
00004 Copyright � 2001-2007 INPE and Tecgraf/PUC-Rio.
00005 This file is part of TerraView. TerraView is free software; you can redistribute it 
00006 and/or modify it under the terms of the GNU General Public License as published by
00007 the Free Software Foundation; either version 2 of the License, or
00008 (at your option) any later version.
00009 
00010 You should have received a copy of the GNU General Public License
00011 along with TerraView.
00012 The authors reassure the license terms regarding the warranties.
00013 They specifically disclaim any warranties, including, but not limited to,
00014 the implied warranties of merchantability and fitness for a particular purpose.
00015 The software provided hereunder is on an "as is" basis, and the authors have no
00016 obligation to provide maintenance, support, updates, enhancements, or modifications.
00017 In no event shall INPE and Tecgraf / PUC-Rio be held liable to any party for direct,
00018 indirect, special, incidental, or consequential damages arising out of the use of
00019 this program and its documentation.
00020 *************************************************************************************/
00021 
00022 #ifndef PLUGINPARAMETERS_H
00023   #define PLUGINPARAMETERS_H
00024   
00025   #define PLUGINPARAMETERS_VERSION "PLUGINPARAMETERS_VERSION_201010210938" \
00026     "_TERRALIB_VERSION_" TERRALIB_VERSION 
00027 //    "_QT_VERSION_" QT_VERSION_STR
00028   
00029 //  #include <TeQtDatabasesListView.h>
00030 //  #include <TeQtViewsListView.h>
00031 //  #include <TeQtGrid.h>
00032 //  #include <TeQtCanvas.h>
00033 //
00034 //  #include <TeDatabase.h>
00035 //  #include <TeLayer.h>
00036 //  #include <TeView.h>
00037 //  #include <TeAppTheme.h>
00038 //  #include <TeProgress.h>
00039 //  #include <TeDatabaseFactory.h>
00040 //  #include <TeVersion.h>
00041 //  #include "PluginsSignal.h"
00042 //  #include <PluginMetadata.h>
00043 //
00044 //  #include <qmainwindow.h>
00045 #include "../../kernel/TeCommunicator.h"
00046 #include "../../kernel/TeVersion.h"
00047 #include "TeSPLDefines.h"
00048 
00049 //Qt include files
00050 //#include <qglobal.h>
00051 
00052 //STL include files
00053 #include <string>
00054 
00055 //Forward declarations
00056 class TeQtDatabasesListView;
00057 class TeQtViewsListView;
00058 class TeQtGrid;
00059 class TeQtCanvas;
00060 class TeDatabase;
00061 class TeLayer;
00062 class TeView;
00063 class TeAppTheme;
00064 class TeProgressBase;
00065 class TeDatabaseFactory;
00066 class TeVersion;
00067 class PluginsSignal;
00068 class PluginMetadata;
00069 class QMainWindow;
00070 
00075   class TLSPL_DLL PluginParameters
00076   {
00077     public :
00078     
00079       /* DO NOT MOVE THIS FUNCTION FROM THE CLASS BEGINNING -------------- */
00080       
00087       static std::string getVersion()
00088       {
00089         return  PLUGINPARAMETERS_VERSION;
00090       };
00091       
00092       /* DO NOT MOVE THIS FUNCTION FROM THE CLASS BEGINNING -------------- */
00093       
00105              typedef std::string (*getCurrentUserPtrFPT)( 
00106         const PluginParameters& ); 
00107 
00112       typedef TeDatabase* (*getCurrentDatabasePtrFPT)( 
00113         const PluginParameters& ); 
00114       
00119       typedef TeLayer* (*getCurrentLayerPtrFPT)( 
00120         const PluginParameters& );          
00121     
00126       typedef TeView* (*getCurrentViewPtrFPT)( 
00127         const PluginParameters& );     
00128         
00133       typedef TeAppTheme* (*getCurrentThemeAppPtrFPT)( 
00134         const PluginParameters& );
00135 
00140       typedef void (*setCurrentThemeAppPtrFPT)( 
00141         TeAppTheme*, const PluginParameters& );
00142         
00147       typedef void (*updateTVInterfaceFPT)( 
00148         const PluginParameters& );
00149 
00154       typedef void (*plotTVDataFPT)( 
00155         const PluginParameters& );
00156 
00161              typedef void (*setPluginMetadataFPT)( 
00162         const PluginParameters&, const PluginMetadata& );
00163         
00168       typedef bool (*loadTranslationFileFPT)( 
00169         const PluginParameters&, const std::string& );         
00170 
00177       typedef void (*updatePluginParametersFPT)( PluginParameters& );
00178     
00191       QMainWindow* qtmain_widget_ptr_;
00192     
00197       TeProgressBase* teprogressbase_ptr_;
00198       
00202       TeQtDatabasesListView* teqtdatabaseslistview_ptr_;          
00203 
00207       TeQtViewsListView* teqtviewslistview_ptr_;          
00208       
00212       TeQtGrid* teqtgrid_ptr_;
00213 
00218       TeQtCanvas* teqtcanvas_ptr_;      
00219             
00229       TeDatabase* current_database_ptr_;
00230       
00240       TeLayer* current_layer_ptr_;      
00241 
00251       TeView* current_view_ptr_;
00252       
00259       TeAppTheme* current_theme_ptr_;
00260   
00265       TeCommunicator<PluginsSignal>* signal_emitter_;
00266 
00271              bool     use_collection_;
00272 
00276              std::string currentPluginName_;
00277 
00281              std::string currentUser_;
00282       
00292       PluginParameters();
00293       
00332       PluginParameters(
00333         QMainWindow* qtmain_widget_ptr,
00334         TeProgressBase* teprogressbase_ptr,
00335         TeQtDatabasesListView* teqtdatabaseslistview_ptr,
00336         TeQtViewsListView* teqtviewslistview_ptr,
00337         TeQtGrid* teqtgrid_ptr,
00338         TeQtCanvas* teqtcanvas_ptr,
00339         TeDatabase* current_database_ptr,
00340         TeLayer* current_layer_ptr,
00341         TeView* current_view_ptr,
00342         TeAppTheme* current_theme_ptr,
00343         TeCommunicator<PluginsSignal>* signal_emitter,
00344                       bool use_collection,
00345                       std::string currentPluginName,
00346                       std::string currentUser,
00347         getCurrentDatabasePtrFPT getCurrentDatabasePtrFP,
00348         getCurrentLayerPtrFPT getCurrentLayerPtrFP,
00349         getCurrentViewPtrFPT getCurrentViewPtrFP,
00350         getCurrentThemeAppPtrFPT getCurrentThemeAppPtrFP,
00351                       setCurrentThemeAppPtrFPT setCurrentThemeAppPtrFP,
00352         updateTVInterfaceFPT updateTVInterfaceFP,
00353         loadTranslationFileFPT loadTranslationFileFP,
00354         updatePluginParametersFPT updatePluginParametersFP,
00355                       plotTVDataFPT plotTVDataFP,
00356                       setPluginMetadataFPT setPluginMetadataFP,
00357                       getCurrentUserPtrFPT getCurrentUserPtrFP
00358         );      
00359         
00363       ~PluginParameters();
00364       
00376              std::string getCurrentUserPtr() const;   
00377        
00383       TeDatabase* getCurrentDatabasePtr() const;    
00384       
00390       TeLayer* getCurrentLayerPtr() const;      
00391       
00397       TeView* getCurrentViewPtr() const;
00398       
00404       TeAppTheme* getCurrentThemeAppPtr() const;
00405 
00411       void setCurrentThemeAppPtr(TeAppTheme*);
00412       
00420       void updateTVInterface( const PluginParameters& pp ) const;
00421       
00427       void updateTVInterface() const;      
00428 
00434       void plotTVData() const;
00435 
00440              void setPluginMetadata(const PluginMetadata& pluginMetadata) const;
00441       
00451       bool loadTranslationFile( const PluginParameters& pp,
00452         const std::string& filename ) const; 
00453       
00460       bool loadTranslationFile( const std::string& filename ) const;        
00461 
00468       void updatePluginParameters( PluginParameters& pp ) const; 
00469 
00474              bool useCollection() const;
00475       
00476     protected :
00477     
00487       getCurrentUserPtrFPT getCurrentUserPtrFP_;
00488 
00493       getCurrentDatabasePtrFPT getCurrentDatabasePtrFP_;
00494       
00499       getCurrentLayerPtrFPT getCurrentLayerPtrFP_;
00500       
00505       getCurrentViewPtrFPT getCurrentViewPtrFP_;
00506     
00511       getCurrentThemeAppPtrFPT getCurrentThemeAppPtrFP_;
00512 
00517       setCurrentThemeAppPtrFPT setCurrentThemeAppPtrFP_;
00518       
00523       updateTVInterfaceFPT updateTVInterfaceFP_;
00524       
00529       loadTranslationFileFPT loadTranslationFileFP_;   
00530       
00535       updatePluginParametersFPT updatePluginParametersFP_;
00536 
00541       plotTVDataFPT plotTVDataFP_;
00542 
00546              setPluginMetadataFPT setPluginMetadataFP_;
00547       
00551       void init();             
00552     
00553   };
00554 
00555 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines