39 std::string iCollectionName,
54 std::vector< GoDBTraceInfoForTableWidget >
62 temp.
ToolTip =
"Check/Uncheck ";
65 std::pair< GoDBTraceInfoForTableWidget, std::vector< std::string > > PairTemp;
66 PairTemp.first = temp;
76 PairTemp.first = temp;
90 PairTemp.first = temp;
98 ColorTrace +=
"Color";
105 PairTemp.first = temp;
112 std::string OtherInfo =
"RedFor";
118 PairTemp.first = temp;
125 OtherInfo =
"GreenFor";
131 PairTemp.first = temp;
138 OtherInfo =
"BlueFor";
144 PairTemp.first = temp;
151 OtherInfo =
"AlphaFor";
157 PairTemp.first = temp;
165 ColorCollection +=
"Color";
173 PairTemp.first = temp;
180 OtherInfo =
"RedFor";
188 PairTemp.first = temp;
195 OtherInfo =
"GreenFor";
203 PairTemp.first = temp;
210 OtherInfo =
"BlueFor";
218 PairTemp.first = temp;
225 OtherInfo =
"AlphaFor";
233 PairTemp.first = temp;
247 PairTemp.first = temp;
259 PairTemp.first = temp;
271 PairTemp.first = temp;
283 PairTemp.first = temp;
295 PairTemp.first = temp;
307 PairTemp.first = temp;
318 PairTemp.first = temp;
330 PairTemp.first = temp;
342 PairTemp.first = temp;
354 PairTemp.first = temp;
365 PairTemp.first = temp;
378 PairTemp.first = temp;
391 PairTemp.first = temp;
404 PairTemp.first = temp;
420 std::pair< GoDBTraceInfoForTableWidget, std::vector< std::string > > PairTemp;
425 PairTemp.first = temp;
433 std::list< std::pair< std::string, std::string > >
436 std::list< std::pair< std::string, std::string > > oListColumnNamesAndToolTips;
442 std::pair< std::string, std::string > temp;
445 oListColumnNamesAndToolTips.push_back(temp);
448 return oListColumnNamesAndToolTips;
456 std::vector< std::string > ListComputedColumnNames;
464 ListComputedColumnNames.push_back(
m_ColumnsInfos[i].ColumnNameTableWidget);
467 return ListComputedColumnNames;
475 std::vector< std::string > SelectFields;
484 m_ColumnsInfos[i].SameFieldForDifferentValues == SameFieldsInQuery
494 bool IsSelectFieldsInTheVector =
false;
496 while ( IsSelectFieldsInTheVector ==
false && j < SelectFields.size() )
498 if ( SelectFields[j] == temp )
500 IsSelectFieldsInTheVector =
true;
504 if ( IsSelectFieldsInTheVector ==
false )
506 SelectFields.push_back(temp);
518 std::vector< std::vector< std::string > > iResultsFromQuery,
519 std::vector< std::string > iSelectFields, std::string BaseOn)
521 for (
size_t i = 0; i < iSelectFields.size(); i++ )
523 bool HasBeenFound =
false;
524 for (
size_t j = 0; j <
m_RowContainer.size() && HasBeenFound ==
false; j++ )
526 std::string test = iSelectFields[i];
530 size_t PosColumnNameFound;
531 if ( BaseOn.empty() )
534 iSelectFields[i].find(
m_RowContainer[j].first.ColumnNameDatabase);
538 if ( BaseOn ==
"ColumnNameTableWidget" )
540 std::string NameColumn =
m_RowContainer[j].first.ColumnNameTableWidget;
541 if ( !NameColumn.empty() )
544 iSelectFields[i].find(NameColumn);
548 PosColumnNameFound = std::string::npos;
553 std::cout <<
"The BaseOn you choose doesn't exist" << std::endl;
554 std::cout <<
"Debug: In " << __FILE__ <<
", line " << __LINE__;
555 std::cout << std::endl;
559 if ( PosColumnNameFound != std::string::npos &&
m_RowContainer[j].second.empty() )
562 for (
size_t RowNumberForQueryResults = 0;
563 RowNumberForQueryResults < iResultsFromQuery.size();
564 ++RowNumberForQueryResults )
566 std::vector< std::string > ResultsFromQueryForOneTrace =
567 iResultsFromQuery[RowNumberForQueryResults];
571 m_RowContainer[j].second.push_back(ResultsFromQueryForOneTrace[i]);
583 std::list< std::string > SelectNamesColumns;
584 std::vector< std::string > SelectJoinTables;
596 std::vector< std::string >::iterator iter = SelectJoinTables.begin();
597 bool IsTableInTheList =
false;
598 while ( iter != SelectJoinTables.end() && IsTableInTheList == false )
602 IsTableInTheList =
true;
610 if ( IsTableInTheList ==
false
612 &&
m_ColumnsInfos[i].SameFieldForDifferentValues == SameFieldsInQuery )
614 if (
m_ColumnsInfos[i].AccessFromTraceTableThroughWhichTable ==
"None" )
624 SelectJoinTables.push_back(OnQuery);
630 std::cout <<
"Pb: access table is different than the Collection Table" << std::endl;
631 std::cout <<
"Debug: In " << __FILE__ <<
", line " << __LINE__;
632 std::cout << std::endl;
638 SelectJoinTables.push_back(
m_ColumnsInfos[i].AccessFromTraceTableThroughWhichTable);
646 SelectJoinTables.push_back(OnQuery);
657 SelectJoinTables.push_back(OnQuerybis);
665 return SelectJoinTables;
688 vtkMySQLDatabase *iDatabaseConnector, std::list<unsigned int> iListTPs)
692 "ImagingsessionID", ConvertToString< unsigned int >(this->
m_ImgSessionID),
702 vtkMySQLDatabase *iDatabaseConnector,
int iTraceID)
714 vtkMySQLDatabase *iDatabaseConnector,
715 std::string iRestrictionName, std::string iRestrictionValue,
716 std::list<unsigned int> iListTimePoints)
720 std::vector< std::string > JoinFirstTablesOnTraceTable =
722 std::vector< std::string > SelectFirstFields =
726 std::vector< std::string > JoinSecondTablesOnTraceTable =
728 std::vector< std::string > SelectSecondFields =
731 std::vector< std::vector< std::string > > ResultsFirstQuery;
732 std::vector< std::vector< std::string > > ResultsSecondQuery;
735 if (iListTimePoints.empty())
738 iDatabaseConnector, this->
m_TracesName, SelectFirstFields, iRestrictionName,
739 iRestrictionValue, JoinFirstTablesOnTraceTable,
true);
742 iDatabaseConnector, this->
m_TracesName, SelectSecondFields, iRestrictionName,
743 iRestrictionValue, JoinSecondTablesOnTraceTable,
false);
747 std::vector<FieldWithValue> OrConditions;
748 std::list<unsigned int>::iterator iter = iListTimePoints.begin();
749 while (iter != iListTimePoints.end() )
752 temp.
Field =
"coordinate.TCoord";
753 unsigned int Tp = *iter;
754 temp.
Value = ConvertToString<unsigned int>(Tp);
755 OrConditions.push_back(temp);
759 iDatabaseConnector, this->
m_TracesName, SelectFirstFields, iRestrictionName,
760 iRestrictionValue, JoinFirstTablesOnTraceTable,
true, OrConditions);
763 iDatabaseConnector, this->
m_TracesName, SelectSecondFields, iRestrictionName,
764 iRestrictionValue, JoinSecondTablesOnTraceTable,
false, OrConditions);
778 std::vector< std::vector< std::string > > *iComputedValues)
781 if ( !ListComputedNames.empty() )
783 std::vector< std::vector< std::string > > ComputedValues;
784 if ( iComputedValues == 0 && !ListComputedNames.empty() )
788 std::vector< std::string > EmptyVector;
790 for (
unsigned int i = 0; i < ListComputedNames.size(); i++ )
792 EmptyVector.push_back(
"NV");
794 ComputedValues.push_back(EmptyVector);
800 ComputedValues = *iComputedValues;
803 ComputedValues, ListComputedNames,
"ColumnNameTableWidget");
811 std::string iGroupName)
813 std::vector< int > oIndexColor;
814 std::string RedInfoName =
"RedFor";
815 RedInfoName += iGroupName;
818 std::string GreenInfoName =
"GreenFor";
819 GreenInfoName += iGroupName;
822 std::string BlueInfoName =
"BlueFor";
823 BlueInfoName += iGroupName;
826 std::string AlphaInfoName =
"AlphaFor";
827 AlphaInfoName += iGroupName;
842 iter->second.clear();
868 std::vector< std::string > VectorIDsstr = this->
m_RowContainer[IndexColumn].second;
869 std::vector< std::string >::iterator iter = VectorIDsstr.begin();
870 std::vector< int > vectorInt;
871 while ( iter != VectorIDsstr.end() )
873 std::string intstr = *iter;
874 vectorInt.push_back( ss_atoi< int >(intstr) );
std::vector< std::vector< std::string > > GetValuesFromSeveralTables(vtkMySQLDatabase *DatabaseConnector, const std::string &MainTable, const std::vector< std::string > &SelectFields, const std::string &field, const std::string &value, const std::vector< std::string > &JoinTablesOnTraceTable, bool Distinct)