これは簡単な作業のようですが、ドキュメントを検索するどこかで接続が見つかりませんでした。GAE Datastoreの結果がJDOを使用してFlexTableになる
私はGAEに保存されているメニューを持っていると、クエリの結果を返すことができます。これらの結果と
public String[] getMeals() throws NotLoggedInException {
checkLoggedIn();
PersistenceManager pm = getPersistenceManager();
List<String> meals = new ArrayList<String>();
try {
Query q = pm.newQuery(Meal.class, "user == u");
q.declareParameters("com.google.appengine.api.users.User u");
q.setOrdering("createDate");
List<Meal> myMeals = (List<Meal>) q.execute(getUser());
for (Meal myMeal : myMeals) {
meals.add(myMeal.getMealID());
}
} finally {
pm.close();
}
return (String[]) meals.toArray(new String[0]);
}
、私はFlexTableにバインドしたいと思います。 Stockwatcherのサンプルを使用して、FlexTableにバインドされたIDを取得することができましたが、結果セットの他のフィールドをどのように結びつけるかという概念が欠落しています。 (GAEのフィールドはmealID、mealType、mealDateです)
上記からわかるように、私はmealIDをListに投げていることがわかります。 他のフィールドは、フィルタリングのために何もしなかったので、クエリにはが必要であることがわかりました。実際のところ、コードを次のように変更した場合:
meals.Add(myMeal.getMealID()、myMeal.getMealDate());
すべてのデータを返しますが、flexテーブルでは、1つの行の3つのフィールドではなく、新しい行として各アイテムが処理されます。
私の質問は、レコードをキャプチャしてFlexTableに送信して、FlexTableを結果セットにバインドできるようにすることです。 |
mealID:参考
、クライアント側のコードは:
private void loadMeals() {
// load meals from server service MealService
mealService.getMeals(new AsyncCallback<String[]>() {
public void onFailure(Throwable error) {
handleError(error);
}
public void onSuccess(String[] meals) {
displayMeals(meals);
}
});
}
private void displayMeals(String[] meals) {
for (String meal : meals) {
displayMenu(meal, meal, meal);
}
}
flextableは次のように読み込まれます食事タイプ| mealDate
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3
私はそれがこのように移入するをしたい:
mealID |食事タイプ| mealDate
1 |朝食| 12/22/2012
2 |ランチ| 12/22/2012
3 |スナック| 12/23/2012
ご連絡いただきありがとうございます!