]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOGimmickView.h
The number of files on adding files now corresponds.
[creaImageIO.git] / src2 / creaImageIOGimmickView.h
index 86948c503100f9d4bec7769ffefb59954cadf35d..751e5babab42e1e75c6094397151badcbfbac0c0 100644 (file)
@@ -30,7 +30,7 @@ namespace creaImageIO
        * \ingroup View
        */
         
-
+       class ImageExtent;
     //=====================================================================
     
     //=====================================================================
@@ -38,7 +38,6 @@ namespace creaImageIO
        class GimmickView: public MultiThreadImageReaderUser
     {
     public:
-       
       /// Ctor
       GimmickView(Gimmick*, int number_of_threads = 0 );
       /// Virtual destructor
@@ -70,39 +69,28 @@ namespace creaImageIO
 
       virtual void GetSelectedFiles(std::vector<std::string>& s)
       { GimmickError("INTERNAL ERROR : GetSelectedFiles not implemented"); }
-      virtual void OnSelectionChange(std::vector<tree::Node*>& s)
+      virtual void OnSelectionChange(std::vector<tree::Node*>& s, bool isSelection, int selection, bool mProcess)
       { GimmickError("INTERNAL ERROR : OnSelectionChange not implemented"); }
           virtual void ClearSelection()
       { GimmickError("INTERNAL ERROR : ClearSelection not implemented"); }
       
       
       ///Validates the dimension compliance of the images with the maximum and minimum given, and between their sizes
-      bool ValidateSelected (std::vector<tree::Node*>& sel, int min_dim, int max_dim);
+      bool ValidateSelected (tree::Node* sel, int min_dim, int max_dim);
       
       ///Reads the vector of nodes, builds images in the dimension required and returns them in the supplied vector.
       void ReadImagesNotThreaded(std::vector<vtkImageData*>& s,std::vector<tree::Node*> im, int dim);
       ///Requests the reading of an image with priority and index in the 
       /// current selection (-1 if not in selection)
       void RequestReading(tree::Node* n, int prio, int selection_index , ImagePointerHolder *p);
-
-      ///Returns true if the ImageEventQueue is empty
-      bool IsQueueEmpty(){return mImageEventQueue.empty();}
-      ///Clears the queue
-      void ClearQueue(){mImageEventQueue.clear();}
-      ///Returns the next in line EventType's image
-      vtkImageData* GetNextImageQueued(){return mImageEventQueue.front().image;}
-      ///Returns the next in line EventType's node
-      tree::Node* GetNextNodeQueued(){return mImageEventQueue.front().node;}
-      ///Returns the next in line EventType's index in selection
-      int GetNextSelectionIndexQueued(){return mImageEventQueue.front().index;}
-      ///Unqueus the next in line EventType
-      void UnqueueNext(){mImageEventQueue.pop_front();}
-      
+     
       
       ///Obtains the message of the state
       std::string GetMessage(){return mMess;}
       ///Obtains the message of the state
       void SetMessage(std::string mess){mMess=mess;}
+         ///Resets the data of the extent and begins a new selection
+         void ResetExtent();
 
       /// Create the tree views 
       void CreateTreeViews();
@@ -140,6 +128,7 @@ namespace creaImageIO
 
 
     private:
+       
       /// Controller which manages the interaction with the model
       Gimmick* mGimmick;
       /// The views 
@@ -171,9 +160,16 @@ namespace creaImageIO
       ImageEventTypeMap mImageEventMap;
       // queue of image event 
       typedef std::deque<ImageEventType> ImageEventQueueType;
-      ImageEventQueueType mImageEventQueue;
+      //ImageEventQueueType mImageEventQueue;
 
+         ///The current image extent
+         ImageExtent* mImageExtent;
+         ///The validation signal
          ValidationSignalType mValidationSignal;
+         ///Boolean that determines if the selection is valid
+         bool valid;
+         ///Boolean that determines if the reader has been started
+         bool mReaderStarted;
       
        };
   // EO class GimmickView