* \ingroup View
*/
-
+ class ImageExtent;
//=====================================================================
//=====================================================================
class GimmickView: public MultiThreadImageReaderUser
{
public:
-
/// Ctor
GimmickView(Gimmick*, int number_of_threads = 0 );
/// Virtual destructor
virtual void GetSelectedFiles(std::vector<std::string>& s)
{ GimmickError("INTERNAL ERROR : GetSelectedFiles not implemented"); }
- virtual void OnSelectionChange(std::vector<tree::Node*>& s, bool isSelection, int selection, bool mProcess)
+
+ virtual void GetImages(int dim, std::vector<std::string> files, std::vector<vtkImageData*>& s)
+ { GimmickError("INTERNAL ERROR : GetImages not implemented"); }
+
+ virtual void OnSelectionChange(const 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"); }
+
+ ///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<std::string>& filenames)
+ { GimmickError("INTERNAL ERROR : CopyFiles not implemented"); }
+
+ ///Edits the fields of a given node
+ virtual void CreateEditFieldsDialog(tree::Node* node, std::vector<std::string> names, std::vector<std::string> 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 (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);
+ ///Reads the vector of images, builds it in the dimension required and returns them in the supplied vector.
+ void ReadImagesNotThreaded(std::vector<vtkImageData*>& s,std::vector<std::string> 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 , ImagePointerHolder *p);
std::string GetMessage(){return mMess;}
///Obtains the message of the state
void SetMessage(std::string mess){mMess=mess;}
- ///Clears status and begins a new selection
- void ClearStatus();
+ ///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
void ConnectValidationObserver(ValidationCallbackType callback);
//==================================================================
+
+
+ void modifyValidationSignal(bool ivalid);
private:
+
/// Controller which manages the interaction with the model
Gimmick* mGimmick;
/// The views
typedef std::deque<ImageEventType> ImageEventQueueType;
//ImageEventQueueType mImageEventQueue;
+ ///The current image extent
+ ImageExtent* mImageExtent;
+ ///The validation signal
ValidationSignalType mValidationSignal;
- std::string row;
- std::string col;
- std::string plane;
- int selectionSize;
+ ///Boolean that determines if the selection is valid
bool valid;
+ ///Boolean that determines if the reader has been started
+ bool mReaderStarted;
};
// EO class GimmickView