Предупредить пользователя о том, что он собирается потерять свои изменения в представлении "Правка" при выходе из режима просмотра другого в GWT.

Я хочу предупредить пользователя, что он потеряет свои изменения в EditView при смене представления на другое.

Я использую MVP4G в своем проекте, и проект разделен на структуру mvp (один пакет для шаблона, другой для представлений...). Есть ли какое-либо решение для обнаружения EditView в eventBus. или определить текущий вид, отображаемый для пользователя

заранее спасибо

2 ответа

Решение

Благодаря функции Navigation Event в mvp4g, докладчик получит контроль до изменения вида. На этом этапе докладчик может решить, будет ли выполнена навигация или нет. Это правильное место в приложении mvp4g для сохранения ваших данных.

Сначала нужно отметить все события в шине событий, которые изменят ваш взгляд:

@Event(..., navigationEvent = true)
void goToPage1();

Затем ваши докладчики должны реализовать интерфейс NavigationConfirmationInterface и требуемый метод подтверждения:

public class Presenter extends ... implements NavigationConfirmationInterface {
     public void confirm(NavigationEventCommand event) {
          //pseudo method to verify if the view has changed
          if (isViewModified(){
               //Window shouldn't be used inside a presenter
               //this is just to give a simple example
               if (Window.confirm("Are you sure you want to leave?")){
                    event.fireEvent();
               }                                
          } else {
               event.fireEvent();
          }
     }
}

И последнее, что нужно сделать, - это установить предъявителя текущего представления для предъявителя подтверждения путем вызова:

event.fireEvent(false);

Обычно это делается, когда докладчик получает контроль.

Вы найдете документацию здесь:

https://github.com/FrankHossfeld/mvp4g/wiki/03.-Defining-EventBus

Благодаря команде MVP4G, включая Эль Хосса, который дает мне подсказку проверить блог MVP4G. Я решил свою проблему, следуя этому примеру http://mvp4g.blogspot.com/2011/06/navigation-control.html

Другие вопросы по тегам