在 gwt 中使用 config.groovy 作为用户偏好
using config.groovy in gwt for user preference
我有一个 gwt 和 grails 遗留应用程序,我正在升级和修改。它是一个预订日历,基本上有不同 "views"。我遇到的问题是我希望用户能够在登录时为自己选择一个默认视图..我以前用一个只有 grails 的应用程序做过这个但是 gwt 有很大不同..我怎样才能将一些东西从 config.groovy 传递到 [=15= 的 gwt 部分] 要显示的视图..这个视图不是像 grails 视图那样的视图..把它想象成餐厅..用户可能只想查看特定餐厅的预订而不是所有餐厅的默认设置
也许不能直接回答您的问题,但您可以制作一个普通的 GWT 远程服务 UserPreferencesService
,它将存储用户首选项
public interface UserPreferencesService extends RemoteService {
List<Restaurant> getRestaurants(Account user);
void setRestaurants(Account user, List<Restaurant> restaurants);
}
然后您可以在您的入口点决定向用户显示哪种视图
public final class Application implements EntryPoint {
private AuthServiceAsync authService =
GWT.create(AuthService.class);
private UserPreferencesAsync preferencesService =
GWT.create(UserPreferencesService.class);
@Override
public void onModuleLoad() {
// handle login
authService.getAccount(new Callback<Account>() {
@Override
public void onSuccess(final Account account) {
// check if user have a preferred restourants
preferencesService.getRestaurants(account,
new Callback<Account>() {
@Override
public void onSuccess(final List<Restaurant> restaurants) {
// user did not select any restaurants yet.
// Show a selection widget
if (restaurants.isEmpty) {
RestaurantSelectorWidget widget =
new RestaurantSelectorWidget();
// your custom handler here
widget.addHandler(new Handler() {
@Override
public void onSelected(/*...*/) {
// save user preferences
// and switch to normal view
}
})
RootPanel.get("container")
.add(widget);
} else {
// show normal view
}
}
}
}
}
}
}
}
您也可以查看 this 插件,它为 grails 添加了 GWT 支持。
我有一个 gwt 和 grails 遗留应用程序,我正在升级和修改。它是一个预订日历,基本上有不同 "views"。我遇到的问题是我希望用户能够在登录时为自己选择一个默认视图..我以前用一个只有 grails 的应用程序做过这个但是 gwt 有很大不同..我怎样才能将一些东西从 config.groovy 传递到 [=15= 的 gwt 部分] 要显示的视图..这个视图不是像 grails 视图那样的视图..把它想象成餐厅..用户可能只想查看特定餐厅的预订而不是所有餐厅的默认设置
也许不能直接回答您的问题,但您可以制作一个普通的 GWT 远程服务 UserPreferencesService
,它将存储用户首选项
public interface UserPreferencesService extends RemoteService {
List<Restaurant> getRestaurants(Account user);
void setRestaurants(Account user, List<Restaurant> restaurants);
}
然后您可以在您的入口点决定向用户显示哪种视图
public final class Application implements EntryPoint {
private AuthServiceAsync authService =
GWT.create(AuthService.class);
private UserPreferencesAsync preferencesService =
GWT.create(UserPreferencesService.class);
@Override
public void onModuleLoad() {
// handle login
authService.getAccount(new Callback<Account>() {
@Override
public void onSuccess(final Account account) {
// check if user have a preferred restourants
preferencesService.getRestaurants(account,
new Callback<Account>() {
@Override
public void onSuccess(final List<Restaurant> restaurants) {
// user did not select any restaurants yet.
// Show a selection widget
if (restaurants.isEmpty) {
RestaurantSelectorWidget widget =
new RestaurantSelectorWidget();
// your custom handler here
widget.addHandler(new Handler() {
@Override
public void onSelected(/*...*/) {
// save user preferences
// and switch to normal view
}
})
RootPanel.get("container")
.add(widget);
} else {
// show normal view
}
}
}
}
}
}
}
}
您也可以查看 this 插件,它为 grails 添加了 GWT 支持。