Dies scheint wie eine einfache Aufgabe, aber irgendwo in der Suche in der Dokumentation- Ich habe die Verbindung verpasst.GAE Datastore Ergebnisse zu FlexTable mit JDO
Ich habe ein Menü in GAE gespeichert und die Ergebnisse einer Abfrage zurückgeben kann:
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]);
}
Mit diesen Ergebnissen, ich mag es zu einem Flextable binden. Mit dem Stockwatcher-Beispiel habe ich es geschafft, meine ID an die FlexTable zu binden, aber es fehlt mir das Konzept, wie ich die anderen Felder in meiner Ergebnismenge an diese binden soll. (Die Felder, die ich in der GAE habe, sind mealID, mealType und mealDate)
Von oben können wir sehen, dass ich mealID in eine Liste hole. Ich weiß auch, dass meine anderen Felder in der Abfrage vorhanden sein müssen, weil ich nichts getan habe, um sie zu filtern. In der Tat, wenn ich meinen Code zu ändern:
meers.Add (myMeal.getMealID(), myMeal.getMealType(), myMeal.getMealDate());
Es gibt alle Daten zurück, aber die Flex-Tabelle behandelt jedes Element als eine neue Zeile anstelle der drei Felder in einer Zeile.
Also meine Frage ist: Wie soll ich meine Aufzeichnungen erfassen und an meine FlexTable senden, damit ich die FlexTable an die Ergebnismenge binden kann?
Als Referenz Client-Seite Code:
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);
}
}
Die Flextable wird wie folgt aufgefüllt:
mealID | mealType | mealDate
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3
ich wollen es wie folgt zu füllen:
mealID | mealType | mealDate
1 | Frühstück | 12/22/2012
2 | Mittagessen | 12/22/2012
3 | Snack | 12/23/2012
Vielen Dank im Voraus für Ihre Eingabe!