#include <creaImageIOGimmickView.h>
#include <creaImageIOSystem.h>
+#include "boost/filesystem.hpp"
+
+namespace fs = boost::filesystem;
+
namespace creaImageIO
{
//======================================================================
{
mMessage="Selection OK !";
}
+ mValidationSignal(valid);
SetMessage(mMessage);
return valid;
}
}
}
-
+ //======================================================================
+ //======================================================================
+ ///Requests the reading of an image
+ void GimmickView::RequestReading(tree::Node* n,
+ int prio, int selection_index)
+ {
+ ImageEventType t(n,0,selection_index);
+ mImageEventMap[n->GetAttribute("FullFileName")] = t;
+ mReader.Request(this,n->GetAttribute("FullFileName"),prio);
+ }
//======================================================================
//======================================================================
MultiThreadImageReaderUser::EventType e,
vtkImageData* image)
{
+ GimmickDebugMessage(7,
+ "MultiThreadImageReader event : "<<e<<std::endl);
+ if (e==ImageLoaded)
+ {
if (filename.size()==0)
{
+ GimmickDebugMessage(5,
+ "Pushing unknown image in queue"
+ <<std::endl);
mImageEventQueue.push_back(ImageEventType(image));
return;
}
- std::map<std::string,tree::Node*>::iterator i;
- i = mImageFileNameToNode.find(filename);
- if (i!=mImageFileNameToNode.end())
+ ImageEventTypeMap::iterator i;
+ i = mImageEventMap.find(filename);
+ if (i!=mImageEventMap.end())
{
- mImageEventQueue.push_back(ImageEventType(i->second,image));
+ GimmickDebugMessage(5,
+ "Pushing image of file '"<<filename<<"' in queue"
+ <<std::endl);
+ ImageEventType e(i->second);
+ e.image = image;
+ mImageEventQueue.push_back(e);
+ mImageEventMap.erase(i);
}
+ }
+ else if (e==Error)
+ {
+ std::string mess="ERROR: MultiThreadImageReader: Cannot read image in file ";
+ mess+=filename;
+ mess+="\n";
+ GimmickMessage(1,mess);
+ }
+
+ else if (e==ImageUnloaded)
+ {
+ std::string mess="Unloaded image in file ";
+ mess+=filename;
+ mess+="\n";
+ GimmickMessage(1,mess);
+ }
+ }
+
+ //====================================================================
+
+ //====================================================================
+ void GimmickView::ConnectValidationObserver(ValidationCallbackType callback)
+ {
+ mValidationSignal.connect(callback);
}