Search in sources :

Example 1 with IBatchLookupService

use of org.eclipse.scout.rt.shared.services.lookup.IBatchLookupService in project scout.rt by eclipse.

the class AbstractContentAssistColumn method updateDisplayTexts.

@Override
public void updateDisplayTexts(List<ITableRow> rows) {
    try {
        if (rows.size() > 0) {
            BatchLookupCall batchCall = new BatchLookupCall();
            ArrayList<ITableRow> batchRowList = new ArrayList<ITableRow>();
            BatchLookupResultCache lookupResultCache = new BatchLookupResultCache();
            for (ITableRow row : rows) {
                ILookupCall<?> call = prepareLookupCall(row);
                if (call != null && call.getKey() != null) {
                    // split: local vs remote
                    if (call instanceof LocalLookupCall) {
                        applyLookupResult(row, lookupResultCache.getDataByKey(call));
                    } else {
                        batchRowList.add(row);
                        batchCall.addLookupCall(call);
                    }
                } else {
                    applyLookupResult(row, new ArrayList<ILookupRow<?>>(0));
                }
            }
            // 
            if (!batchCall.isEmpty()) {
                ITableRow[] tableRows = batchRowList.toArray(new ITableRow[batchRowList.size()]);
                IBatchLookupService service = BEANS.get(IBatchLookupService.class);
                List<List<ILookupRow<?>>> resultArray = service.getBatchDataByKey(batchCall);
                for (int i = 0; i < tableRows.length; i++) {
                    applyLookupResult(tableRows[i], resultArray.get(i));
                }
            }
        }
    } catch (RuntimeException e) {
        BEANS.get(ExceptionHandler.class).handle(e);
    }
}
Also used : IBatchLookupService(org.eclipse.scout.rt.shared.services.lookup.IBatchLookupService) ILookupRow(org.eclipse.scout.rt.shared.services.lookup.ILookupRow) ArrayList(java.util.ArrayList) ITableRow(org.eclipse.scout.rt.client.ui.basic.table.ITableRow) BatchLookupResultCache(org.eclipse.scout.rt.shared.services.lookup.BatchLookupResultCache) BatchLookupCall(org.eclipse.scout.rt.shared.services.lookup.BatchLookupCall) LocalLookupCall(org.eclipse.scout.rt.shared.services.lookup.LocalLookupCall) ArrayList(java.util.ArrayList) List(java.util.List)

Example 2 with IBatchLookupService

use of org.eclipse.scout.rt.shared.services.lookup.IBatchLookupService in project scout.rt by eclipse.

the class AbstractSmartColumn2 method updateDisplayTexts.

@Override
public void updateDisplayTexts(List<ITableRow> rows) {
    try {
        if (rows.size() > 0) {
            BatchLookupCall batchCall = new BatchLookupCall();
            ArrayList<ITableRow> batchRowList = new ArrayList<ITableRow>();
            BatchLookupResultCache lookupResultCache = new BatchLookupResultCache();
            for (ITableRow row : rows) {
                ILookupCall<?> call = prepareLookupCall(row);
                if (call != null && call.getKey() != null) {
                    // split: local vs remote
                    if (call instanceof LocalLookupCall) {
                        applyLookupResult(row, lookupResultCache.getDataByKey(call));
                    } else {
                        batchRowList.add(row);
                        batchCall.addLookupCall(call);
                    }
                } else {
                    applyLookupResult(row, new ArrayList<ILookupRow<?>>(0));
                }
            }
            // 
            if (!batchCall.isEmpty()) {
                ITableRow[] tableRows = batchRowList.toArray(new ITableRow[batchRowList.size()]);
                IBatchLookupService service = BEANS.get(IBatchLookupService.class);
                List<List<ILookupRow<?>>> resultArray = service.getBatchDataByKey(batchCall);
                for (int i = 0; i < tableRows.length; i++) {
                    applyLookupResult(tableRows[i], resultArray.get(i));
                }
            }
        }
    } catch (RuntimeException e) {
        BEANS.get(ExceptionHandler.class).handle(e);
    }
}
Also used : IBatchLookupService(org.eclipse.scout.rt.shared.services.lookup.IBatchLookupService) ILookupRow(org.eclipse.scout.rt.shared.services.lookup.ILookupRow) ArrayList(java.util.ArrayList) ITableRow(org.eclipse.scout.rt.client.ui.basic.table.ITableRow) BatchLookupResultCache(org.eclipse.scout.rt.shared.services.lookup.BatchLookupResultCache) BatchLookupCall(org.eclipse.scout.rt.shared.services.lookup.BatchLookupCall) LocalLookupCall(org.eclipse.scout.rt.shared.services.lookup.LocalLookupCall) ArrayList(java.util.ArrayList) List(java.util.List)

Aggregations

ArrayList (java.util.ArrayList)2 List (java.util.List)2 ITableRow (org.eclipse.scout.rt.client.ui.basic.table.ITableRow)2 BatchLookupCall (org.eclipse.scout.rt.shared.services.lookup.BatchLookupCall)2 BatchLookupResultCache (org.eclipse.scout.rt.shared.services.lookup.BatchLookupResultCache)2 IBatchLookupService (org.eclipse.scout.rt.shared.services.lookup.IBatchLookupService)2 ILookupRow (org.eclipse.scout.rt.shared.services.lookup.ILookupRow)2 LocalLookupCall (org.eclipse.scout.rt.shared.services.lookup.LocalLookupCall)2