Exemplo n.º 1
0
  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();
  }
Exemplo n.º 2
0
    @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();
    }
Exemplo n.º 3
0
    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());
    }
Exemplo n.º 4
0
  @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);
  }