Move getColumnWidthForField out into its own method

This commit is contained in:
2023-07-27 08:38:22 -05:00
parent 953c4cc569
commit c7622c12f5

View File

@ -259,7 +259,6 @@ export default class DataGridUtils
public static makeColumnFromField = (field: QFieldMetaData, tableMetaData: QTableMetaData, namePrefix?: string, labelPrefix?: string): GridColDef => public static makeColumnFromField = (field: QFieldMetaData, tableMetaData: QTableMetaData, namePrefix?: string, labelPrefix?: string): GridColDef =>
{ {
let columnType = "string"; let columnType = "string";
let columnWidth = 200;
let filterOperators: GridFilterOperator<any>[] = QGridStringOperators; let filterOperators: GridFilterOperator<any>[] = QGridStringOperators;
if (field.possibleValueSourceName) if (field.possibleValueSourceName)
@ -273,28 +272,18 @@ export default class DataGridUtils
case QFieldType.DECIMAL: case QFieldType.DECIMAL:
case QFieldType.INTEGER: case QFieldType.INTEGER:
columnType = "number"; columnType = "number";
columnWidth = 100;
if (field.name === tableMetaData.primaryKeyField && field.label.length < 3)
{
columnWidth = 75;
}
filterOperators = QGridNumericOperators; filterOperators = QGridNumericOperators;
break; break;
case QFieldType.DATE: case QFieldType.DATE:
columnType = "date"; columnType = "date";
columnWidth = 100;
filterOperators = QGridDateOperators; filterOperators = QGridDateOperators;
break; break;
case QFieldType.DATE_TIME: case QFieldType.DATE_TIME:
columnType = "dateTime"; columnType = "dateTime";
columnWidth = 200;
filterOperators = QGridDateTimeOperators; filterOperators = QGridDateTimeOperators;
break; break;
case QFieldType.BOOLEAN: case QFieldType.BOOLEAN:
columnType = "string"; // using boolean gives an odd 'no' for nulls. columnType = "string"; // using boolean gives an odd 'no' for nulls.
columnWidth = 75;
filterOperators = QGridBooleanOperators; filterOperators = QGridBooleanOperators;
break; break;
case QFieldType.BLOB: case QFieldType.BLOB:
@ -305,6 +294,31 @@ export default class DataGridUtils
} }
} }
let headerName = labelPrefix ? labelPrefix + field.label : field.label;
let fieldName = namePrefix ? namePrefix + field.name : field.name;
const column: GridColDef = {
field: fieldName,
type: columnType,
headerName: headerName,
width: DataGridUtils.getColumnWidthForField(field, tableMetaData),
renderCell: null as any,
filterOperators: filterOperators,
};
column.renderCell = (cellValues: any) => (
(cellValues.value)
);
return (column);
}
/*******************************************************************************
**
*******************************************************************************/
public static getColumnWidthForField = (field: QFieldMetaData, table?: QTableMetaData): number =>
{
if (field.hasAdornment(AdornmentType.SIZE)) if (field.hasAdornment(AdornmentType.SIZE))
{ {
const sizeAdornment = field.getAdornment(AdornmentType.SIZE); const sizeAdornment = field.getAdornment(AdornmentType.SIZE);
@ -318,7 +332,7 @@ export default class DataGridUtils
]); ]);
if (widths.has(width)) if (widths.has(width))
{ {
columnWidth = widths.get(width); return widths.get(width);
} }
else else
{ {
@ -326,23 +340,31 @@ export default class DataGridUtils
} }
} }
let headerName = labelPrefix ? labelPrefix + field.label : field.label; if(field.possibleValueSourceName)
let fieldName = namePrefix ? namePrefix + field.name : field.name; {
return (200);
}
const column: GridColDef = { switch (field.type)
field: fieldName, {
type: columnType, case QFieldType.DECIMAL:
headerName: headerName, case QFieldType.INTEGER:
width: columnWidth,
renderCell: null as any,
filterOperators: filterOperators,
};
column.renderCell = (cellValues: any) => ( if (table && field.name === table.primaryKeyField && field.label.length < 3)
(cellValues.value) {
); return (75);
}
return (column); return (100);
case QFieldType.DATE:
return (100);
case QFieldType.DATE_TIME:
return (200);
case QFieldType.BOOLEAN:
return (75);
}
return (200);
} }
} }