0

这似乎是一项简单的任务,但在搜索文档的某个地方 - 我错过了连接。

我有一个存储在 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 示例,我设法将我的 ID 绑定到 FlexTable,但是我缺少如何将结果集中的其他字段与它绑定的概念。(我在GAE中的字段是mealID、mealType和mealDate)

从上面,我们可以看到我将 mealID 扔进了一个列表。我也知道我的其他字段必须存在于查询中,因为我没有做任何事情来过滤它们。事实上,如果我将代码更改为:

膳食。添加(myMeal.getMealID(),myMeal.getMealType(),myMeal.getMealDate());

它返回所有数据,但 flex 表将每个项目视为一个新行,而不是一行中的三个字段。

所以我的问题是:我应该如何捕获我的记录并将它们发送到我的 FlexTable 以便我可以将 FlexTable 绑定到结果集?

供参考,客户端代码:

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 填充如下:

餐ID | 餐食类型 | 用餐日期
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3

希望它像这样填充:

餐ID | 餐食类型 | 用餐日期
1 | 早餐 | 2012
年 12 月 22 日 2 | 午餐 | 2012年 12 月 22
日 3 | 零食 | 2012 年 12 月 23 日

提前感谢您的意见!

4

1 回答 1

0

这个问题与通过 GWT RPC 传递类对象的问题重复

按照该链接中的详细信息,以及 oDesk 的少量雇佣帮助让我继续前进。主要监督是需要 {appname}.gwt.xml 中的入口点类并将模型类放在共享包中。

于 2012-04-12T21:13:27.533 回答