diff --git a/SPECIFICATIONS.md b/SPECIFICATIONS.md index 2b5e683..66eb8f1 100644 --- a/SPECIFICATIONS.md +++ b/SPECIFICATIONS.md @@ -94,13 +94,14 @@ easyGrid.hideColumns("id", "createdAt", "updatedAt"); public class EasyColumn { // Type-specific formatting (EasyGrid-managed, applied to the column renderer) + EasyColumn setNullRepresentation(String nullRepresentation); EasyColumn setFormatter(SerializableFunction formatter); - EasyColumn setDateFormat(String pattern); - EasyColumn setDateTimeFormat(String pattern); - EasyColumn setNumberFormat(String pattern); - EasyColumn setBooleanLabels(String trueLabel, String falseLabel); + EasyColumn setRendererFactory(RendererFactory rendererFactory); EasyColumn setTextAlign(ColumnTextAlign textAlign); + // Cast-checked type narrowing — succeeds when the column's value type is a subtype of S + EasyColumn as(Class type); + // Standard Grid.Column configuration — delegated for fluent chaining EasyColumn setHeader(String headerText); EasyColumn setHeader(Component headerComponent); @@ -126,11 +127,15 @@ public class EasyColumn { Usage example: ```java +// Format dates using a renderer factory from the renderer utility classes easyGrid.getColumn("birthDate") - .setDateFormat("dd/MM/yyyy"); + .as(LocalDate.class) + .setRendererFactory(LocalDateRenderers.of("dd/MM/yyyy")); +// Format booleans with a custom formatter easyGrid.getColumn("subscriber") - .setBooleanLabels("Active", "Inactive"); + .as(Boolean.class) + .setFormatter(b -> b ? "Active" : "Inactive"); // Standard Grid.Column configuration available directly on EasyColumn easyGrid.getColumn("firstName") @@ -262,8 +267,10 @@ easyGrid.setColumnOrder("firstName", "lastName", "email", "birthDate", "age", "s easyGrid.hideColumns("id", "createdAt", "updatedAt"); // Type-specific formatting -easyGrid.getColumn("birthDate").setDateFormat("dd/MM/yyyy"); -easyGrid.getColumn("subscriber").setBooleanLabels("Yes", "No"); +easyGrid.getColumn("birthDate").as(LocalDate.class) + .setRendererFactory(LocalDateRenderers.of("dd/MM/yyyy")); +easyGrid.getColumn("subscriber").as(Boolean.class) + .setFormatter(b -> b ? "Yes" : "No"); // Standard Grid.Column configuration via EasyColumn directly easyGrid.getColumn("firstName")