]> Creatis software - creaImageIO.git/blob - src2/creaImageIOTreeView.h
Added Timestamp database to avoid repetition of files on addition.
[creaImageIO.git] / src2 / creaImageIOTreeView.h
1 #ifndef __creaImageIOTreeView_h_INCLUDED__
2 #define __creaImageIOTreeView_h_INCLUDED__
3
4 #include <creaImageIOTreeHandler.h>
5 #include <creaImageIOTimestampDatabaseHandler.h>
6 #include <creaImageIOSystem.h>
7 #include <vtkImageData.h>
8
9 namespace creaImageIO
10 {
11
12   class GimmickView;
13
14   /**
15    * \ingroup View
16    */
17         
18   //=====================================================================
19
20   //=====================================================================
21   /// Abstract class that handles the view of a Tree through its TreeHandler
22   class TreeView
23     {
24     public:
25       /// Ctor
26       TreeView(TreeHandler*,TimestampDatabaseHandler*,GimmickView*);
27       /// Virtual destructor
28       virtual ~TreeView();
29
30       
31       /// Updates the view of a level given the selected items of upper level
32       virtual void UpdateLevel( int ) 
33       { GimmickError("INTERNAL ERROR : TreeView::UpdateLevel not overloaded");}
34
35           ///Removes selected nodes
36           virtual void RemoveSelected( )
37           { GimmickError("INTERNAL ERROR : TreeView::RemoveSelected not overloaded");}
38
39           ///Validates the selected images
40       virtual void ValidateSelectedImages()
41           { GimmickError("INTERNAL ERROR : TreeView::ValidateSelected not overloaded");}
42           
43           ///Returns the maximum number of levels
44           virtual int GetNumberOfLevels(){ GimmickError("INTERNAL ERROR : TreeView::GetLevels not overloaded"); }
45           ///Gets the current selections filenames
46           virtual void GetSelectedAsString(std::vector<std::string>&s){ GimmickError("INTERNAL ERROR : TreeView::GetSelectedAsString not overloaded"); }
47
48           /// Gets the user selected data from the level passed as a parameter
49       virtual const std::vector<tree::Node*>& GetSelected(int level){ GimmickError("INTERNAL ERROR : TreeView::GetSelected not overloaded"); }
50
51           /// Gets the next nodes on the list, be it up(true) or down(false).
52       virtual void GetNodes(std::vector<tree::Node*>& nodes, bool direction){ GimmickError("INTERNAL ERROR : TreeView::GetNodes not overloaded"); }
53
54     protected:
55       TreeHandler* GetTreeHandler() { return mTreeHandler; }
56           TimestampDatabaseHandler* GetTimestampDatabaseHandler() { return mTimestampDatabaseHandler; }
57       GimmickView* GetGimmickView() { return mGimmickView; }
58          
59     private:
60       /// The TreeHandler with which it corresponds
61       TreeHandler* mTreeHandler;
62            /// The Timestamp handler with which it corresponds
63           TimestampDatabaseHandler* mTimestampDatabaseHandler;
64       /// The GimmickView which holds the TreeView
65       GimmickView* mGimmickView;  
66
67   };
68     // EO class TreeView
69     //=====================================================================
70   
71   
72 } // EO namespace creaImageIO
73
74 // EOF
75 #endif