2017-06-14 7 views
0

Bonjour ami Je développe une application GWT, où j'utilise TreeGrid. Lorsque j'utilise comme grille régulière dans cette classe de la mine:Comment faire pour actualiser TreeGrid dans GWT?

RpcProxy<ListLoadResult<GwtDatastoreAsset>> proxy = new RpcProxy<ListLoadResult<GwtDatastoreAsset>>() { 

      @Override 
      protected void load(Object loadConfig, AsyncCallback<ListLoadResult<GwtDatastoreAsset>> callback) { 
       if (selectedDevice != null) { 
       dataService.findAssets((LoadConfig) loadConfig, currentSession.getSelectedAccount().getId(), selectedDevice, callback); 
       } 
      } 
     }; 

     loader = new BaseListLoader<ListLoadResult<GwtDatastoreAsset>>(proxy); 
     loader.load(); 
     SwappableListStore<GwtDatastoreAsset> store = new SwappableListStore<GwtDatastoreAsset>(loader); 
     assetGrid = new Grid<GwtDatastoreAsset>(store, new ColumnModel(configs)); 
     assetGrid.setBorders(false); 
     assetGrid.setStateful(false); 
     assetGrid.setLoadMask(true); 
     assetGrid.setStripeRows(true); 
     assetGrid.getView().setAutoFill(true); 
     assetGrid.getView().setEmptyText(MSGS.assetTableEmptyText()); 
     assetGrid.disableTextSelection(false); 

Dans cette classe dans ma méthode de rafraîchissement je fais juste assetGrid.getStore() getLoader() charge();.. et c'est tout, mais avec TreeGrid je ne peux pas faire comme ça. Ceci est ma méthode avec TreeGrid:

AsyncCallback<List<GwtTopic>> topicsCallback = new AsyncCallback<List<GwtTopic>>() { 

      @Override 
      public void onSuccess(List<GwtTopic> topics) { 
       store.add(topics, true); 
       topicInfoGrid.unmask(); 
      } 

      @Override 
      public void onFailure(Throwable t) { 
       FailureHandler.handle(t); 
       topicInfoGrid.unmask(); 
      } 
     }; 
     dataService.findTopicsTree(currentSession.getSelectedAccount().getId(), topicsCallback); 
     topicInfoGrid = new TreeGrid<GwtTopic>(store, new ColumnModel(configs)); 
     topicInfoGrid.setBorders(false); 
     topicInfoGrid.setStateful(false); 
     topicInfoGrid.setLoadMask(true); 
     topicInfoGrid.mask("Loading"); 
     topicInfoGrid.setStripeRows(true); 
     topicInfoGrid.getView().setAutoFill(true); 
     topicInfoGrid.getView().setEmptyText(MSGS.topicInfoGridEmptyText()); 
     topicInfoGrid.disableTextSelection(false); 

Alors ma question est de savoir comment rendre la méthode de rafraîchissement pour TreeGrid comme je l'ai fait avec grille régulière.

Répondre

0

Essayez d'ajouter ceci après méthode onSuccess:

topicInfoGrid.getTreeView().refresh(true); 

ou ceci si le travail de rafraîchissement ne marche pas

topicInfoGrid.reconfigure(store, cm, treeColumn);