getTableRowByID method
dynamic
getTableRowByID(
- dynamic tableName,
- dynamic id
Implementation
getTableRowByID(tableName, id) {
myLogAll('getTableRowByID');
if (isNull(id)) {
return {};
}
dynamic tableInfo = _tableList[tableName];
if (isNull(tableInfo)) {
return {};
}
List tableData = tableInfo[gData];
if (isNull(tableInfo[gTableMapPrefix]) ||
isNull(tableInfo[gTableMapPrefix][gId])) {
Map<dynamic, int> mapIDIndex = {};
for (int i = 0; i < tableData.length; i++) {
mapIDIndex[tableData[i][gId]] = i;
}
if (isNull(tableInfo[gTableMapPrefix])) {
tableInfo[gTableMapPrefix] = {};
}
tableInfo[gTableMapPrefix][gId] = mapIDIndex;
}
if (id == gNewSearch) {
return getTableRowSearch(tableName);
}
int index = tableInfo[gTableMapPrefix][gId][id];
if (isNull(index)) {
for (int i = 0; i < tableData.length; i++) {
if (tableData[i][gId] == id) {
tableInfo[gTableMapPrefix][gId][id] = i;
return tableData[i];
}
}
}
return tableData[index];
}