43 #include <QFileDialog>
47 #include "vtkSmartPointer.h"
49 #include "vtkTreeWriter.h"
50 #include "vtkMutableDirectedGraph.h"
51 #include "vtkGraphLayoutView.h"
55 QGoDBTraceManager(), m_LineageContainerInfoForVisu(NULL), m_TrackContainerInfoForVisu(NULL)
57 this->
SetInfo(iImgSessionID, iparent);
78 this->SetTracesInfoContainerForVisuTemplate< LineageContainer >(
86 SIGNAL(UpdateLineageHighlightingFromTrackRootID(
unsigned int)),
92 SIGNAL( HighlightLineage(
const unsigned int&,
const bool&) ),
93 m_TrackContainerInfoForVisu,
94 SLOT( HighlightCollection(
const unsigned int&,
const bool&) ) );
97 SIGNAL( ShowLineage(
const unsigned int&,
const bool&) ),
98 m_TrackContainerInfoForVisu,
99 SLOT( ShowCollection(
const unsigned int&,
const bool&) ) );
121 vtkMySQLDatabase *iDatabaseConnector)
123 this->DisplayInfoForAllTracesTemplate< GoDBTWContainerForLineage >(
131 vtkMySQLDatabase *iDatabaseConnector,
132 const std::list<unsigned int> & iListTPs)
142 vtkMySQLDatabase *iDatabaseConnector)
147 std::list<unsigned int> ListIDs(VectorIDs.begin(), VectorIDs.end());
149 std::list<LineageStructure> list_of_traces =
156 std::list<LineageStructure>::iterator it = list_of_traces.begin();
157 while ( it != list_of_traces.end() )
177 unsigned int iTraceID)
206 vtkMySQLDatabase *iDatabaseConnector)
208 this->DisplayInfoForLastCreatedTraceTemplate< GoDBTWContainerForLineage >(
216 vtkMySQLDatabase *iDatabaseConnector,
int iTraceID)
218 this->DisplayInfoForExistingTraceTemplate< GoDBTWContainerForLineage >(
226 vtkMySQLDatabase *iDatabaseConnector,
unsigned int iTrackRoot)
229 unsigned int NewLineageID =
248 vtkMySQLDatabase *iDatabaseConnector)
255 std::list< unsigned int >::iterator it = oList.begin();
256 while( it != oList.end() )
273 const std::vector< int > & iVectorImportedTraces,
274 vtkMySQLDatabase *iDatabaseConnector)
295 const std::list< unsigned int > & iListTraces)
298 this->DeleteTracesTemplate< LineageContainer >(iDatabaseConnector,
318 UpdateElementHighlightingWithGivenTraceID(iTraceID);
321 GetLineageTrackRootID(iTraceID);
324 GetLineageHighlighted(iTraceID);
336 UpdateElementVisibilityWithGivenTraceID(iTraceID);
339 GetLineageTrackRootID(iTraceID);
342 GetLineageVisibile(iTraceID);
351 vtkMySQLDatabase *iDatabaseConnector,
352 std::list< unsigned int > iListTraceIDs)
354 std::list<LineageStructure> list_of_traces =
357 std::list<LineageStructure>::iterator it = list_of_traces.begin();
358 while ( it != list_of_traces.end() )
373 std::string ColumnName =
"";
374 std::map<unsigned int, std::string> Values;
375 std::map<unsigned int, std::string> NewValues;
384 std::map<unsigned int, std::string>::iterator trackRootIt = Values.begin();
385 while(trackRootIt != Values.end())
387 unsigned int trackRoot =
390 std::pair<unsigned int,std::string>(trackRoot, trackRootIt->second) );
394 vtkLookupTable* LUT = NULL;
396 bool IsRandomIncluded =
402 IsRandomIncluded, this->
m_Table );
404 switch ( UserColorway )
435 vtkMySQLDatabase* iDatabaseConnector,
436 unsigned int iLineageID,
unsigned int iTrackIDRoot)
440 LastLineage.
SetField(
"TrackIDRoot", iTrackIDRoot);
441 LastLineage.
SaveInDB(iDatabaseConnector);
464 std::list<unsigned int> rootIDs =
467 std::list<unsigned int> lineageIDs =
470 std::list<unsigned int>::iterator itLineage = lineageIDs.begin();
471 std::list<unsigned int>::iterator itTrack = rootIDs.begin();
474 while(itLineage != lineageIDs.end() )
476 vtkMutableDirectedGraph* graph =
479 vtkSmartPointer<vtkTree> tree =
480 vtkSmartPointer<vtkTree>::New();
481 tree->CheckedDeepCopy(graph);
484 vtkSmartPointer<vtkTreeWriter> writer =
485 vtkSmartPointer<vtkTreeWriter>::New();
486 writer->SetInput(tree);
506 const std::list< unsigned int > & iListTracesIDs,
510 iDatabaseConnector, iListTracesIDs);
512 std::list<unsigned int>::const_iterator iter = iListTracesIDs.begin();
514 while(iter != iListTracesIDs.end() )
516 std::list<unsigned int> Listiter;
517 Listiter.push_back(*iter);
556 std::list<unsigned int> ListLineagesToDelete =
572 vtkMySQLDatabase *iDatabaseConnector,
573 const std::list<unsigned int> & iLineagesID)
575 std::list<unsigned int> TrackFamiliesToDelete =
578 std::list<unsigned int>::iterator iter = TrackFamiliesToDelete.begin();
579 while(iter != TrackFamiliesToDelete.end() )
592 vtkMySQLDatabase *iDatabaseConnector,
unsigned int iTrackFamilyID)
598 Daughter.
SetField(
"TrackFamilyID", 0);
599 Daughter.
SaveInDB(iDatabaseConnector);
601 Daughter.
SetField(
"TrackFamilyID", 0);
602 Daughter.
SaveInDB(iDatabaseConnector);
606 TrackFamily.
GetMapValue<
unsigned int>(
"TrackIDMother") );