X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOGimmickView.h;h=bc160c5bf853962664755009974ec6b0466b227e;hb=b029354f54449e058d14c671e7155e65b4086de6;hp=7e7a2471d8b2e8e3a0fdcf576d94472955d64bd4;hpb=b1411b0e357cdc5349c9615cca84623d6aa06996;p=creaImageIO.git diff --git a/src2/creaImageIOGimmickView.h b/src2/creaImageIOGimmickView.h index 7e7a247..bc160c5 100644 --- a/src2/creaImageIOGimmickView.h +++ b/src2/creaImageIOGimmickView.h @@ -4,6 +4,7 @@ #include #include #include +#include //#include #include @@ -28,6 +29,8 @@ namespace creaImageIO /** * \ingroup View */ + + class ImageExtent; //===================================================================== //===================================================================== @@ -66,45 +69,53 @@ namespace creaImageIO virtual void GetSelectedFiles(std::vector& s) { GimmickError("INTERNAL ERROR : GetSelectedFiles not implemented"); } - virtual void OnSelectionChange(std::vector& s) + + virtual void GetImages(int dim, std::vector files, std::vector& s) + { GimmickError("INTERNAL ERROR : GetImages not implemented"); } + + virtual void OnSelectionChange(const std::vector& s, bool isSelection, int selection, bool mProcess) { GimmickError("INTERNAL ERROR : OnSelectionChange not implemented"); } + virtual void ClearSelection() { GimmickError("INTERNAL ERROR : ClearSelection not implemented"); } + + ///Adds a file to ignore + virtual void AddIgnoreFile(tree::Node* toRemove) + { GimmickError("INTERNAL ERROR : AddIgnoreFile not implemented"); } + ///Copies selected files + virtual void CopyFiles(const std::vector& filenames) + { GimmickError("INTERNAL ERROR : CopyFiles not implemented"); } + + ///Edits the fields of a given node + virtual void CreateEditFieldsDialog(tree::Node* node, std::vector names, std::vector keys) + { GimmickError("INTERNAL ERROR : EditFields not implemented"); } ///Validates the dimension compliance of the images with the maximum and minimum given, and between their sizes - bool ValidateSelected (std::vector& 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& s,std::vector im, int dim); + ///Reads the vector of images, builds it in the dimension required and returns them in the supplied vector. + void ReadImagesNotThreaded(std::vector& s,std::vector files, 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); - - ///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();} - + void RequestReading(tree::Node* n, int prio, int selection_index , ImagePointerHolder *p); + ///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(); + /// Create a tree view with a given name + void CreateSingleTreeView(std::string &i_name); + /// Create the tree view for TreeHandler provided - virtual void CreateTreeView( TreeHandler*) + virtual void CreateTreeView( TreeHandler* ) { GimmickError("INTERNAL ERROR : CreateTreeView not implemented"); } /// Updates the TreeView of given name from level l to bottom @@ -134,8 +145,12 @@ namespace creaImageIO void ConnectValidationObserver(ValidationCallbackType callback); //================================================================== + + + void modifyValidationSignal(bool ivalid); private: + /// Controller which manages the interaction with the model Gimmick* mGimmick; /// The views @@ -150,15 +165,16 @@ namespace creaImageIO /// else it has been unloaded struct ImageEventType { - ImageEventType( tree::Node* no = 0, - vtkImageData* im = 0, - int sel_index = -1) - : node(no), image(im), index(sel_index) {} + ImageEventType( tree::Node* no = 0, + int sel_index = -1, + ImagePointerHolder* ph= 0) + : node(no), index(sel_index), pointerHolder(ph){} ImageEventType(vtkImageData* im ) : image(im) {} tree::Node* node; vtkImageData* image; - int index; + int index; + ImagePointerHolder* pointerHolder; }; typedef std::map ImageEventTypeMap; /// Map of images' names to ImageEventType @@ -166,9 +182,16 @@ namespace creaImageIO ImageEventTypeMap mImageEventMap; // queue of image event typedef std::deque 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 @@ -322,4 +345,4 @@ namespace creaImageIO } // EO namespace creaImageIO // EOF -#endif +#endif