public void caricaDati() {
    // Initialize the service proxy.
    if (dstoreSvc == null) {
      dstoreSvc = GWT.create(AziendaService.class);
    }

    AsyncCallback<ArrayList> callback =
        new AsyncCallback<ArrayList>() {

          @Override
          public void onFailure(Throwable caught) {
            status.setStatus("Problemi di comunicazione col server", baseStyle);
          }

          @Override
          public void onSuccess(ArrayList result) {
            aziende = result;
            BeanModelFactory factory = BeanModelLookup.get().getFactory(Azienda.class);
            if (result != null) {
              Iterator it = result.iterator();
              while (it.hasNext()) {
                Object azienda = it.next();
                BeanModel aziendaModel = factory.createModel(azienda);
                store.add(aziendaModel);
              }
            }
            status.setStatus("Dati caricati con successo", baseStyle);
          }
        };
    // Make the call to the stock price service.
    status.setBusy("Caricamento dati in corso...");
    aziende.clear();
    store.removeAll();
    dstoreSvc.carica(callback);
  }
  private void cancellaDati(ArrayList aziende) {
    // Initialize the service proxy.
    if (dstoreSvc == null) {
      dstoreSvc = GWT.create(AziendaService.class);
    }
    AsyncCallback<Void> callback =
        new AsyncCallback<Void>() {

          @Override
          public void onFailure(Throwable caught) {
            status.setStatus("Problemi di comunicazione col server", baseStyle);
          }

          @Override
          public void onSuccess(Void result) {
            status.setStatus("Dati cancellati con successo", baseStyle);
          }
        };
    // Make the call to the stock price service.
    dstoreSvc.cancella(aziende, callback);
  }
  private void salvaDati(ArrayList<Azienda> aziende) {
    // Initialize the service proxy.
    if (dstoreSvc == null) {
      dstoreSvc = GWT.create(AziendaService.class);
    }
    AsyncCallback<Void> callback =
        new AsyncCallback<Void>() {

          @Override
          public void onFailure(Throwable caught) {
            status.setStatus("Problemi di comunicazione col server", baseStyle);
          }

          @Override
          public void onSuccess(Void result) {
            // I dati vengono ricaricati per ottenere gli ID assegnati dal DataStore alle entità
            // appena aggiunte
            caricaDati();
          }
        };
    // Make the call to the stock price service.
    dstoreSvc.salva(aziende, callback);
  }