+ ImageEventType t(n,selection_index, p);
+ mImageEventMap[n->GetAttribute("FullFileName")] = t;
+ mReader.Request(this,n->GetAttribute("FullFileName"),prio);
+ }
+ //======================================================================
+
+ //======================================================================
+ void GimmickView::
+ OnMultiThreadImageReaderEvent(const std::string& filename,
+ MultiThreadImageReaderUser::EventType e,
+ vtkImageData* image)
+ {
+ GimmickDebugMessage(7,
+ "MultiThreadImageReader event : "<<e<<std::endl);
+ if (e==ImageLoaded)
+ {
+ if (filename.size()==0)
+ {
+ //What to do in this case?
+ /*
+ GimmickDebugMessage(5,
+ "Pushing unknown image in queue"
+ <<std::endl);
+ mImageEventQueue.push_back(ImageEventType(image));*/
+ return;
+ }
+ ImageEventTypeMap::iterator i;
+//JCP 22-06-2009, test mImageEventMap.size() > 0
+ if(mImageEventMap.size()>0){
+ i = mImageEventMap.find(filename);
+ if (i!=mImageEventMap.end())
+ {
+ GimmickDebugMessage(5,
+ "Putting image of file '"<<filename<<"' on pointer"
+ <<std::endl);
+ ImageEventType ie(i->second);
+ ie.image = image;
+ ie.pointerHolder->Set(ie.image);
+ //mImageEventMap.erase(i);
+ }
+ }
+ }
+ else if (e==Error)
+ {
+ std::string mess="ERROR: MultiThreadImageReader: Cannot read image in file ";
+ mess+=filename;
+ mess+="\n";
+ GimmickMessage(1,mess);
+ ImageEventTypeMap::iterator i;
+ i = mImageEventMap.find(filename);
+ if (i!=mImageEventMap.end())
+ {
+ ImageEventType ie(i->second);
+ ie.image = image;
+ ie.pointerHolder->Set(GetDefaultImage());
+ //mImageEventMap.erase(i);
+ }
+ }
+
+ else if (e==ImageUnloaded)
+ {
+ std::string mess="Unloaded image in file ";
+ mess+=filename;
+ mess+="\n";
+ GimmickMessage(1,mess);
+ ImageEventTypeMap::iterator i;
+ i = mImageEventMap.find(filename);
+ if (i!=mImageEventMap.end())
+ {
+ ImageEventType ie(i->second);
+ ie.image = image;
+ ie.pointerHolder->Set(GetDefaultImage());
+ //mImageEventMap.erase(i);
+ }
+
+ }
+ }
+
+ //====================================================================
+
+ //====================================================================
+ void GimmickView::ConnectValidationObserver(ValidationCallbackType callback)
+ {
+ mValidationSignal.connect(callback);