2009-07-14 21 views
2

昨日、私は怠け者リストのためにSQLデータベースをSmartGWTに統合しようとしていましたが、実装方法を理解できませんでした。 (およびexample of a lazy listSmartGWTとSQLを使用してレイジーリストを実装する方法

私がしたいことは、世界中の多数の「サイト」のリストを作成することです。問題はおそらく約100万個になるので、私は一度にできるだけ少数を読み込もうとしています。私のDBの各サイトにはアドレスがありますので、(Country-> State-> City-> Sites)のようなツリー構造で並べ替えようとしています。あなたがレベルを下がるたびに、次のレベルのすべてを尋ねるDBへのクエリがあります(それは、選択された州のサイトを持つすべての都市か、これまでのところ)。

ご協力いただきまして誠にありがとうございます。

ALSO: リンクされた例では、フォルダとリーフは要素の型ですが、フォルダやフォルダを保持する方法はありますか?

答えて

3

私はついにそれを得ました。私は、次のレベルのすべてのTreeNodesの名前を表す文字列の配列を提供する独自のRPCを作成しました。

したがってエントリポイントは次のようになります

private NodeServiceAsync nodesRpc; //The RPC that grabs more nodes 
private Tree data; //The data structure to hold all of the nodes 
private ColumnTree list; //The GUI element that is shown on in the browser 
public void onModuleLoad() { 
    nodesRpc = (NodeServiceAsync) GWT.create(NodeService.class); 
    data = new Tree(); 
    list = new ColumnTree; 

    list.setAutoFetchData(true); 
    list.setLoadDataOnDemand(true); 

    list.addNodeSelectedHandler(new NodeSelectedHandler() { 
     public void onNodeSelected(NodeSelectedEvent event) { 
      if(/*Node is folder and hasn't been opened before*/) { 
       //Get More Nodes   
       AsyncCallback<String[]> callback = new NodeGetter<String[]>(); 
       nodesRpc.getData(event.getNode(), callback); 
      } 

      else if(/*Node is not a folder (at the end) */) { 
       //Do something else 
      } 
     } 
    }); 
    list.setData(data); //Make the GUI Element Represent The Data Structure 
    RootPanel.get().add(list); //Add to screen 
} 

サーバ側serverletは、クエリを作成し実行し、その後、文字列の配列にResultSetを変換し、その後ろを通過します。すべてのコールバックは、クライアント側で、その配列をTreeNodeの配列に変換し、クリックされた元のNodeにアタッチします。最後に、GUI要素が新しいノードで再描画されます。

照会された場所のノードが時々表示されても、ノードのロード(1秒以下)の間に非常に小さなダウンタイムがあったのには驚きました。

3

注意:このようなSQL接続(Javaサーバープラットフォーム用)を含むProバージョンの製品もあります。ここでのショーケース:

http://www.smartclient.com/smartgwtee/showcase/ 

Proの製品でSQLコネクタは、要求/データページング、検索、およびすべての4つのCRUD操作の負荷、などが含まれる既存のデータベースのテーブルのために働いてSQLデータソースを生成することができますデータソースウィザードJDBC設定を入力するだけです。

注意Pro製品はSQLを必要としないことに注意してください。これは接続できるものの1つに過ぎません。

関連する問題