Author: vjrj_ Date: 2011-04-28 21:05:37 +0200 (Thu, 28 Apr 2011) New Revision: 1328 Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignOutLink.java trunk/src/main/java/cc/kune/core/client/state/Session.java trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java Log: Session expiration improved Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignOutLink.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignOutLink.java 2011-04-28 18:56:20 UTC (rev 1327) +++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignOutLink.java 2011-04-28 19:05:37 UTC (rev 1328) @@ -28,8 +28,6 @@ import cc.kune.core.client.auth.WaveClientSimpleAuthenticator; import cc.kune.core.client.cookies.CookiesManager; import cc.kune.core.client.errors.ErrorHandler; -import cc.kune.core.client.errors.SessionExpiredEvent; -import cc.kune.core.client.errors.SessionExpiredEvent.SessionExpiredHandler; import cc.kune.core.client.errors.SessionExpiredException; import cc.kune.core.client.errors.UserMustBeLoggedException; import cc.kune.core.client.notify.spiner.ProgressHideEvent; @@ -49,110 +47,99 @@ public class SitebarSignOutLink extends ButtonDescriptor { - public static class BeforeSignOut extends BeforeActionCollection { - private static final long serialVersionUID = 2326033703822323868L; - } + public static class BeforeSignOut extends BeforeActionCollection { + private static final long serialVersionUID = 2326033703822323868L; + } - public static class SitebarSignOutAction extends AbstractExtendedAction { + public static class SitebarSignOutAction extends AbstractExtendedAction { - private final BeforeSignOut beforeSignOut; - private final CookiesManager cookiesManager; - private final EventBus eventBus; - private final Session session; - private final Provider<UserServiceAsync> userService; - private final WaveClientSimpleAuthenticator waveAuth; + private final BeforeSignOut beforeSignOut; + private final CookiesManager cookiesManager; + private final EventBus eventBus; + private final Session session; + private final Provider<UserServiceAsync> userService; + private final WaveClientSimpleAuthenticator waveAuth; - @Inject - public SitebarSignOutAction(final EventBus eventBus, final I18nTranslationService i18n, - final BeforeSignOut beforeSignOut, final Provider<UserServiceAsync> userService, final Session session, - final CookiesManager cookiesManager, final WaveClientSimpleAuthenticator waveAuth) { - super(); - this.eventBus = eventBus; - this.userService = userService; - this.session = session; - this.cookiesManager = cookiesManager; - this.beforeSignOut = beforeSignOut; - this.waveAuth = waveAuth; - putValue(Action.NAME, i18n.t("Sign out")); - } + @Inject + public SitebarSignOutAction(final EventBus eventBus, final I18nTranslationService i18n, + final BeforeSignOut beforeSignOut, final Provider<UserServiceAsync> userService, + final Session session, final CookiesManager cookiesManager, + final WaveClientSimpleAuthenticator waveAuth) { + super(); + this.eventBus = eventBus; + this.userService = userService; + this.session = session; + this.cookiesManager = cookiesManager; + this.beforeSignOut = beforeSignOut; + this.waveAuth = waveAuth; + putValue(Action.NAME, i18n.t("Sign out")); + } - @Override - public void actionPerformed(final ActionEvent event) { - eventBus.fireEvent(new ProgressShowEvent()); - if (beforeSignOut.checkBeforeAction()) { - waveAuth.doLogout(new AsyncCallback<Void>() { - @Override - public void onFailure(final Throwable caught) { - onLogoutFail(caught); - } + @Override + public void actionPerformed(final ActionEvent event) { + eventBus.fireEvent(new ProgressShowEvent()); + if (beforeSignOut.checkBeforeAction()) { + waveAuth.doLogout(new AsyncCallback<Void>() { + @Override + public void onFailure(final Throwable caught) { + onLogoutFail(caught); + } - @Override - public void onSuccess(final Void result) { - userService.get().logout(session.getUserHash(), new AsyncCallback<Void>() { - @Override - public void onFailure(final Throwable caught) { - onLogoutFail(caught); - } + @Override + public void onSuccess(final Void result) { + userService.get().logout(session.getUserHash(), new AsyncCallback<Void>() { + @Override + public void onFailure(final Throwable caught) { + onLogoutFail(caught); + } - @Override - public void onSuccess(final Void arg0) { - eventBus.fireEvent(new ProgressHideEvent()); - clientUIsignOut(); - } - - }); - } - }); - } else { + @Override + public void onSuccess(final Void arg0) { eventBus.fireEvent(new ProgressHideEvent()); - } - } + session.signOut(); + } - public void clientUIsignOut() { - cookiesManager.removeCookie(); - session.setUserHash(null); - session.setCurrentUserInfo(null); - } - - private void onLogoutFail(final Throwable caught) { - eventBus.fireEvent(new ProgressHideEvent()); - if (caught instanceof SessionExpiredException) { - clientUIsignOut(); - } else if (caught instanceof UserMustBeLoggedException) { - clientUIsignOut(); - } else { - throw new UIException("Other kind of exception in doLogout", caught); - } - } - + }); + } + }); + } else { + eventBus.fireEvent(new ProgressHideEvent()); + } } - public static final String SITE_SIGN_OUT = "k-ssolp-lb"; - @Inject - public SitebarSignOutLink(final SitebarSignOutAction action, final EventBus eventBus, - final ErrorHandler errorHandler, final Session session) { - super(action); - setId(SITE_SIGN_OUT); - setParent(SitebarActionsPresenter.RIGHT_TOOLBAR); - setVisible(session.isLogged()); - setStyles("k-no-backimage, k-btn-sitebar, k-fl, k-noborder, k-nobackcolor"); - session.onUserSignIn(true, new UserSignInHandler() { - @Override - public void onUserSignIn(final UserSignInEvent event) { - SitebarSignOutLink.this.setVisible(true); - } - }); - session.onUserSignOut(true, new UserSignOutHandler() { - @Override - public void onUserSignOut(final UserSignOutEvent event) { - SitebarSignOutLink.this.setVisible(false); - } - }); - eventBus.addHandler(SessionExpiredEvent.getType(), new SessionExpiredHandler() { - @Override - public void onSessionExpired(final SessionExpiredEvent event) { - action.clientUIsignOut(); - } - }); + private void onLogoutFail(final Throwable caught) { + eventBus.fireEvent(new ProgressHideEvent()); + if (caught instanceof SessionExpiredException) { + session.signOut(); + } else if (caught instanceof UserMustBeLoggedException) { + session.signOut(); + } else { + throw new UIException("Other kind of exception in doLogout", caught); + } } + + } + public static final String SITE_SIGN_OUT = "k-ssolp-lb"; + + @Inject + public SitebarSignOutLink(final SitebarSignOutAction action, final EventBus eventBus, + final ErrorHandler errorHandler, final Session session) { + super(action); + setId(SITE_SIGN_OUT); + setParent(SitebarActionsPresenter.RIGHT_TOOLBAR); + setVisible(session.isLogged()); + setStyles("k-no-backimage, k-btn-sitebar, k-fl, k-noborder, k-nobackcolor"); + session.onUserSignIn(true, new UserSignInHandler() { + @Override + public void onUserSignIn(final UserSignInEvent event) { + SitebarSignOutLink.this.setVisible(true); + } + }); + session.onUserSignOut(true, new UserSignOutHandler() { + @Override + public void onUserSignOut(final UserSignOutEvent event) { + SitebarSignOutLink.this.setVisible(false); + } + }); + } } Modified: trunk/src/main/java/cc/kune/core/client/state/Session.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/state/Session.java 2011-04-28 18:56:20 UTC (rev 1327) +++ trunk/src/main/java/cc/kune/core/client/state/Session.java 2011-04-28 19:05:37 UTC (rev 1328) @@ -61,121 +61,121 @@ public interface Session { - /** - * Duration remembering login: 2 weeks - */ - int SESSION_DURATION = 1000 * 60 * 60 * 24 * 14; - // int SESSION_DURATION = 1000; + /** + * Duration remembering login: 2 weeks + */ + int SESSION_DURATION = 1000 * 60 * 60 * 24 * 14; + // int SESSION_DURATION = 1000; - String USERHASH = "k007userHash"; + String USERHASH = "k007userHash"; - void check(AsyncCallbackSimple<Void> callback); + void check(AsyncCallbackSimple<Void> callback); - StateContainerDTO getContainerState(); + StateContainerDTO getContainerState(); - StateContentDTO getContentState(); + StateContentDTO getContentState(); - List<I18nCountryDTO> getCountries(); + List<I18nCountryDTO> getCountries(); - Object[][] getCountriesArray(); + Object[][] getCountriesArray(); - String getCurrentCCversion(); + String getCurrentCCversion(); - String getCurrentGroupShortName(); + String getCurrentGroupShortName(); - I18nLanguageDTO getCurrentLanguage(); + I18nLanguageDTO getCurrentLanguage(); - StateAbstractDTO getCurrentState(); + StateAbstractDTO getCurrentState(); - StateToken getCurrentStateToken(); + StateToken getCurrentStateToken(); - UserSimpleDTO getCurrentUser(); + UserSimpleDTO getCurrentUser(); - UserInfoDTO getCurrentUserInfo(); + UserInfoDTO getCurrentUserInfo(); - LicenseDTO getDefLicense(); + LicenseDTO getDefLicense(); - String getGalleryPermittedExtensions(); + String getGalleryPermittedExtensions(); - Collection<ToolSimpleDTO> getGroupTools(); + Collection<ToolSimpleDTO> getGroupTools(); - int getImgCropsize(); + int getImgCropsize(); - int getImgIconsize(); + int getImgIconsize(); - int getImgResizewidth(); + int getImgResizewidth(); - int getImgThumbsize(); + int getImgThumbsize(); - InitDataDTO getInitData(); + InitDataDTO getInitData(); - List<I18nLanguageSimpleDTO> getLanguages(); + List<I18nLanguageSimpleDTO> getLanguages(); - Object[][] getLanguagesArray(); + Object[][] getLanguagesArray(); - List<LicenseDTO> getLicenses(); + List<LicenseDTO> getLicenses(); - boolean getShowDeletedContent(); + boolean getShowDeletedContent(); - String getSiteUrl(); + String getSiteUrl(); - Object[][] getTimezones(); + Object[][] getTimezones(); - String getUserHash(); + String getUserHash(); - Collection<ToolSimpleDTO> getUserTools(); + Collection<ToolSimpleDTO> getUserTools(); - boolean inSameToken(StateToken token); + boolean inSameToken(StateToken token); - boolean isCurrentStateAContent(); + boolean isCurrentStateAContent(); - boolean isCurrentStateAGroup(); + boolean isCurrentStateAGroup(); - boolean isCurrentStateAPerson(); + boolean isCurrentStateAPerson(); - boolean isInCurrentUserSpace(); + boolean isInCurrentUserSpace(); - boolean isLogged(); + boolean isLogged(); - boolean isNotLogged(); + boolean isNotLogged(); - void onAppStart(boolean fireNow, AppStartEvent.AppStartHandler handler); + void onAppStart(boolean fireNow, AppStartEvent.AppStartHandler handler); - @Deprecated - void onInitDataReceived(Listener<InitDataDTO> listener); + @Deprecated + void onInitDataReceived(Listener<InitDataDTO> listener); - /** - * @param fireNow - * if @true the handler is fired after added if the user is - * loggedin - * @param handler - */ - void onUserSignIn(boolean fireNow, UserSignInEvent.UserSignInHandler handler); + /** + * @param fireNow + * if @true the handler is fired after added if the user is loggedin + * @param handler + */ + void onUserSignIn(boolean fireNow, UserSignInEvent.UserSignInHandler handler); - @Deprecated - void onUserSignIn(Listener<UserInfoDTO> listener); + @Deprecated + void onUserSignIn(Listener<UserInfoDTO> listener); - void onUserSignInOrSignOut(boolean fireNow, UserSignInOrSignOutEvent.UserSignInOrSignOutHandler handler); + void onUserSignInOrSignOut(boolean fireNow, UserSignInOrSignOutEvent.UserSignInOrSignOutHandler handler); - /** - * @param fireNow - * if @true the handler is fired after added if the user is - * loggedin - * @param handler - */ - void onUserSignOut(boolean fireNow, UserSignOutEvent.UserSignOutHandler handler); + /** + * @param fireNow + * if @true the handler is fired after added if the user is loggedin + * @param handler + */ + void onUserSignOut(boolean fireNow, UserSignOutEvent.UserSignOutHandler handler); - @Deprecated - void onUserSignOut(Listener0 listener); + @Deprecated + void onUserSignOut(Listener0 listener); - void setCurrentLanguage(final I18nLanguageDTO currentLanguage); + void setCurrentLanguage(final I18nLanguageDTO currentLanguage); - void setCurrentState(final StateAbstractDTO currentState); + void setCurrentState(final StateAbstractDTO currentState); - void setCurrentUserInfo(UserInfoDTO currentUserInfo); + void setCurrentUserInfo(UserInfoDTO currentUserInfo); - void setInitData(InitDataDTO initData); + void setInitData(InitDataDTO initData); - void setUserHash(String userHash); + void setUserHash(String userHash); + void signOut(); + } \ No newline at end of file Modified: trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java 2011-04-28 18:56:20 UTC (rev 1327) +++ trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java 2011-04-28 19:05:37 UTC (rev 1328) @@ -25,6 +25,7 @@ import cc.kune.common.client.errors.NotImplementedException; import cc.kune.common.client.log.Log; import cc.kune.core.client.cookies.CookiesManager; +import cc.kune.core.client.errors.SessionExpiredEvent; import cc.kune.core.client.init.AppStartEvent; import cc.kune.core.client.init.AppStartEvent.AppStartHandler; import cc.kune.core.client.rpcservices.AsyncCallbackSimple; @@ -53,325 +54,340 @@ import com.google.inject.Provider; public class SessionDefault implements Session { - private Object[][] countriesArray; - private I18nLanguageDTO currentLanguage; - private StateAbstractDTO currentState; - private UserInfoDTO currentUserInfo; - private final EventBus eventBus; - private InitDataDTO initData; - private Object[][] languagesArray; - private Object[][] timezonesArray; - private String userHash; - private final Provider<UserServiceAsync> userServiceProvider; + private final CookiesManager cookieManager; + private Object[][] countriesArray; + private I18nLanguageDTO currentLanguage; + private StateAbstractDTO currentState; + private UserInfoDTO currentUserInfo; + private final EventBus eventBus; + private InitDataDTO initData; + private Object[][] languagesArray; + private Object[][] timezonesArray; + private String userHash; + private final Provider<UserServiceAsync> userServiceProvider; - @Inject - public SessionDefault(final CookiesManager cookieManager, final Provider<UserServiceAsync> userServiceProvider, - final EventBus eventBus) { - this.eventBus = eventBus; - this.userHash = cookieManager.getCurrentCookie(); - this.userHash = userHash == null || userHash.equals("null") ? null : userHash; - this.userServiceProvider = userServiceProvider; - languagesArray = null; - } + @Inject + public SessionDefault(final CookiesManager cookieManager, + final Provider<UserServiceAsync> userServiceProvider, final EventBus eventBus) { + this.cookieManager = cookieManager; + this.eventBus = eventBus; + this.userHash = cookieManager.getCurrentCookie(); + this.userHash = userHash == null || userHash.equals("null") ? null : userHash; + this.userServiceProvider = userServiceProvider; + languagesArray = null; + eventBus.addHandler(SessionExpiredEvent.getType(), new SessionExpiredEvent.SessionExpiredHandler() { + @Override + public void onSessionExpired(final SessionExpiredEvent event) { + signOut(); + } + }); + } - @Override - public void check(final AsyncCallbackSimple<Void> callback) { - Log.debug("Checking session (userhash: " + getUserHash() + ")"); - userServiceProvider.get().onlyCheckSession(getUserHash(), callback); - } + @Override + public void check(final AsyncCallbackSimple<Void> callback) { + Log.debug("Checking session (userhash: " + getUserHash() + ")"); + userServiceProvider.get().onlyCheckSession(getUserHash(), callback); + } - @Override - public StateContainerDTO getContainerState() { - return (StateContainerDTO) currentState; - } + @Override + public StateContainerDTO getContainerState() { + return (StateContainerDTO) currentState; + } - @Override - public StateContentDTO getContentState() { - return (StateContentDTO) currentState; - } + @Override + public StateContentDTO getContentState() { + return (StateContentDTO) currentState; + } - @Override - public List<I18nCountryDTO> getCountries() { - return initData.getCountries(); - } + @Override + public List<I18nCountryDTO> getCountries() { + return initData.getCountries(); + } - @Override - public Object[][] getCountriesArray() { - if (countriesArray == null) { - countriesArray = mapCountries(); - } - return countriesArray; + @Override + public Object[][] getCountriesArray() { + if (countriesArray == null) { + countriesArray = mapCountries(); } + return countriesArray; + } - @Override - public String getCurrentCCversion() { - return initData.getCurrentCCversion(); - } + @Override + public String getCurrentCCversion() { + return initData.getCurrentCCversion(); + } - @Override - public String getCurrentGroupShortName() { - return currentState == null ? null : currentState.getStateToken().getGroup(); - } + @Override + public String getCurrentGroupShortName() { + return currentState == null ? null : currentState.getStateToken().getGroup(); + } - @Override - public I18nLanguageDTO getCurrentLanguage() { - return currentLanguage; - } + @Override + public I18nLanguageDTO getCurrentLanguage() { + return currentLanguage; + } - @Override - public StateAbstractDTO getCurrentState() { - return currentState; - } + @Override + public StateAbstractDTO getCurrentState() { + return currentState; + } - @Override - public StateToken getCurrentStateToken() { - return currentState == null ? null : currentState.getStateToken(); - } + @Override + public StateToken getCurrentStateToken() { + return currentState == null ? null : currentState.getStateToken(); + } - @Override - public UserSimpleDTO getCurrentUser() { - return currentUserInfo == null ? null : currentUserInfo.getUser(); - } + @Override + public UserSimpleDTO getCurrentUser() { + return currentUserInfo == null ? null : currentUserInfo.getUser(); + } - @Override - public UserInfoDTO getCurrentUserInfo() { - return currentUserInfo; - } + @Override + public UserInfoDTO getCurrentUserInfo() { + return currentUserInfo; + } - @Override - public LicenseDTO getDefLicense() { - return initData.getDefaultLicense(); - } + @Override + public LicenseDTO getDefLicense() { + return initData.getDefaultLicense(); + } - @Override - public String getGalleryPermittedExtensions() { - return initData.getGalleryPermittedExtensions(); - } + @Override + public String getGalleryPermittedExtensions() { + return initData.getGalleryPermittedExtensions(); + } - @Override - public Collection<ToolSimpleDTO> getGroupTools() { - return initData.getGroupTools(); - } + @Override + public Collection<ToolSimpleDTO> getGroupTools() { + return initData.getGroupTools(); + } - @Override - public int getImgCropsize() { - return initData.getImgCropsize(); - } + @Override + public int getImgCropsize() { + return initData.getImgCropsize(); + } - @Override - public int getImgIconsize() { - return initData.getImgIconsize(); - } + @Override + public int getImgIconsize() { + return initData.getImgIconsize(); + } - @Override - public int getImgResizewidth() { - return initData.getImgResizewidth(); - } + @Override + public int getImgResizewidth() { + return initData.getImgResizewidth(); + } - @Override - public int getImgThumbsize() { - return initData.getImgThumbsize(); - } + @Override + public int getImgThumbsize() { + return initData.getImgThumbsize(); + } - @Override - public InitDataDTO getInitData() { - return initData; - } + @Override + public InitDataDTO getInitData() { + return initData; + } - @Override - public List<I18nLanguageSimpleDTO> getLanguages() { - return initData.getLanguages(); - } + @Override + public List<I18nLanguageSimpleDTO> getLanguages() { + return initData.getLanguages(); + } - @Override - public Object[][] getLanguagesArray() { - if (languagesArray == null) { - languagesArray = mapLangs(); - } - return languagesArray; + @Override + public Object[][] getLanguagesArray() { + if (languagesArray == null) { + languagesArray = mapLangs(); } + return languagesArray; + } - @Override - public List<LicenseDTO> getLicenses() { - return initData.getLicenses(); - } + @Override + public List<LicenseDTO> getLicenses() { + return initData.getLicenses(); + } - @Override - public boolean getShowDeletedContent() { - return currentUserInfo == null ? false : currentUserInfo.getShowDeletedContent(); - } + @Override + public boolean getShowDeletedContent() { + return currentUserInfo == null ? false : currentUserInfo.getShowDeletedContent(); + } - @Override - public String getSiteUrl() { - final String baseURL = GWT.getModuleBaseURL(); - return baseURL.substring(0, baseURL.lastIndexOf("/" + GWT.getModuleName())); - } + @Override + public String getSiteUrl() { + final String baseURL = GWT.getModuleBaseURL(); + return baseURL.substring(0, baseURL.lastIndexOf("/" + GWT.getModuleName())); + } - @Override - public Object[][] getTimezones() { - if (timezonesArray == null) { - mapTimezones(); - } - return timezonesArray; + @Override + public Object[][] getTimezones() { + if (timezonesArray == null) { + mapTimezones(); } + return timezonesArray; + } - @Override - public String getUserHash() { - return userHash; - } + @Override + public String getUserHash() { + return userHash; + } - @Override - public Collection<ToolSimpleDTO> getUserTools() { - return initData.getUserTools(); - } + @Override + public Collection<ToolSimpleDTO> getUserTools() { + return initData.getUserTools(); + } - @Override - public boolean inSameToken(final StateToken token) { - return getCurrentStateToken().equals(token); - } + @Override + public boolean inSameToken(final StateToken token) { + return getCurrentStateToken().equals(token); + } - @Override - public boolean isCurrentStateAContent() { - return currentState instanceof StateContentDTO; - } + @Override + public boolean isCurrentStateAContent() { + return currentState instanceof StateContentDTO; + } - @Override - public boolean isCurrentStateAGroup() { - return currentState == null ? false : !currentState.getGroup().isPersonal(); - } + @Override + public boolean isCurrentStateAGroup() { + return currentState == null ? false : !currentState.getGroup().isPersonal(); + } - @Override - public boolean isCurrentStateAPerson() { - return currentState == null ? false : currentState.getGroup().isPersonal(); - } + @Override + public boolean isCurrentStateAPerson() { + return currentState == null ? false : currentState.getGroup().isPersonal(); + } - @Override - public boolean isInCurrentUserSpace() { - if (!isLogged()) { - return false; - } - if (getCurrentStateToken().getGroup().equals(getCurrentUser().getShortName())) { - return true; - } - return false; + @Override + public boolean isInCurrentUserSpace() { + if (!isLogged()) { + return false; } - - @Override - public boolean isLogged() { - return userHash != null; + if (getCurrentStateToken().getGroup().equals(getCurrentUser().getShortName())) { + return true; } + return false; + } - @Override - public boolean isNotLogged() { - return !isLogged(); - } + @Override + public boolean isLogged() { + return userHash != null; + } - private Object[][] mapCountries() { - assert initData != null; - final Object[][] objs = new Object[initData.getCountries().size()][1]; - int i = 0; - for (final I18nCountryDTO country : initData.getCountries()) { - final Object[] obj = new Object[] { country.getCode(), country.getEnglishName() }; - objs[i++] = obj; - } - return objs; - } + @Override + public boolean isNotLogged() { + return !isLogged(); + } - private Object[][] mapLangs() { - assert initData != null; - final Object[][] objs = new Object[initData.getLanguages().size()][1]; - int i = 0; - for (final I18nLanguageSimpleDTO language : initData.getLanguages()) { - final Object[] obj = new Object[] { language.getCode(), language.getEnglishName() }; - objs[i++] = obj; - } - return objs; + private Object[][] mapCountries() { + assert initData != null; + final Object[][] objs = new Object[initData.getCountries().size()][1]; + int i = 0; + for (final I18nCountryDTO country : initData.getCountries()) { + final Object[] obj = new Object[] { country.getCode(), country.getEnglishName() }; + objs[i++] = obj; } + return objs; + } - private void mapTimezones() { - assert initData != null; - timezonesArray = new Object[initData.getTimezones().length][1]; - for (int i = 0; i < getTimezones().length; i++) { - final Object[] obj = new Object[] { initData.getTimezones()[i] }; - timezonesArray[i] = obj; - } + private Object[][] mapLangs() { + assert initData != null; + final Object[][] objs = new Object[initData.getLanguages().size()][1]; + int i = 0; + for (final I18nLanguageSimpleDTO language : initData.getLanguages()) { + final Object[] obj = new Object[] { language.getCode(), language.getEnglishName() }; + objs[i++] = obj; } + return objs; + } - @Override - public void onAppStart(final boolean fireNow, final AppStartHandler handler) { - eventBus.addHandler(AppStartEvent.getType(), handler); - if (fireNow && initData != null) { - handler.onAppStart(new AppStartEvent(initData)); - } + private void mapTimezones() { + assert initData != null; + timezonesArray = new Object[initData.getTimezones().length][1]; + for (int i = 0; i < getTimezones().length; i++) { + final Object[] obj = new Object[] { initData.getTimezones()[i] }; + timezonesArray[i] = obj; } + } - @Override - public void onInitDataReceived(final Listener<InitDataDTO> listener) { - throw new NotImplementedException(); + @Override + public void onAppStart(final boolean fireNow, final AppStartHandler handler) { + eventBus.addHandler(AppStartEvent.getType(), handler); + if (fireNow && initData != null) { + handler.onAppStart(new AppStartEvent(initData)); } + } - @Override - public void onUserSignIn(final boolean fireNow, final UserSignInHandler handler) { - eventBus.addHandler(UserSignInEvent.getType(), handler); - if (fireNow && isLogged() && currentUserInfo != null) { - handler.onUserSignIn(new UserSignInEvent(currentUserInfo)); - } - } + @Override + public void onInitDataReceived(final Listener<InitDataDTO> listener) { + throw new NotImplementedException(); + } - @Override - public void onUserSignIn(final Listener<UserInfoDTO> listener) { - throw new NotImplementedException(); + @Override + public void onUserSignIn(final boolean fireNow, final UserSignInHandler handler) { + eventBus.addHandler(UserSignInEvent.getType(), handler); + if (fireNow && isLogged() && currentUserInfo != null) { + handler.onUserSignIn(new UserSignInEvent(currentUserInfo)); } + } - @Override - public void onUserSignInOrSignOut(final boolean fireNow, final UserSignInOrSignOutHandler handler) { - eventBus.addHandler(UserSignInOrSignOutEvent.getType(), handler); - if (fireNow) { - handler.onUserSignInOrSignOut(new UserSignInOrSignOutEvent(isLogged())); - } - } + @Override + public void onUserSignIn(final Listener<UserInfoDTO> listener) { + throw new NotImplementedException(); + } - @Override - public void onUserSignOut(final boolean fireNow, final UserSignOutHandler handler) { - eventBus.addHandler(UserSignOutEvent.getType(), handler); - if (fireNow && isNotLogged()) { - handler.onUserSignOut(new UserSignOutEvent()); - } + @Override + public void onUserSignInOrSignOut(final boolean fireNow, final UserSignInOrSignOutHandler handler) { + eventBus.addHandler(UserSignInOrSignOutEvent.getType(), handler); + if (fireNow) { + handler.onUserSignInOrSignOut(new UserSignInOrSignOutEvent(isLogged())); } + } - @Override - public void onUserSignOut(final Listener0 listener) { - throw new NotImplementedException(); + @Override + public void onUserSignOut(final boolean fireNow, final UserSignOutHandler handler) { + eventBus.addHandler(UserSignOutEvent.getType(), handler); + if (fireNow && isNotLogged()) { + handler.onUserSignOut(new UserSignOutEvent()); } + } - @Override - public void setCurrentLanguage(final I18nLanguageDTO currentLanguage) { - this.currentLanguage = currentLanguage; - } + @Override + public void onUserSignOut(final Listener0 listener) { + throw new NotImplementedException(); + } - @Override - public void setCurrentState(final StateAbstractDTO currentState) { - this.currentState = currentState; - } + @Override + public void setCurrentLanguage(final I18nLanguageDTO currentLanguage) { + this.currentLanguage = currentLanguage; + } - @Override - public void setCurrentUserInfo(final UserInfoDTO currentUserInfo) { - this.currentUserInfo = currentUserInfo; - if (currentUserInfo != null) { - eventBus.fireEvent(new UserSignInEvent(this.currentUserInfo)); - } else { - eventBus.fireEvent(new UserSignOutEvent()); - } - eventBus.fireEvent(new UserSignInOrSignOutEvent(isLogged())); - } + @Override + public void setCurrentState(final StateAbstractDTO currentState) { + this.currentState = currentState; + } - @Override - public void setInitData(final InitDataDTO initData) { - this.initData = initData; + @Override + public void setCurrentUserInfo(final UserInfoDTO currentUserInfo) { + this.currentUserInfo = currentUserInfo; + if (currentUserInfo != null) { + eventBus.fireEvent(new UserSignInEvent(this.currentUserInfo)); + } else { + eventBus.fireEvent(new UserSignOutEvent()); } + eventBus.fireEvent(new UserSignInOrSignOutEvent(isLogged())); + } - @Override - public void setUserHash(final String userHash) { - this.userHash = userHash; - } + @Override + public void setInitData(final InitDataDTO initData) { + this.initData = initData; + } + + @Override + public void setUserHash(final String userHash) { + this.userHash = userHash; + } + + @Override + public void signOut() { + cookieManager.removeCookie(); + setUserHash(null); + setCurrentUserInfo(null); + } }