• Main Page
  • Namespaces
  • Data Structures
  • Files
  • File List

/www/proggenOrg/dedupe/export/trunk/userinterface/interface.h

00001 /*
00002 ** Dedupe
00003 **
00004 ** GUI Interface
00005 **
00006 ********************************************************/
00007 
00008 #ifndef ORG_PROGGEN_DEDUPE_GUIINTERFACE
00009 #define ORG_PROGGEN_DEDUPE_GUIINTERFACE
00010 
00011 #include <vector>
00012 #include <fileinfo.h>
00013 #include <kernel.h>
00014 
00015 namespace Dedupe
00016 {
00017   namespace GUI
00018   {
00019     namespace MainAction
00020     {
00025     enum MainAction
00026     {
00027         Track,    
00028         Untrack,  
00029         Index,    
00030         Manage,   
00031         Delete,   
00032         Edit,     
00033 
00034         Hide,     
00035         Show,     
00036         Quit      
00037       };
00038     }
00039 
00043     class Main
00044     {
00045       public:
00050         virtual void TrackFile( const Dedupe::FileInfo & file ) = 0;
00051 
00055         virtual void UntrackFile( const Dedupe::FileInfo & file ) = 0;
00056 
00060         virtual void ClearTrackedFiles() = 0;
00061 
00066         virtual bool IsRecursive() = 0;
00067 
00068       public:
00072         virtual int exec() = 0;
00073 
00074         Main( int argc, char *argv[] )
00075           : Kernel( ":memory:", 0, std::cout ) { /* Handle Parameters */ }
00076         virtual ~Main() {}
00077 
00078     protected:
00082         virtual std::vector<Dedupe::FileInfo> GetFiles() = 0;
00086         virtual std::vector<Dedupe::FileInfo> GetSelectedTrackedFiles() = 0;
00090         Dedupe::Core::Kernel Kernel;
00091 
00092         void OnTrack()
00093         {
00094           const std::vector<Dedupe::FileInfo> files = GetFiles();
00095           if( files.size() > 0 )
00096           {
00097             bool recursive = IsRecursive();
00098             Dedupe::FilePaths paths;
00099             for( unsigned int i = 0; i < files.size(); i++ )
00100             {
00101               TrackFile( files[i] );
00102               paths.push_back( files[i].GetPath() );
00103             }
00104             Kernel.TrackFiles( paths, recursive );
00105           }
00106         }
00107 
00108         void OnUntrack()
00109         {
00110           const std::vector<Dedupe::FileInfo> files = GetSelectedTrackedFiles();
00111           if( files.size() > 0 )
00112           {
00113             bool recursive = IsRecursive();
00114             Dedupe::FilePaths paths;
00115             for( unsigned int i = 0; i < files.size(); i++ )
00116             {
00117               UntrackFile( files[i] );
00118               paths.push_back( files[i].GetPath() );
00119             }
00120             Kernel.UntrackFiles( paths, recursive );
00121           }
00122         }
00123 
00124         void OnIndex()
00125         {
00126           ClearTrackedFiles();
00127           Dedupe::FileStream files = Kernel.GetDatabase();
00128           for( unsigned int i = 0; i < files.size(); i++ )
00129             TrackFile( files.at( i ).GetPath() );
00130         }
00131 
00132         void OnManage()
00133         {
00134           std::cout << "OnManage" << std::endl;
00135         }
00136 
00137         void OnDelete()
00138         {
00139           std::cout << "OnDelete" << std::endl;
00140         }
00141 
00142         void OnEdit()
00143         {
00144           std::cout << "OnEdit" << std::endl;
00145         }
00146 
00147         void OnHide()
00148         {
00149           std::cout << "Hiding window" << std::endl;
00150         }
00151 
00152         void OnShow()
00153         {
00154           std::cout << "Showing window" << std::endl;
00155         }
00156 
00157         void OnQuit()
00158         {
00159           std::cout << "Shutting down" << std::endl;
00160         }
00161 
00162     };
00163   }
00164 }
00165 
00166 #endif

Generated on Mon Mar 11 2013 12:04:52 for Dedupe by  doxygen 1.7.1