Aggregated values refresh after filtering in browser

Hi,

I have a browser with some aggregated values, which i cast to some fields. The total aggregation is presented perfectly, but when i filter on a period the aggregation result is change except the value that is casted to fields. This value remains the same. My question how can i get the values also to change when i filter.

This is my code:
@Inject
private GroupTable payrollItemsTable;
@Inject
private CurrencyField totaleWerknemersBelasting;
@Inject
private CurrencyField totaleWerknemersSolBelasting;
@Inject
private CurrencyField totaleAov;

@Subscribe
public void onAfterShow(AfterShowEvent event) {
    Map<Object, Object> results = payrollItemsTable.getAggregationResults();

    Object totaleNormalebelastingId = payrollItemsTable.getColumn("totaleNormalebelasting").getId();
    totaleWerknemersBelasting.setValue((BigDecimal) results.get(totaleNormalebelastingId));

    Object totaleSolidariteitsbelastingId = payrollItemsTable.getColumn("totaleSolidariteitsbelasting").getId();
    totaleWerknemersSolBelasting.setValue((BigDecimal) results.get(totaleSolidariteitsbelastingId));

    Object totaleAovId = payrollItemsTable.getColumn("totaleAov").getId();
    totaleAov.setValue((BigDecimal) results.get(totaleAovId));
}

screenshot:

image

Hi.

You should use Filter handler afterFilterAppliedHandler.

Here is an example how it could be implemented:

    @Inject
    private TextField<String> aggrField3;
    @Inject
    private TextField<String> aggrField2;
    @Inject
    private TextField<String> aggrField1;
    @Inject
    private GroupTable<NewEntity> newEntitiesTable;

    @Install(to = "filter", subject = "afterFilterAppliedHandler")
    private void filterAfterFilterAppliedHandler() {
        Map<Object, Object> results = newEntitiesTable.getAggregationResults();
        Object aggrResult1 = newEntitiesTable.getColumn("aggrField1").getId();
        aggrField1.setValue(String.valueOf((Double) results.get(aggrResult1)));

        Object aggrResult2 = newEntitiesTable.getColumn("aggrField2").getId();
        aggrField2.setValue(String.valueOf((Double) results.get(aggrResult2)));

        Object aggrResult3 = newEntitiesTable.getColumn("aggrField3").getId();
        aggrField3.setValue(String.valueOf((Double) results.get(aggrResult3)));
    }

More information about Filter

Regards,
Nadezhda.

Thanks Nadezhda it works fine.

Regards,
LS