У меня есть устаревшее приложение gwt и grails, которое я обновляю и изменяю. Его календарь бронирования в основном с разными «взглядами» .. проблема, с которой я сталкиваюсь, - это я хочу пользователь может выбрать представление по умолчанию для себя при входе в систему. Я делал это с помощью приложения grails only, но gwt сильно отличается. Могу ли я передать что-то из config.groovy в часть gwt, которая выбирает которые видят, чтобы показать ... и это представление не является видом, похожим на вид grails..от него, как в ресторанах .. и пользователь может только хотеть видеть оговорки для конкретного ресторана, а не по умолчанию всех ресторановusing config.groovy в gwt для предпочтений пользователя
3
A
ответ
3
Возможно, не прямой ответ на ваш вопрос, но вы можете просто сделать обычную удаленную службу 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 плагин, который является добавляет поддержку GWT граалям.