private void updateDisplay( final String datasourceName, final String tableName, final boolean withSummary) { // rely on 304 response UriBuilder ub = UriBuilders.DATASOURCE_TABLE.create(); if (withSummary) ub.query("counts", "true"); ResourceRequestBuilderFactory.<TableDto>newBuilder() .forResource(ub.build(datasourceName, tableName)) .get() .withCallback( new ResourceCallback<TableDto>() { @Override public void onResource(Response response, TableDto resource) { if (resource != null) { if (!withSummary) { updateDisplay(resource); // then get the summary updateDisplay(datasourceName, tableName, true); } else { table = resource; String variableCount = resource.hasVariableCount() ? resource.getVariableCount() + "" : "-"; String valueSetCount = resource.hasValueSetCount() ? resource.getValueSetCount() + "" : "-"; getView().setTableSummary(variableCount, valueSetCount); } } } }) // .withCallback( Response.SC_NOT_FOUND, new ResponseCodeCallback() { @Override public void onResponseCode(Request request, Response response) { fireEvent( NotificationEvent.newBuilder() .warn("NoSuchValueTable") .args(tableName) .build()); placeManager.revealPlace(ProjectPlacesHelper.getTablesPlace(datasourceName)); } }) // .withCallback( Response.SC_BAD_REQUEST, new ResponseCodeCallback() { @Override public void onResponseCode(Request request, Response response) { fireEvent( NotificationEvent.newBuilder() .error((ClientErrorDto) JsonUtils.unsafeEval(response.getText())) .build()); } }) .send(); }
@Override public void onSummaryRequest(SummaryRequiredEvent event) { datasource = event.getDatasource(); table = event.getTable(); variable = event.getVariable(); getView().setLimit(DEFAULT_LIMIT); UriBuilder resourceUri = event.getResourceUri(); resourceUri.query("fullIfCached", "true"); configureSummaryRequest(resourceUri, event.getMax(), datasource, table, variable); requestSummary(); }
private String getUri() { UriBuilder uriBuilder = tableIsView() ? UriBuilders.DATASOURCE_VIEW_VARIABLES.create() : UriBuilders.DATASOURCE_TABLE_VARIABLES.create(); for (int i = nb_deleted, added = 0; i < variableNames.length() && added < BATCH_SIZE; i++, added++) { uriBuilder.query("variable", variableNames.get(i)); } return uriBuilder.build(table.getDatasourceName(), table.getName()); }
@SuppressWarnings("ParameterHidesMemberVariable") public void configureSummaryRequest( UriBuilder uriBuilder, int entitiesCount, String datasource, String table, String variable) { cancelPendingSummaryRequest(); this.entitiesCount = entitiesCount; if (limit < entitiesCount) { uriBuilder.query("limit", String.valueOf(limit)); } resourceRequestBuilder = ResourceRequestBuilderFactory.<SummaryStatisticsDto>newBuilder() .forResource(uriBuilder.build(datasource, table, variable)) .get(); limit = Math.min(entitiesCount, limit); }