[kune-commits] r1303 - in trunk/src: main/java/cc/kune/chat/client main/java/cc/kune/client main/java/cc/kune/common/client/log main/java/cc/kune/common/client/noti main/java/cc/kune/core/client main/java/cc/kune/core/client/auth main/java/cc/kune/core/client/errors main/java/cc/kune/core/client/groups/newgroup main/java/cc/kune/core/client/i18n main/java/cc/kune/core/client/sitebar main/java/cc/kune/core/client/sitebar/logo main/java/cc/kune/core/client/sitebar/spaces main/java/cc/kune/core/client/sn/actions main/java/cc/kune/core/client/sn/actions/registry main/java/cc/kune/core/client/state main/java/cc/kune/core/public main/java/cc/kune/core/ws/armor main/java/cc/kune/docs/client main/java/cc/kune/msgs/client main/java/cc/kune/pspace/client main/java/cc/kune/wave/client main/java/cc/ourproject/kune main/java/org/ourproject/kune main/java/org/ourproject/kune/blogs/client main/java/org/ourproject/kune/docs main/java/org/ourproject/kune/gallery/client main/java/org/ourproject/kune/gallery/client/cnt main/java/org/ourproject/kune/platf main/java/org/ourproject/kune/platf/client/actions/common main/java/org/ourproject/kune/wiki/client main/java/org/ourproject/kune/workspace/client main/java/org/ourproject/kune/workspace/client/ctxnav main/java/org/ourproject/kune/workspace/client/editor main/java/org/ourproject/kune/workspace/client/oldsn main/java/org/ourproject/kune/workspace/client/options main/java/org/ourproject/kune/workspace/client/options/tools main/java/org/ourproject/kune/workspace/client/search main/java/org/ourproject/kune/workspace/client/site main/java/org/ourproject/kune/workspace/client/sitebar test/java/cc/kune/core/client/state

Vicente J. Ruiz Jurado vjrj_ at ourproject.org
Mon Apr 4 00:48:05 CEST 2011


Author: vjrj_
Date: 2011-04-04 00:48:05 +0200 (Mon, 04 Apr 2011)
New Revision: 1303

Added:
   trunk/src/main/java/cc/kune/core/client/state/UserSignInOrSignOutEvent.java
   trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java
Removed:
   trunk/src/main/java/cc/kune/core/ws/armor/client/
   trunk/src/main/java/cc/kune/wave/client/SitebarWaveStatus.java
   trunk/src/main/java/cc/ourproject/kune/core/
   trunk/src/main/java/org/ourproject/kune/docs/client/
   trunk/src/main/java/org/ourproject/kune/platf/server/
   trunk/src/main/java/org/ourproject/kune/rack/
   trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteprogress/
   trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitepublic/
   trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/
Modified:
   trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java
   trunk/src/main/java/cc/kune/chat/client/ChatParts.java
   trunk/src/main/java/cc/kune/client/OnAppStartFactory.java
   trunk/src/main/java/cc/kune/common/client/log/Log.java
   trunk/src/main/java/cc/kune/common/client/noti/NotifyUser.java
   trunk/src/main/java/cc/kune/core/client/CoreParts.java
   trunk/src/main/java/cc/kune/core/client/auth/RegisterPresenter.java
   trunk/src/main/java/cc/kune/core/client/auth/SignInAbstractPresenter.java
   trunk/src/main/java/cc/kune/core/client/auth/SignInPresenter.java
   trunk/src/main/java/cc/kune/core/client/errors/ErrorHandler.java
   trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java
   trunk/src/main/java/cc/kune/core/client/i18n/I18nUITranslationService.java
   trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java
   trunk/src/main/java/cc/kune/core/client/sitebar/SitebarNewGroupLink.java
   trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignInLink.java
   trunk/src/main/java/cc/kune/core/client/sitebar/logo/SiteLogoPresenter.java
   trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java
   trunk/src/main/java/cc/kune/core/client/sn/actions/GotoGroupAction.java
   trunk/src/main/java/cc/kune/core/client/sn/actions/JoinGroupAction.java
   trunk/src/main/java/cc/kune/core/client/sn/actions/RemoveMemberAction.java
   trunk/src/main/java/cc/kune/core/client/sn/actions/SessionAction.java
   trunk/src/main/java/cc/kune/core/client/sn/actions/UnJoinGroupAction.java
   trunk/src/main/java/cc/kune/core/client/sn/actions/UserSNVisibilityAction.java
   trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupSNConfActions.java
   trunk/src/main/java/cc/kune/core/client/state/ContentCache.java
   trunk/src/main/java/cc/kune/core/client/state/ContentCacheDefault.java
   trunk/src/main/java/cc/kune/core/client/state/Session.java
   trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java
   trunk/src/main/java/cc/kune/core/client/state/SiteTokenListeners.java
   trunk/src/main/java/cc/kune/core/client/state/StateManager.java
   trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java
   trunk/src/main/java/cc/kune/core/client/state/TokenMatcher.java
   trunk/src/main/java/cc/kune/core/public/ws.css
   trunk/src/main/java/cc/kune/docs/client/AbstractFoldableContentActions.java
   trunk/src/main/java/cc/kune/msgs/client/UserMessagesPanel.java
   trunk/src/main/java/cc/kune/pspace/client/PSpaceParts.java
   trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java
   trunk/src/main/java/cc/kune/wave/client/WaveClientManager.java
   trunk/src/main/java/cc/kune/wave/client/WaveGinModule.java
   trunk/src/main/java/cc/kune/wave/client/WaveParts.java
   trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java
   trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java
   trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPanel.java
   trunk/src/main/java/org/ourproject/kune/platf/client/actions/common/GotoGroupAction.java
   trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/OldAbstractFoldableContentActions.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/editor/ContentEditorPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/oldsn/BuddiesSummaryPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/oldsn/SocialNetworkPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/GroupOptionsToolsConfPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/UserOptionsToolsConfPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/site/WorkspaceNotifyUser.java
   trunk/src/test/java/cc/kune/core/client/state/StateManagerDefaultTest.java
   trunk/src/test/java/cc/kune/core/client/state/TokenMatcherTest.java
Log:
NEW - # 35: Spaces selector integration with login/logout and history 
http://kune.ourproject.org/issues/ticket/35

Modified: trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -146,7 +146,7 @@
         this.roomManager = Suco.get(RoomManager.class);
         Suco.get(SessionReconnect.class);
 
-        session.onInitDataReceived(true, new AppStartEvent.AppStartHandler() {
+        session.onAppStart(true, new AppStartEvent.AppStartHandler() {
             @Override
             public void onAppStart(final AppStartEvent event) {
                 chatOptions.domain = event.getInitData().getChatDomain();

Modified: trunk/src/main/java/cc/kune/chat/client/ChatParts.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatParts.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/chat/client/ChatParts.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -46,7 +46,7 @@
             final Provider<StartChatWithThisBuddieAction> startChatWithBuddieAction,
             final Provider<OpenGroupPublicChatRoomAction> openGroupRoomAction,
             final Provider<OpenGroupPublicChatRoomButton> openGroupRoom) {
-        session.onInitDataReceived(true, new AppStartHandler() {
+        session.onAppStart(true, new AppStartHandler() {
             @Override
             public void onAppStart(final AppStartEvent event) {
                 chatActionsProvider.get();

Modified: trunk/src/main/java/cc/kune/client/OnAppStartFactory.java
===================================================================
--- trunk/src/main/java/cc/kune/client/OnAppStartFactory.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/client/OnAppStartFactory.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -12,7 +12,7 @@
 
     @Inject
     public OnAppStartFactory(final Session session, final Provider<DocumentClientTool> docClientTool) {
-        session.onInitDataReceived(true, new AppStartHandler() {
+        session.onAppStart(true, new AppStartHandler() {
             @Override
             public void onAppStart(final AppStartEvent event) {
                 docClientTool.get();

Modified: trunk/src/main/java/cc/kune/common/client/log/Log.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/log/Log.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/common/client/log/Log.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -51,4 +51,8 @@
         return new StringBuffer().append("[kune] ").append(message).toString();
     }
 
+    public static void warn(final String message) {
+        debug(message);
+    }
+
 }

Modified: trunk/src/main/java/cc/kune/common/client/noti/NotifyUser.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/noti/NotifyUser.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/common/client/noti/NotifyUser.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -96,6 +96,10 @@
         eventBus.fireEvent(new ConfirmAskEvent(title, message, i18n.t("Ok"), "", callback));
     }
 
+    public static void showProgress() {
+        eventBus.fireEvent(new ProgressShowEvent(""));
+    }
+
     public static void showProgress(final String text) {
         eventBus.fireEvent(new ProgressShowEvent(text));
     }

Modified: trunk/src/main/java/cc/kune/core/client/CoreParts.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/CoreParts.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/CoreParts.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -24,7 +24,7 @@
             final Provider<UserSNConfActions> userSNConfActions, final Provider<SiteUserOptionsPresenter> userOptions,
             final Provider<EntityLicensePresenter> licenseFooter, final Provider<TagsSummaryPresenter> tagsPresenter,
             final Provider<ToolSelector> toolSelector) {
-        session.onInitDataReceived(true, new AppStartHandler() {
+        session.onAppStart(true, new AppStartHandler() {
             @Override
             public void onAppStart(final AppStartEvent event) {
                 groupMembersConfActions.get();

Modified: trunk/src/main/java/cc/kune/core/client/auth/RegisterPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/RegisterPresenter.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/auth/RegisterPresenter.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -157,7 +157,7 @@
                                 @Override
                                 public void onSuccess(final Void result) {
                                     // onSignIn(userInfoDTO);
-                                    stateManager.gotoToken(session.getCurrentUserInfo().getHomePage());
+                                    stateManager.gotoHistoryToken(session.getCurrentUserInfo().getHomePage());
                                     getView().hide();
                                     getView().unMask();
                                     if (wantHomepage) {

Modified: trunk/src/main/java/cc/kune/core/client/auth/SignInAbstractPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/SignInAbstractPresenter.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/auth/SignInAbstractPresenter.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -64,14 +64,14 @@
         getView().reset();
         getView().hideMessages();
         getView().hide();
-        stateManager.restorePreviousToken();
+        stateManager.redirectOrRestorePreviousToken();
     }
 
     public void onClose() {
         getView().reset();
         getView().hideMessages();
         if (!session.isLogged()) {
-            stateManager.restorePreviousToken();
+            stateManager.redirectOrRestorePreviousToken();
         }
     }
 
@@ -84,7 +84,7 @@
         final I18nLanguageDTO language = userInfoDTO.getLanguage();
         i18n.changeCurrentLanguage(language.getCode());
         session.setCurrentLanguage(language);
-        stateManager.restorePreviousToken();
+        stateManager.redirectOrRestorePreviousToken();
     }
 
     protected void saveAutocompleteLoginData(final String nickOrEmail, final String password) {

Modified: trunk/src/main/java/cc/kune/core/client/auth/SignInPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/SignInPresenter.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/auth/SignInPresenter.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -119,7 +119,7 @@
         getView().reset();
         getView().hideMessages();
         getView().hide();
-        stateManager.gotoToken(SiteTokens.REGISTER);
+        stateManager.gotoHistoryToken(SiteTokens.REGISTER);
     }
 
     @Override
@@ -171,7 +171,6 @@
 
                 @Override
                 public void onSuccess(final Void result) {
-                    stateManager.restorePreviousToken();
                     getView().hide();
                     getView().unMask();
                 }

Modified: trunk/src/main/java/cc/kune/core/client/errors/ErrorHandler.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/errors/ErrorHandler.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/errors/ErrorHandler.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -55,7 +55,7 @@
     }
 
     private void goHome() {
-        stateManager.gotoToken(SiteTokens.GROUP_HOME);
+        stateManager.gotoHistoryToken(SiteTokens.GROUP_HOME);
     }
 
     private void logException(final Throwable caught) {

Modified: trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -144,12 +144,12 @@
     public void onCancel() {
         getView().hide();
         reset();
-        stateManager.restorePreviousToken();
+        stateManager.redirectOrRestorePreviousToken();
     }
 
     public void onClose() {
         if (mustGoToPrevious) {
-            stateManager.restorePreviousToken();
+            stateManager.redirectOrRestorePreviousToken();
         }
         reset();
     }
@@ -181,7 +181,7 @@
                 public void onSuccess(final StateToken token) {
                     mustGoToPrevious = false;
                     getView().hide();
-                    stateManager.gotoToken(token);
+                    stateManager.gotoStateToken(token);
                     reset();
                     getView().unMask();
                 }

Modified: trunk/src/main/java/cc/kune/core/client/i18n/I18nUITranslationService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/i18n/I18nUITranslationService.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/i18n/I18nUITranslationService.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -192,7 +192,10 @@
      */
     @Override
     public String t(final String text) {
-        assert lexicon != null;
+        if (lexicon == null) {
+            Log.warn("i18n not initialized");
+            return text;
+        }
         final String encodeText = TextUtils.escapeHtmlLight(text);
         String translation = lexicon.get(encodeText);
         if (lexicon.containsKey(encodeText)) {

Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -137,7 +137,7 @@
     }
 
     private void goUserHome() {
-        stateManager.gotoToken(session.getCurrentUserInfo().getShortName());
+        stateManager.gotoHistoryToken(session.getCurrentUserInfo().getShortName());
     }
 
     private void onUserSignIn(final UserInfoDTO userInfoDTO) {

Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarNewGroupLink.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarNewGroupLink.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarNewGroupLink.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -23,8 +23,8 @@
 import cc.kune.common.client.actions.Action;
 import cc.kune.common.client.actions.ActionEvent;
 import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
+import cc.kune.core.client.state.SiteTokens;
 import cc.kune.core.client.state.StateManager;
-import cc.kune.core.client.state.SiteTokens;
 import cc.kune.core.shared.i18n.I18nTranslationService;
 
 import com.google.inject.Inject;
@@ -44,7 +44,7 @@
 
         @Override
         public void actionPerformed(final ActionEvent event) {
-            stateManager.gotoToken(SiteTokens.NEWGROUP);
+            stateManager.gotoHistoryTokenButRedirectToCurrent(SiteTokens.NEWGROUP);
         }
 
     }

Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignInLink.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignInLink.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignInLink.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -45,13 +45,12 @@
         public SitebarSignInAction(final StateManager stateManager, final I18nTranslationService i18n) {
             super();
             this.stateManager = stateManager;
-
             putValue(Action.NAME, i18n.t("Sign in to collaborate"));
         }
 
         @Override
         public void actionPerformed(final ActionEvent event) {
-            stateManager.gotoToken(SiteTokens.SIGNIN);
+            stateManager.gotoHistoryTokenButRedirectToCurrent(SiteTokens.SIGNIN);
         }
 
     }

Modified: trunk/src/main/java/cc/kune/core/client/sitebar/logo/SiteLogoPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/logo/SiteLogoPresenter.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/logo/SiteLogoPresenter.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -61,7 +61,7 @@
 
     @Override
     public void onClick() {
-        stateManager.gotoToken(SiteTokens.GROUP_HOME);
+        stateManager.gotoHistoryToken(SiteTokens.GROUP_HOME);
     }
 
     @Override

Modified: trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -19,14 +19,12 @@
  */
 package cc.kune.core.client.sitebar.spaces;
 
-import cc.kune.common.client.noti.NotifyLevel;
-import cc.kune.core.client.auth.SignIn;
+import cc.kune.common.client.noti.NotifyUser;
 import cc.kune.core.client.init.AppStartEvent;
 import cc.kune.core.client.state.Session;
 import cc.kune.core.client.state.SiteTokens;
 import cc.kune.core.client.state.StateManager;
 import cc.kune.core.client.state.TokenUtils;
-import cc.kune.core.client.state.UserSignInEvent;
 import cc.kune.core.client.state.UserSignOutEvent;
 import cc.kune.gspace.client.WsArmor;
 
@@ -35,7 +33,6 @@
 import com.google.gwt.event.dom.client.HasClickHandlers;
 import com.google.gwt.event.shared.EventBus;
 import com.google.inject.Inject;
-import com.google.inject.Provider;
 import com.gwtplatform.mvp.client.Presenter;
 import com.gwtplatform.mvp.client.View;
 import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit;
@@ -73,21 +70,19 @@
     private Space currentSpace;
     private String groupToken;
     private String homeToken;
-    private boolean nextUserSpace;
     private String publicToken;
     private final Session session;
-    private final Provider<SignIn> signIn;
+    private final StateManager stateManager;
     private String userToken;
 
     @Inject
     public SpaceSelectorPresenter(final EventBus eventBus, final StateManager stateManager,
-            final SpaceSelectorView view, final SpaceSelectorProxy proxy, final WsArmor armor, final Session session,
-            final Provider<SignIn> sigIn) {
+            final SpaceSelectorView view, final SpaceSelectorProxy proxy, final WsArmor armor, final Session session) {
         super(eventBus, view, proxy);
+        this.stateManager = stateManager;
         this.armor = armor;
         this.session = session;
-        this.signIn = sigIn;
-        nextUserSpace = false;
+        currentSpace = null;
         homeToken = SiteTokens.HOME;
         userToken = SiteTokens.WAVEINBOX;
         groupToken = SiteTokens.GROUP_HOME;
@@ -95,36 +90,31 @@
         view.getHomeBtn().addClickHandler(new ClickHandler() {
             @Override
             public void onClick(final ClickEvent event) {
-                stateManager.gotoToken(homeToken);
+                stateManager.gotoHistoryToken(homeToken);
             }
         });
         view.getUserBtn().addClickHandler(new ClickHandler() {
             @Override
             public void onClick(final ClickEvent event) {
-                stateManager.gotoToken(userToken);
+                stateManager.gotoHistoryToken(userToken);
             }
         });
         view.getGroupBtn().addClickHandler(new ClickHandler() {
             @Override
             public void onClick(final ClickEvent event) {
-                stateManager.gotoToken(groupToken);
+                stateManager.gotoHistoryToken(groupToken);
             }
         });
         view.getPublicBtn().addClickHandler(new ClickHandler() {
             @Override
             public void onClick(final ClickEvent event) {
-                stateManager.gotoToken(publicToken);
+                stateManager.gotoHistoryToken(publicToken);
             }
         });
     }
 
     @ProxyEvent
     public void onAppStart(final AppStartEvent event) {
-        getView().setHomeBtnDown(false);
-        getView().setUserBtnDown(false);
-        getView().setGroupBtnDown(false);
-        getView().setPublicBtnDown(false);
-        onHomeSpaceSelect();
     }
 
     private void onGroupSpaceSelect() {
@@ -134,7 +124,6 @@
         getView().setGroupBtnDown(true);
         getView().setPublicBtnDown(false);
         currentSpace = Space.groupSpace;
-        nextUserSpace = false;
     }
 
     private void onHomeSpaceSelect() {
@@ -144,7 +133,6 @@
         getView().setGroupBtnDown(false);
         getView().setPublicBtnDown(false);
         currentSpace = Space.homeSpace;
-        nextUserSpace = false;
     }
 
     private void onPublicSpaceSelect() {
@@ -154,7 +142,6 @@
         getView().setGroupBtnDown(false);
         getView().setPublicBtnDown(true);
         currentSpace = Space.publicSpace;
-        nextUserSpace = false;
     }
 
     @ProxyEvent
@@ -201,19 +188,11 @@
     }
 
     @ProxyEvent
-    public void onUserSignIn(final UserSignInEvent event) {
-        if (nextUserSpace) {
-            onUserSpaceSelect();
-            nextUserSpace = false;
-        }
-    }
-
-    @ProxyEvent
     public void onUserSignOut(final UserSignOutEvent event) {
         if (currentSpace == Space.userSpace) {
-            nextUserSpace = false;
-            onHomeSpaceSelect();
+            stateManager.gotoHistoryToken(homeToken);
         }
+        userToken = SiteTokens.WAVEINBOX;
     }
 
     private void onUserSpaceSelect() {
@@ -224,12 +203,12 @@
             getView().setGroupBtnDown(false);
             getView().setPublicBtnDown(false);
             currentSpace = Space.userSpace;
-            nextUserSpace = false;
         } else {
-            signIn.get().showSignInDialog();
+            stateManager.gotoHistoryToken(TokenUtils.addRedirect(SiteTokens.SIGNIN, userToken));
             getView().setUserBtnDown(false);
-            signIn.get().setErrorMessage("Sign in to access to your workspace", NotifyLevel.info);
-            nextUserSpace = true;
+            NotifyUser.info("Sign in to access to your workspace");
+            // signIn.get().setErrorMessage("Sign in to access to your workspace",
+            // NotifyLevel.info);
         }
     }
 

Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/GotoGroupAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/GotoGroupAction.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/GotoGroupAction.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -32,7 +32,7 @@
         } else {
             token = ((UserSimpleDTO) target).getStateToken();
         }
-        stateManager.gotoToken(token);
+        stateManager.gotoStateToken(token);
     }
 
 }

Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/JoinGroupAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/JoinGroupAction.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/JoinGroupAction.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -41,7 +41,7 @@
                         switch ((result)) {
                         case accepted:
                             NotifyUser.info(i18n.t("You are now member of this group"));
-                            stateManager.reload();
+                            stateManager.refreshCurrentGroupState();
                             break;
                         case denied:
                             NotifyUser.important(i18n.t("Sorry this is a closed group"));

Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/RemoveMemberAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/RemoveMemberAction.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/RemoveMemberAction.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -43,7 +43,7 @@
                     public void onSuccess(final SocialNetworkDataDTO result) {
                         NotifyUser.hideProgress();
                         NotifyUser.info(i18n.t("Member removed"));
-                        stateManager.reload();
+                        stateManager.refreshCurrentGroupState();
                     }
                 });
     }

Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/SessionAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/SessionAction.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/SessionAction.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -3,10 +3,8 @@
 import cc.kune.common.client.actions.AbstractExtendedAction;
 import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
 import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.UserSignInEvent;
-import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
-import cc.kune.core.client.state.UserSignOutEvent;
-import cc.kune.core.client.state.UserSignOutEvent.UserSignOutHandler;
+import cc.kune.core.client.state.UserSignInOrSignOutEvent;
+import cc.kune.core.client.state.UserSignInOrSignOutEvent.UserSignInOrSignOutHandler;
 
 import com.google.inject.Inject;
 
@@ -16,30 +14,28 @@
     @Inject
     public SessionAction(final Session session, final boolean authNeed) {
         this.session = session;
-        session.onUserSignIn(true, new UserSignInHandler() {
+        session.onUserSignInOrSignOut(true, new UserSignInOrSignOutHandler() {
             @Override
-            public void onUserSignIn(UserSignInEvent event) {
-                refreshStatus(authNeed, true);
+            public void onUserSignInOrSignOut(final UserSignInOrSignOutEvent event) {
+                refreshStatus(authNeed, event.isLogged());
             }
         });
-        session.onUserSignOut(true, new UserSignOutHandler() {
-            @Override
-            public void onUserSignOut(UserSignOutEvent event) {
-                refreshStatus(authNeed, false);
-            }
-        });
     }
 
     public void refreshStatus(final boolean authNeed, final boolean isLogged) {
-        boolean newVisibility = false;
-        boolean newEnabled = false;
-        if (authNeed && !isLogged) {
-            newVisibility = newEnabled = false;
+        boolean visible = false;
+        final boolean noLogged = !isLogged;
+        if (authNeed && noLogged) {
+            visible = false;
         } else {
             // Auth ok
-            newVisibility = newEnabled = true;
+            visible = true;
         }
-        setEnabled(newEnabled);
-        putValue(GuiActionDescrip.VISIBLE, newVisibility);
+        setVisible(visible);
     }
+
+    public void setVisible(final boolean visible) {
+        setEnabled(visible);
+        putValue(GuiActionDescrip.VISIBLE, visible);
+    }
 }

Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/UnJoinGroupAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/UnJoinGroupAction.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/UnJoinGroupAction.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -43,7 +43,7 @@
                             public void onSuccess(final SocialNetworkDataDTO result) {
                                 NotifyUser.hideProgress();
                                 NotifyUser.info(i18n.t("Removed as member"));
-                                stateManager.reload();
+                                stateManager.refreshCurrentGroupState();
                                 // in the future with user info:
                                 // stateManager.reloadSocialNetwork((SocialNetworkResultDTO)
                                 // result);

Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/UserSNVisibilityAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/UserSNVisibilityAction.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/UserSNVisibilityAction.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -38,7 +38,7 @@
                         // NotifyUser.info(i18n.t("Visibility of your network changed to "
                         // + visibility.toString()));
                         NotifyUser.info(i18n.t("Visibility of your network changed"));
-                        stateManager.reload();
+                        stateManager.refreshCurrentGroupState();
                     }
                 });
 

Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupSNConfActions.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupSNConfActions.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupSNConfActions.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -65,7 +65,7 @@
 
         final ButtonDescriptor joinBtn = new ButtonDescriptor(joinGroupAction);
         final ButtonDescriptor unJoinBtn = new ButtonDescriptor(unJoinGroupAction);
-        unJoinBtn.add(isLoggedCondition);
+        // unJoinBtn.add(isLoggedCondition);
         add(joinBtn); // .withStyles("k-no-backimage, k-noborder, k-nobackcolor"));
         add(unJoinBtn); // .withStyles("k-no-backimage, k-noborder, k-nobackcolor"));
 

Modified: trunk/src/main/java/cc/kune/core/client/state/ContentCache.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/ContentCache.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/state/ContentCache.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -19,7 +19,6 @@
  */
 package cc.kune.core.client.state;
 
-
 import cc.kune.core.shared.domain.utils.StateToken;
 import cc.kune.core.shared.dto.StateAbstractDTO;
 
@@ -27,8 +26,10 @@
 
 public interface ContentCache {
 
-    void cache(StateToken encodeState, StateAbstractDTO content);
+    void cache(StateToken token, StateAbstractDTO content);
 
     void getContent(String user, StateToken newState, AsyncCallback<StateAbstractDTO> callback);
 
+    void removeContent(StateToken token);
+
 }

Modified: trunk/src/main/java/cc/kune/core/client/state/ContentCacheDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/ContentCacheDefault.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/state/ContentCacheDefault.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -20,6 +20,7 @@
 package cc.kune.core.client.state;
 
 import java.util.HashMap;
+import java.util.Map;
 
 import cc.kune.core.client.notify.spiner.ProgressShowEvent;
 import cc.kune.core.client.rpcservices.ContentServiceAsync;
@@ -31,27 +32,29 @@
 import com.google.inject.Inject;
 
 public class ContentCacheDefault implements ContentCache {
-    private final HashMap<StateToken, StateAbstractDTO> cache;
+    private final Map<StateToken, StateAbstractDTO> cacheMap;
     private final EventBus eventBus;
     private final ContentServiceAsync server;
+    private final boolean useCache;
 
     @Inject
     public ContentCacheDefault(final ContentServiceAsync server, final EventBus eventBus) {
         this.server = server;
         this.eventBus = eventBus;
-        this.cache = new HashMap<StateToken, StateAbstractDTO>();
+        this.cacheMap = new HashMap<StateToken, StateAbstractDTO>();
+        useCache = true;
     }
 
     @Override
     public void cache(final StateToken encodeState, final StateAbstractDTO content) {
-        // Disabled by now
-        // cache.put(encodeState, content);
+        if (useCache) {
+            cacheMap.put(encodeState, content);
+        }
     }
 
     private StateAbstractDTO getCached(final StateToken newState) {
-        return null;
-        // Disabled by now
-        // return cache.remove(newState);
+        return useCache ? cacheMap.get(newState) : null;
+        // return useCache ? cache.remove(newState) : null;
     }
 
     @Override
@@ -65,4 +68,9 @@
         }
     }
 
+    @Override
+    public void removeContent(final StateToken token) {
+        cacheMap.remove(token);
+    }
+
 }

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-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/state/Session.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -138,7 +138,7 @@
 
     boolean isNotLogged();
 
-    void onInitDataReceived(boolean fireNow, AppStartEvent.AppStartHandler handler);
+    void onAppStart(boolean fireNow, AppStartEvent.AppStartHandler handler);
 
     @Deprecated
     void onInitDataReceived(Listener<InitDataDTO> listener);
@@ -154,6 +154,8 @@
     @Deprecated
     void onUserSignIn(Listener<UserInfoDTO> listener);
 
+    void onUserSignInOrSignOut(boolean fireNow, UserSignInOrSignOutEvent.UserSignInOrSignOutHandler handler);
+
     /**
      * @param fireNow
      *            if @true the handler is fired after added if the user is

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-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -30,6 +30,7 @@
 import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
 import cc.kune.core.client.rpcservices.UserServiceAsync;
 import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
+import cc.kune.core.client.state.UserSignInOrSignOutEvent.UserSignInOrSignOutHandler;
 import cc.kune.core.client.state.UserSignOutEvent.UserSignOutHandler;
 import cc.kune.core.shared.domain.utils.StateToken;
 import cc.kune.core.shared.dto.I18nCountryDTO;
@@ -297,7 +298,7 @@
     }
 
     @Override
-    public void onInitDataReceived(final boolean fireNow, final AppStartHandler handler) {
+    public void onAppStart(final boolean fireNow, final AppStartHandler handler) {
         eventBus.addHandler(AppStartEvent.getType(), handler);
         if (fireNow && initData != null) {
             handler.onAppStart(new AppStartEvent(initData));
@@ -323,6 +324,14 @@
     }
 
     @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 boolean fireNow, final UserSignOutHandler handler) {
         eventBus.addHandler(UserSignOutEvent.getType(), handler);
         if (fireNow && isNotLogged()) {
@@ -353,6 +362,7 @@
         } else {
             eventBus.fireEvent(new UserSignOutEvent());
         }
+        eventBus.fireEvent(new UserSignInOrSignOutEvent(isLogged()));
     }
 
     @Override

Modified: trunk/src/main/java/cc/kune/core/client/state/SiteTokenListeners.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/SiteTokenListeners.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/state/SiteTokenListeners.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -54,7 +54,7 @@
         this.newGroup = newGroup;
         this.aboutKuneDialog = aboutKuneDialog;
         init();
-        session.onInitDataReceived(true, new AppStartHandler() {
+        session.onAppStart(true, new AppStartHandler() {
             @Override
             public void onAppStart(final AppStartEvent event) {
             }

Modified: trunk/src/main/java/cc/kune/core/client/state/StateManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/StateManager.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/state/StateManager.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -33,10 +33,12 @@
 
     void addSiteToken(String token, HistoryTokenCallback historyTokenCallback);
 
-    void gotoToken(StateToken newToken);
+    void gotoHistoryToken(String newToken);
 
-    void gotoToken(String newToken);
+    void gotoHistoryTokenButRedirectToCurrent(String signin);
 
+    void gotoStateToken(StateToken newToken);
+
     void onGroupChanged(boolean fireNow, GroupChangedEvent.GroupChangedHandler handler);
 
     @Deprecated
@@ -62,6 +64,10 @@
     @Deprecated
     void onToolChanged(Listener2<String, String> listener);
 
+    void redirectOrRestorePreviousToken();
+
+    void refreshCurrentGroupState();
+
     void reload();
 
     void removeBeforeStateChangeListener(BeforeActionListener listener);

Modified: trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -29,6 +29,8 @@
 import cc.kune.common.client.errors.NotImplementedException;
 import cc.kune.common.client.log.Log;
 import cc.kune.common.client.utils.Pair;
+import cc.kune.core.client.init.AppStartEvent;
+import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
 import cc.kune.core.client.notify.spiner.ProgressHideEvent;
 import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
 import cc.kune.core.client.sitebar.spaces.Space;
@@ -57,9 +59,9 @@
     private StateToken previousToken;
     /**
      * When a historyChanged is interrupted (for instance because you are
-     * editing something), the new token is stored here
+     * editing something), the new history token is stored here
      */
-    private StateToken resumedToken;
+    private String resumedHistoryToken;
     private final Session session;
     private final HashMap<String, HistoryTokenCallback> siteTokens;
     private final TokenMatcher tokenMatcher;
@@ -73,27 +75,37 @@
         this.session = session;
         this.history = history;
         this.previousToken = null;
-        this.resumedToken = null;
+        this.resumedHistoryToken = null;
         tokenMatcher.init(GwtWaverefEncoder.INSTANCE);
         siteTokens = new HashMap<String, HistoryTokenCallback>();
         beforeStateChangeCollection = new BeforeActionCollection();
-        session.onUserSignIn(true, new UserSignInEvent.UserSignInHandler() {
+        session.onAppStart(true, new AppStartHandler() {
+
             @Override
-            public void onUserSignIn(final UserSignInEvent event) {
-                if (previousToken == null) {
-                    // starting up
-                    reload();
-                } else {
-                    // do nothing, SigInPresent calls goto;
-                }
+            public void onAppStart(final AppStartEvent event) {
+                session.onUserSignIn(true, new UserSignInEvent.UserSignInHandler() {
+                    @Override
+                    public void onUserSignIn(final UserSignInEvent event) {
+                        if (startingUp()) {
+                            processHistoryToken(history.getToken());
+                        } else {
+                            refreshCurrentGroupState();
+                        }
+                    }
+                });
+                session.onUserSignOut(true, new UserSignOutEvent.UserSignOutHandler() {
+                    @Override
+                    public void onUserSignOut(final UserSignOutEvent event) {
+                        if (startingUp()) {
+                            processHistoryToken(history.getToken());
+                        } else {
+                            // Other perms, then refresh state from server
+                            refreshCurrentGroupState();
+                        }
+                    }
+                });
             }
         });
-        session.onUserSignOut(true, new UserSignOutEvent.UserSignOutHandler() {
-            @Override
-            public void onUserSignOut(final UserSignOutEvent event) {
-                reload();
-            }
-        });
     }
 
     @Override
@@ -109,44 +121,46 @@
     private void checkGroupAndToolChange(final StateAbstractDTO newState) {
         final String newGroup = newState.getStateToken().getGroup();
         final String previousGroup = getPreviousGroup();
-        if (previousToken == null || !previousGroup.equals(newGroup)) {
+        if (startingUp() || !previousGroup.equals(newGroup)) {
             GroupChangedEvent.fire(eventBus, previousGroup, newGroup);
         }
         final String previousToolName = getPreviousTool();
         final String newTokenTool = newState.getStateToken().getTool();
         final String newToolName = newTokenTool == null ? "" : newTokenTool;
-        if (previousToken == null || previousToolName == null || !previousToolName.equals(newToolName)) {
+        if (startingUp() || previousToolName == null || !previousToolName.equals(newToolName)) {
             ToolChangedEvent.fire(eventBus, previousToolName, newToolName);
         }
     }
 
-    private void clearResumedToken() {
-        resumedToken = null;
-    }
-
     private String getPreviousGroup() {
-        final String previousGroup = previousToken == null ? "" : previousToken.getGroup();
+        final String previousGroup = startingUp() ? "" : previousToken.getGroup();
         return previousGroup;
     }
 
     private String getPreviousTool() {
-        final String previousTool = previousToken == null ? "" : previousToken.getTool();
+        final String previousTool = startingUp() ? "" : previousToken.getTool();
         return previousTool;
     }
 
     @Override
-    public void gotoToken(final StateToken newToken) {
-        Log.debug("StateManager: history goto-token newItem (" + newToken + ")");
-        history.newItem(newToken.getEncoded());
+    public void gotoHistoryToken(final String token) {
+        Log.debug("StateManager: history goto-string-token newItem (" + token + ")");
+        history.newItem(token);
     }
 
     @Override
-    public void gotoToken(final String token) {
-        Log.debug("StateManager: history goto-string-token newItem (" + token + ")");
-        gotoToken(new StateToken(token));
+    public void gotoHistoryTokenButRedirectToCurrent(final String token) {
+        gotoHistoryToken(TokenUtils.addRedirect(token, history.getToken()));
+
     }
 
     @Override
+    public void gotoStateToken(final StateToken newToken) {
+        Log.debug("StateManager: history goto-token newItem (" + newToken + ")");
+        history.newItem(newToken.getEncoded());
+    }
+
+    @Override
     public void onGroupChanged(final boolean fireNow, final GroupChangedHandler handler) {
         eventBus.addHandler(GroupChangedEvent.getType(), handler);
         final StateAbstractDTO currentState = session.getCurrentState();
@@ -162,6 +176,8 @@
     }
 
     private void onHistoryChanged(final StateToken newState) {
+        // NotifyUser.info("loading: " + newState + " because current:" +
+        // session.getCurrentStateToken());
         contentProvider.getContent(session.getUserHash(), newState, new AsyncCallbackSimple<StateAbstractDTO>() {
             @Override
             public void onSuccess(final StateAbstractDTO newState) {
@@ -170,9 +186,59 @@
         });
     }
 
-    void onHistoryChanged(final String newHistoryToken) {
+    @Override
+    public void onSocialNetworkChanged(final boolean fireNow, final SocialNetworkChangedHandler handler) {
+        eventBus.addHandler(SocialNetworkChangedEvent.getType(), handler);
+        final StateAbstractDTO currentState = session.getCurrentState();
+        if (fireNow && currentState != null) {
+            handler.onSocialNetworkChanged(new SocialNetworkChangedEvent(currentState));
+        }
+    }
+
+    @Override
+    public void onSocialNetworkChanged(final Listener<StateAbstractDTO> listener) {
+        throw new NotImplementedException();
+    }
+
+    @Override
+    public void onStateChanged(final boolean fireNow, final StateChangedHandler handler) {
+        eventBus.addHandler(StateChangedEvent.getType(), handler);
+        final StateAbstractDTO currentState = session.getCurrentState();
+        if (fireNow && currentState != null) {
+            handler.onStateChanged(new StateChangedEvent(currentState));
+        }
+    }
+
+    @Override
+    public void onStateChanged(final Listener<StateAbstractDTO> listener) {
+        throw new NotImplementedException();
+    }
+
+    @Override
+    public void onToolChanged(final boolean fireNow, final ToolChangedHandler handler) {
+        eventBus.addHandler(ToolChangedEvent.getType(), handler);
+        final StateAbstractDTO currentState = session.getCurrentState();
+        if (fireNow && currentState != null) {
+            handler.onToolChanged(new ToolChangedEvent(getPreviousTool(), currentState.getStateToken().getTool()));
+        }
+    }
+
+    @Override
+    public void onToolChanged(final Listener2<String, String> listener) {
+        throw new NotImplementedException();
+    }
+
+    @Override
+    public void onValueChange(final ValueChangeEvent<String> event) {
+        Log.info("History event value changed: " + event.getValue());
+        processHistoryToken(event.getValue());
+    }
+
+    void processHistoryToken(final String newHistoryToken) {
         // http://code.google.com/p/google-web-toolkit-doc-1-5/wiki/DevGuideHistory
         if (beforeStateChangeCollection.checkBeforeAction()) {
+            // There isn't a beforeStateChange listener that stops this history
+            // change
             HistoryTokenCallback tokenListener = null;
             if (newHistoryToken != null) {
                 final String nToken = newHistoryToken.toLowerCase();
@@ -180,6 +246,7 @@
             }
             Log.debug("StateManager: on history changed (" + newHistoryToken + ")");
             if (tokenListener == null) {
+                Log.debug("Is not a special hash");
                 // token is not one of #newgroup #signin #translate ...
                 final String nToken = newHistoryToken != null ? newHistoryToken.toLowerCase() : null;
                 if (tokenMatcher.hasRedirect(nToken)) {
@@ -191,6 +258,17 @@
                         SpaceConfEvent.fire(eventBus, Space.groupSpace, sndToken);
                         SpaceConfEvent.fire(eventBus, Space.publicSpace, TokenUtils.preview(sndToken));
                         onHistoryChanged(new StateToken(sndToken));
+                    } else if (firstToken.equals(SiteTokens.NEWGROUP)) {
+                        siteTokens.get(SiteTokens.NEWGROUP).onHistoryToken();
+                    } else if (firstToken.equals(SiteTokens.SIGNIN)) {
+                        if (session.isLogged()) {
+                            // We are logged, then redirect:
+                            history.newItem(sndToken, false);
+                            processHistoryToken(sndToken);
+                        } else {
+                            // We have to loggin
+                            siteTokens.get(SiteTokens.SIGNIN).onHistoryToken();
+                        }
                     }
                 } else if (tokenMatcher.isWaveToken(newHistoryToken)) {
                     if (session.isLogged()) {
@@ -198,7 +276,7 @@
                     } else {
                         history.newItem(TokenUtils.addRedirect(SiteTokens.SIGNIN, newHistoryToken));
                     }
-                    if (previousToken == null) {
+                    if (startingUp()) {
                         // Starting application (with Wave url)
                         onHistoryChanged(new StateToken(SiteTokens.GROUP_HOME));
                     }
@@ -209,75 +287,51 @@
                     onHistoryChanged(new StateToken(newHistoryToken));
                 } else {
                     // While we don't redefine token "" as home:
-                    SpaceSelectEvent.fire(eventBus, Space.groupSpace);
                     SpaceConfEvent.fire(eventBus, Space.groupSpace, SiteTokens.GROUP_HOME);
                     SpaceConfEvent.fire(eventBus, Space.publicSpace, TokenUtils.preview(SiteTokens.GROUP_HOME));
+                    SpaceSelectEvent.fire(eventBus, Space.groupSpace);
                     onHistoryChanged(new StateToken(SiteTokens.GROUP_HOME));
                 }
             } else {
                 // token is one of #newgroup #signin #translate ...
-                if (previousToken == null) {
+                if (startingUp()) {
                     // Starting with some token like "signin": load defContent
                     // also
-                    onHistoryChanged("");
+                    processHistoryToken("");
                     SpaceSelectEvent.fire(eventBus, Space.groupSpace);
                 }
                 // Fire the listener of this #hash token
                 tokenListener.onHistoryToken();
             }
         } else {
-            resumedToken = new StateToken(newHistoryToken);
+            resumedHistoryToken = newHistoryToken;
         }
     }
 
     @Override
-    public void onSocialNetworkChanged(final boolean fireNow, final SocialNetworkChangedHandler handler) {
-        eventBus.addHandler(SocialNetworkChangedEvent.getType(), handler);
-        final StateAbstractDTO currentState = session.getCurrentState();
-        if (fireNow && currentState != null) {
-            handler.onSocialNetworkChanged(new SocialNetworkChangedEvent(currentState));
+    public void redirectOrRestorePreviousToken() {
+        final String token = history.getToken();
+        if (tokenMatcher.hasRedirect(token)) {
+            // URL of the form signin(group.tool)
+            history.newItem(tokenMatcher.getRedirect(token).getRight());
+        } else {
+            // No redirect then restore previous token
+            restorePreviousToken();
         }
     }
 
+    /**
+     * <p>
+     * Reload current state (not using client cache)
+     * </p>
+     */
     @Override
-    public void onSocialNetworkChanged(final Listener<StateAbstractDTO> listener) {
-        throw new NotImplementedException();
+    public void refreshCurrentGroupState() {
+        final StateToken currentStateToken = session.getCurrentStateToken();
+        contentProvider.removeContent(currentStateToken);
+        onHistoryChanged(currentStateToken);
     }
 
-    @Override
-    public void onStateChanged(final boolean fireNow, final StateChangedHandler handler) {
-        eventBus.addHandler(StateChangedEvent.getType(), handler);
-        final StateAbstractDTO currentState = session.getCurrentState();
-        if (fireNow && currentState != null) {
-            handler.onStateChanged(new StateChangedEvent(currentState));
-        }
-    }
-
-    @Override
-    public void onStateChanged(final Listener<StateAbstractDTO> listener) {
-        throw new NotImplementedException();
-    }
-
-    @Override
-    public void onToolChanged(final boolean fireNow, final ToolChangedHandler handler) {
-        eventBus.addHandler(ToolChangedEvent.getType(), handler);
-        final StateAbstractDTO currentState = session.getCurrentState();
-        if (fireNow && currentState != null) {
-            handler.onToolChanged(new ToolChangedEvent(getPreviousTool(), currentState.getStateToken().getTool()));
-        }
-    }
-
-    @Override
-    public void onToolChanged(final Listener2<String, String> listener) {
-        throw new NotImplementedException();
-    }
-
-    @Override
-    public void onValueChange(final ValueChangeEvent<String> event) {
-        Log.info("History event value changed: " + event.getValue());
-        onHistoryChanged(event.getValue());
-    }
-
     /**
      * <p>
      * Reload current state (using client cache if available)
@@ -285,8 +339,7 @@
      */
     @Override
     public void reload() {
-        Log.info("Reloading state");
-        onHistoryChanged(history.getToken());
+        processHistoryToken(history.getToken());
     }
 
     @Override
@@ -301,15 +354,16 @@
 
     @Override
     public void restorePreviousToken() {
-        gotoToken(previousToken);
+        gotoStateToken(previousToken);
     }
 
     @Override
     public void resumeTokenChange() {
-        if (resumedToken != null) {
+        if (resumedHistoryToken != null) {
+            // Is this reload redundant?
             reload();
-            gotoToken(resumedToken);
-            clearResumedToken();
+            gotoHistoryToken(resumedHistoryToken);
+            resumedHistoryToken = null;
         }
     }
 
@@ -334,9 +388,16 @@
 
     void setState(final StateAbstractDTO newState) {
         session.setCurrentState(newState);
+        final StateToken newToken = newState.getStateToken();
+        contentProvider.cache(newToken, newState);
+        // history.newItem(newToken.toString(), false);
         StateChangedEvent.fire(eventBus, newState);
+        checkGroupAndToolChange(newState);
+        previousToken = newToken;
         eventBus.fireEvent(new ProgressHideEvent());
-        checkGroupAndToolChange(newState);
-        previousToken = newState.getStateToken();
     }
+
+    private boolean startingUp() {
+        return previousToken == null;
+    }
 }

Modified: trunk/src/main/java/cc/kune/core/client/state/TokenMatcher.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/TokenMatcher.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/client/state/TokenMatcher.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -62,7 +62,7 @@
     }
 
     private String[] splitRedirect(final String token) {
-        return token.split("\\(");
+        return token.split("\\(", 2);
     }
 
 }

Added: trunk/src/main/java/cc/kune/core/client/state/UserSignInOrSignOutEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/UserSignInOrSignOutEvent.java	                        (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/state/UserSignInOrSignOutEvent.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -0,0 +1,94 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.state;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+
+public class UserSignInOrSignOutEvent extends GwtEvent<UserSignInOrSignOutEvent.UserSignInOrSignOutHandler> {
+
+    public interface HasUserSignInOrSignOutHandlers extends HasHandlers {
+        HandlerRegistration addUserSignInOrSignOutHandler(UserSignInOrSignOutHandler handler);
+    }
+
+    public interface UserSignInOrSignOutHandler extends EventHandler {
+        public void onUserSignInOrSignOut(UserSignInOrSignOutEvent event);
+    }
+
+    private static final Type<UserSignInOrSignOutHandler> TYPE = new Type<UserSignInOrSignOutHandler>();
+
+    public static Type<UserSignInOrSignOutHandler> getType() {
+        return TYPE;
+    }
+
+    private final boolean loggedin;
+
+    public UserSignInOrSignOutEvent(final boolean loggedin) {
+        this.loggedin = loggedin;
+    }
+
+    @Override
+    protected void dispatch(final UserSignInOrSignOutHandler handler) {
+        handler.onUserSignInOrSignOut(this);
+    }
+
+    @Override
+    public boolean equals(final Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        final UserSignInOrSignOutEvent other = (UserSignInOrSignOutEvent) obj;
+        if (loggedin != other.loggedin) {
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    public Type<UserSignInOrSignOutHandler> getAssociatedType() {
+        return TYPE;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + (loggedin ? 1231 : 1237);
+        return result;
+    }
+
+    public boolean isLogged() {
+        return loggedin;
+    }
+
+    @Override
+    public String toString() {
+        return "UserSignInOrSignOutEvent[" + loggedin + "]";
+    }
+
+}


Property changes on: trunk/src/main/java/cc/kune/core/client/state/UserSignInOrSignOutEvent.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: trunk/src/main/java/cc/kune/core/public/ws.css
===================================================================
--- trunk/src/main/java/cc/kune/core/public/ws.css	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/core/public/ws.css	2011-04-03 22:48:05 UTC (rev 1303)
@@ -399,14 +399,16 @@
     padding: 1px 7px 0 0 !important;
 }
 
-.k-sitebar-wave-status,.k-sitebar-wave-status-online {
-    color: red;
+.k-sitebar-wave-status{
 }
-
-.k-sitebar-wave-status,.k-sitebar-wave-status-offline {
+.k-sitebar-wave-status-online {
     color: green;
 }
 
+.k-sitebar-wave-status-offline {
+    color: red;
+}
+
 .k-sitebar button:hover {
     border: 0px;
     background: none;
@@ -1062,7 +1064,7 @@
 }
 
 .k-tsp-cloud {
-    line-height: 1.5em;
+    line-height: 1em;
     text-align: center;
 }
 

Modified: trunk/src/main/java/cc/kune/docs/client/AbstractFoldableContentActions.java
===================================================================
--- trunk/src/main/java/cc/kune/docs/client/AbstractFoldableContentActions.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/docs/client/AbstractFoldableContentActions.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -68,7 +68,7 @@
         this.fileDownloadProvider = fileDownloadProvider;
         this.foldableContent = foldableContent;
         createActions();
-        session.onInitDataReceived(true, new AppStartHandler() {
+        session.onAppStart(true, new AppStartHandler() {
             @Override
             public void onAppStart(final AppStartEvent event) {
                 createPostSessionInitActions();

Modified: trunk/src/main/java/cc/kune/msgs/client/UserMessagesPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/msgs/client/UserMessagesPanel.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/msgs/client/UserMessagesPanel.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -19,8 +19,6 @@
  */
 package cc.kune.msgs.client;
 
-import org.adamtacy.client.ui.effects.examples.SlideUp;
-
 import cc.kune.common.client.noti.NotifyLevel;
 import cc.kune.msgs.client.UserMessagesPresenter.UserMessagesView;
 
@@ -49,8 +47,8 @@
             final boolean closeable, final CloseCallback closeCallback) {
         final UserMessage msg = new UserMessage(level, title, message, id, closeable, closeCallback);
         vp.add(msg);
-        final SlideUp anim = new SlideUp(msg.getElement());
-        anim.setDuration(.5);
-        anim.play();
+        // final SlideUp anim = new SlideUp(msg.getElement());
+        // anim.setDuration(.5);
+        // anim.play();
     }
 }

Modified: trunk/src/main/java/cc/kune/pspace/client/PSpaceParts.java
===================================================================
--- trunk/src/main/java/cc/kune/pspace/client/PSpaceParts.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/pspace/client/PSpaceParts.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -11,7 +11,7 @@
 
     @Inject
     public PSpaceParts(final Session session, final Provider<PSpacePresenter> pspacePresenter) {
-        session.onInitDataReceived(true, new AppStartHandler() {
+        session.onAppStart(true, new AppStartHandler() {
             @Override
             public void onAppStart(final AppStartEvent event) {
                 pspacePresenter.get();

Modified: trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -69,7 +69,7 @@
         super(eventBus, view, proxy);
         this.i18n = i18n;
         this.stateTokenUtils = stateTokenUtils;
-        session.onInitDataReceived(true, new AppStartEvent.AppStartHandler() {
+        session.onAppStart(true, new AppStartEvent.AppStartHandler() {
             @Override
             public void onAppStart(final AppStartEvent event) {
                 stateManager.onStateChanged(true, new StateChangedHandler() {

Deleted: trunk/src/main/java/cc/kune/wave/client/SitebarWaveStatus.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/SitebarWaveStatus.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/wave/client/SitebarWaveStatus.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -1,59 +0,0 @@
-package cc.kune.wave.client;
-
-import org.waveprotocol.box.webclient.client.ClientEvents;
-import org.waveprotocol.box.webclient.client.events.NetworkStatusEvent;
-import org.waveprotocol.box.webclient.client.events.NetworkStatusEventHandler;
-
-import cc.kune.common.client.actions.AbstractAction;
-import cc.kune.common.client.actions.Action;
-import cc.kune.common.client.actions.ActionEvent;
-import cc.kune.common.client.actions.ui.descrip.IconLabelDescriptor;
-import cc.kune.common.client.noti.NotifyUser;
-import cc.kune.core.client.sitebar.SitebarActionsPresenter;
-import cc.kune.core.client.sn.actions.SessionAction;
-import cc.kune.core.client.state.Session;
-import cc.kune.core.shared.i18n.I18nTranslationService;
-
-import com.google.inject.Inject;
-
-public class SitebarWaveStatus {
-
-    public static class SitebarWaveStatusAction extends SessionAction {
-
-        @Inject
-        public SitebarWaveStatusAction(final Session session, final I18nTranslationService i18n) {
-            super(session, true);
-            ClientEvents.get().addNetworkStatusEventHandler(new NetworkStatusEventHandler() {
-                @Override
-                public void onNetworkStatus(final NetworkStatusEvent event) {
-                    switch (event.getStatus()) {
-                    case CONNECTED:
-                    case RECONNECTED:
-                        putValue(Action.NAME, i18n.t("Online"));
-                        putValue(AbstractAction.STYLES, "k-sitebar-wave-status, k-sitebar-wave-status-online");
-                        break;
-                    case DISCONNECTED:
-                        putValue(Action.NAME, i18n.t("Offline"));
-                        putValue(AbstractAction.STYLES, "k-sitebar-wave-status, k-sitebar-wave-status-offline");
-                        break;
-                    case RECONNECTING:
-                        NotifyUser.showProgress(i18n.t("Connecting"));
-                        break;
-                    }
-                }
-            });
-        }
-
-        @Override
-        public void actionPerformed(final ActionEvent event) {
-            // Do nothing
-        }
-    }
-
-    @Inject
-    public SitebarWaveStatus(final SitebarActionsPresenter sitebar, final SitebarWaveStatusAction action) {
-        final IconLabelDescriptor status = new IconLabelDescriptor(action);
-        status.setPosition(0);
-        sitebar.getRightToolbar().addAction(status);
-    }
-}

Modified: trunk/src/main/java/cc/kune/wave/client/WaveClientManager.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WaveClientManager.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/wave/client/WaveClientManager.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -42,6 +42,8 @@
                             }
                             webClient = new WebClient(eventBus);
                             userSpace.add(webClient);
+                        } else {
+                            webClient.setVisible(true);
                         }
                     }
                 });
@@ -50,12 +52,8 @@
         session.onUserSignOut(true, new UserSignOutHandler() {
             @Override
             public void onUserSignOut(final UserSignOutEvent event) {
-                // While we don't find a way to logout in WebClient
-                // Garbage collector
-                // https://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/0e48c15839f9c9dc
                 if (webClient != null) {
-                    webClient.removeFromParent();
-                    webClient = null;
+                    webClient.setVisible(false);
                 }
             }
         });

Modified: trunk/src/main/java/cc/kune/wave/client/WaveGinModule.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WaveGinModule.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/wave/client/WaveGinModule.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -31,7 +31,7 @@
     @Override
     protected void configure() {
         bind(WaveClientManager.class).in(Singleton.class);
-        bind(SitebarWaveStatus.class).in(Singleton.class);
+        bind(WaveStatusIndicator.class).in(Singleton.class);
         bind(WaveParts.class).asEagerSingleton();
     }
 }

Modified: trunk/src/main/java/cc/kune/wave/client/WaveParts.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WaveParts.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/cc/kune/wave/client/WaveParts.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -11,12 +11,12 @@
 
     @Inject
     public WaveParts(final Session session, final Provider<WaveClientManager> waveClientManager,
-            final Provider<SitebarWaveStatus> waveStatus) {
-        session.onInitDataReceived(true, new AppStartHandler() {
+            final Provider<WaveStatusIndicator> waveOnlineStatus) {
+        session.onAppStart(true, new AppStartHandler() {
             @Override
             public void onAppStart(final AppStartEvent event) {
                 waveClientManager.get();
-                waveStatus.get();
+                waveOnlineStatus.get();
             }
         });
     }

Copied: trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java (from rev 1299, trunk/src/main/java/cc/kune/wave/client/SitebarWaveStatus.java)
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java	                        (rev 0)
+++ trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -0,0 +1,60 @@
+package cc.kune.wave.client;
+
+import org.waveprotocol.box.webclient.client.ClientEvents;
+import org.waveprotocol.box.webclient.client.events.NetworkStatusEvent;
+import org.waveprotocol.box.webclient.client.events.NetworkStatusEventHandler;
+
+import cc.kune.common.client.actions.AbstractAction;
+import cc.kune.common.client.actions.Action;
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.common.client.actions.ui.descrip.IconLabelDescriptor;
+import cc.kune.common.client.noti.NotifyUser;
+import cc.kune.core.client.sitebar.SitebarActionsPresenter;
+import cc.kune.core.client.sn.actions.SessionAction;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+
+import com.google.inject.Inject;
+
+public class WaveStatusIndicator {
+
+    public static class WaveStatusAction extends SessionAction {
+
+        @Inject
+        public WaveStatusAction(final Session session, final I18nTranslationService i18n) {
+            super(session, true);
+            ClientEvents.get().addNetworkStatusEventHandler(new NetworkStatusEventHandler() {
+                @Override
+                public void onNetworkStatus(final NetworkStatusEvent event) {
+                    switch (event.getStatus()) {
+                    case CONNECTED:
+                    case RECONNECTED:
+                        putValue(Action.NAME, i18n.t("Online"));
+                        putValue(AbstractAction.STYLES, "k-sitebar-wave-status, k-sitebar-wave-status-online");
+                        NotifyUser.hideProgress();
+                        break;
+                    case DISCONNECTED:
+                        NotifyUser.showProgress(i18n.t("Connecting"));
+                    case RECONNECTING:
+                        putValue(Action.NAME, i18n.t("Offline"));
+                        putValue(AbstractAction.STYLES, "k-sitebar-wave-status, k-sitebar-wave-status-offline");
+                        break;
+                    }
+                }
+            });
+        }
+
+        @Override
+        public void actionPerformed(final ActionEvent event) {
+            // Do nothing
+        }
+
+    }
+
+    @Inject
+    public WaveStatusIndicator(final SitebarActionsPresenter sitebar, final WaveStatusAction action) {
+        final IconLabelDescriptor status = new IconLabelDescriptor(action);
+        status.setPosition(0);
+        sitebar.getRightToolbar().addAction(status);
+    }
+}


Property changes on: trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -31,7 +31,6 @@
 import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
 import org.ourproject.kune.workspace.client.editor.ContentEditor;
 import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
-import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
 import org.ourproject.kune.workspace.client.themes.WsBackManager;
 import org.ourproject.kune.workspace.client.upload.FileUploader;
 
@@ -56,11 +55,11 @@
             final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
             final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
             final BlogViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
-            final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager) {
+            final WsBackManager wsBackManager) {
         super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
                 contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
                 contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
-                documentViewer, entityLogo, publicLink, wsBackManager);
+                documentViewer, entityLogo, wsBackManager);
     }
 
     @Override

Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -30,7 +30,6 @@
 import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
 import org.ourproject.kune.workspace.client.editor.ContentEditor;
 import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
-import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
 import org.ourproject.kune.workspace.client.themes.WsBackManager;
 import org.ourproject.kune.workspace.client.upload.FileUploader;
 
@@ -55,11 +54,11 @@
             final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
             final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
             final GalleryViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
-            final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager) {
+            final WsBackManager wsBackManager) {
         super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
                 contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
                 contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
-                documentViewer, entityLogo, publicLink, wsBackManager);
+                documentViewer, entityLogo, wsBackManager);
     }
 
     @Override

Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPanel.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPanel.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -59,7 +59,7 @@
                         new ClickHandler() {
                             @Override
                             public void onClick(final ClickEvent event) {
-                                stateManager.gotoToken(token);
+                                stateManager.gotoStateToken(token);
                             }
                         });
                 thumb.setHeight("100");

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/common/GotoGroupAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/common/GotoGroupAction.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/common/GotoGroupAction.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -39,6 +39,6 @@
     }
 
     public void actionPerformed(final ActionEvent event) {
-        this.stateManager.gotoToken(name);
+        this.stateManager.gotoHistoryToken(name);
     }
 }

Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -31,7 +31,6 @@
 import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
 import org.ourproject.kune.workspace.client.editor.ContentEditor;
 import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
-import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
 import org.ourproject.kune.workspace.client.themes.WsBackManager;
 import org.ourproject.kune.workspace.client.upload.FileUploader;
 
@@ -56,11 +55,11 @@
             final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
             final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
             final WikiViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
-            final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager) {
+            final WsBackManager wsBackManager) {
         super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
                 contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
                 contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
-                documentViewer, entityLogo, publicLink, wsBackManager);
+                documentViewer, entityLogo, wsBackManager);
     }
 
     @Override

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/OldAbstractFoldableContentActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/OldAbstractFoldableContentActions.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/OldAbstractFoldableContentActions.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -37,7 +37,6 @@
 import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
 import org.ourproject.kune.workspace.client.editor.ContentEditor;
 import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
-import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
 import org.ourproject.kune.workspace.client.themes.WsBackManager;
 import org.ourproject.kune.workspace.client.upload.FileUploader;
 
@@ -95,7 +94,7 @@
     protected final FoldableContent foldableContent;
     protected final Provider<GroupServiceAsync> groupServiceProvider;
     protected final I18nUITranslationService i18n;
-    private final SitePublicSpaceLink publicLink;
+
     protected final Session session;
     protected final StateManager stateManager;
     protected final Provider<ContentEditor> textEditorProvider;
@@ -110,7 +109,7 @@
             final ContentActionRegistry contentActionRegistry, final ContextActionRegistry contextActionRegistry,
             final Provider<FileDownloadUtils> fileDownloadProvider, final Provider<ContentEditor> textEditorProvider,
             final Provider<ContextPropEditor> contextPropEditorProvider, final FoldableContent foldableContent,
-            final EntityHeader entityLogo, final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager) {
+            final EntityHeader entityLogo, final WsBackManager wsBackManager) {
         this.session = session;
         this.stateManager = stateManager;
         this.i18n = i18n;
@@ -127,7 +126,6 @@
         this.contextPropEditorProvider = contextPropEditorProvider;
         this.foldableContent = foldableContent;
         this.entityLogo = entityLogo;
-        this.publicLink = publicLink;
         this.wsBackManager = wsBackManager;
         createActions();
         session.onInitDataReceived(new Listener<InitDataDTO>() {
@@ -197,7 +195,7 @@
                                     public void onSuccess(final StateContentDTO state) {
                                         session.setCurrentState(state);
                                         final StateToken parent = token.copy().clearDocument();
-                                        stateManager.gotoToken(parent);
+                                        stateManager.gotoStateToken(parent);
                                         contextNavigator.clear();
                                         contextNavigator.refreshState();
                                     }
@@ -318,7 +316,7 @@
                 new Listener<StateToken>() {
                     @Override
                     public void onEvent(final StateToken token) {
-                        stateManager.gotoToken(token);
+                        stateManager.gotoStateToken(token);
                     }
                 });
         go.setMustBeAuthenticated(false);
@@ -333,7 +331,7 @@
                 AccessRolDTO.Viewer, CONTEXT_TOPBAR, new Listener<StateToken>() {
                     @Override
                     public void onEvent(final StateToken token) {
-                        stateManager.gotoToken(token.getGroup());
+                        stateManager.gotoHistoryToken(token.getGroup());
                     }
                 });
         goGroupHome.setMustBeAuthenticated(false);
@@ -548,7 +546,7 @@
                         session.getCurrentUserInfo().setShowDeletedContent(mustShow);
                         if (!mustShow && session.isCurrentStateAContent()
                                 && session.getContentState().getStatus().equals(ContentStatus.inTheDustbin)) {
-                            stateManager.gotoToken(session.getCurrentStateToken().getGroup());
+                            stateManager.gotoHistoryToken(session.getCurrentStateToken().getGroup());
                         }
                         contextNavigator.clear();
                         contextNavigator.refreshState();
@@ -657,7 +655,7 @@
             public void onSuccess(final StateAbstractDTO state) {
                 if (session.inSameToken(stateToken)) {
                     session.setCurrentState(state);
-                    publicLink.setState(state);
+                    // publicLink.setState(state);
                     foldableContent.refreshState();
                 }
                 contextNavigator.setItemStatus(stateToken, status);

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+// * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
  * This file is part of kune.
  *
  * This program is free software: you can redistribute it and/or modify
@@ -19,1099 +19,1095 @@
  \*/
 package org.ourproject.kune.workspace.client;
 
-import org.ourproject.kune.chat.client.ChatEngine;
-import org.ourproject.kune.platf.client.actions.ActionManager;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPanel;
-import org.ourproject.kune.platf.client.actions.ui.GuiBindingsRegister;
-import org.ourproject.kune.platf.client.actions.ui.SimpleGuiItem;
-import org.ourproject.kune.platf.client.app.ApplicationComponentGroup;
-import org.ourproject.kune.platf.client.app.GroupOptionsCollection;
-import org.ourproject.kune.platf.client.app.UserOptionsCollection;
 import org.ourproject.kune.platf.client.services.AbstractExtendedModule;
-import org.ourproject.kune.platf.client.services.Images;
-import org.ourproject.kune.platf.client.shortcuts.GlobalShortcutRegister;
-import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
-import org.ourproject.kune.platf.client.ui.palette.ColorWebSafePalette;
-import org.ourproject.kune.platf.client.ui.rte.edithtml.EditHtmlDialog;
-import org.ourproject.kune.platf.client.ui.rte.img.RTEImgResources;
-import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageDialog;
-import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageGroup;
-import org.ourproject.kune.platf.client.ui.rte.insertlink.InsertLinkDialog;
-import org.ourproject.kune.platf.client.ui.rte.insertlink.InsertLinkGroup;
-import org.ourproject.kune.platf.client.ui.rte.insertmedia.InsertMediaDialog;
-import org.ourproject.kune.platf.client.ui.rte.insertmedia.InsertMediaGroup;
-import org.ourproject.kune.platf.client.ui.rte.insertspecialchar.InsertSpecialCharDialog;
-import org.ourproject.kune.platf.client.ui.rte.inserttable.InsertTableDialog;
-import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
-import org.ourproject.kune.workspace.client.ctxnav.ContextNavigatorPanel;
-import org.ourproject.kune.workspace.client.ctxnav.ContextNavigatorPresenter;
-import org.ourproject.kune.workspace.client.cxt.ActionContextBottomToolbar;
-import org.ourproject.kune.workspace.client.cxt.ActionContextTopToolbar;
-import org.ourproject.kune.workspace.client.cxt.ContextActionRegistry;
-import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
-import org.ourproject.kune.workspace.client.cxt.ContextPropEditorPanel;
-import org.ourproject.kune.workspace.client.cxt.ContextPropEditorPresenter;
-import org.ourproject.kune.workspace.client.cxt.ContextPropEditorView;
-import org.ourproject.kune.workspace.client.editor.ContentEditor;
-import org.ourproject.kune.workspace.client.editor.ContentEditorPanel;
-import org.ourproject.kune.workspace.client.editor.ContentEditorPresenter;
-import org.ourproject.kune.workspace.client.editor.insertlocalimg.InsertImageLocal;
-import org.ourproject.kune.workspace.client.editor.insertlocalimg.InsertImageLocalPanel;
-import org.ourproject.kune.workspace.client.editor.insertlocalimg.InsertImageLocalPresenter;
-import org.ourproject.kune.workspace.client.editor.insertlocallink.InsertLinkLocal;
-import org.ourproject.kune.workspace.client.editor.insertlocallink.InsertLinkLocalPanel;
-import org.ourproject.kune.workspace.client.editor.insertlocallink.InsertLinkLocalPresenter;
-import org.ourproject.kune.workspace.client.editor.insertlocalmedia.InsertMediaLocal;
-import org.ourproject.kune.workspace.client.editor.insertlocalmedia.InsertMediaLocalPanel;
-import org.ourproject.kune.workspace.client.editor.insertlocalmedia.InsertMediaLocalPresenter;
-import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
-import org.ourproject.kune.workspace.client.entityheader.EntityHeaderPanel;
-import org.ourproject.kune.workspace.client.entityheader.EntityHeaderPresenter;
-import org.ourproject.kune.workspace.client.i18n.I18nTranslator;
-import org.ourproject.kune.workspace.client.i18n.I18nTranslatorPanel;
-import org.ourproject.kune.workspace.client.i18n.I18nTranslatorPresenter;
-import org.ourproject.kune.workspace.client.i18n.I18nTranslatorView;
-import org.ourproject.kune.workspace.client.i18n.LanguageSelector;
-import org.ourproject.kune.workspace.client.i18n.LanguageSelectorPanel;
-import org.ourproject.kune.workspace.client.i18n.LanguageSelectorPresenter;
-import org.ourproject.kune.workspace.client.i18n.LanguageSelectorView;
-import org.ourproject.kune.workspace.client.licensewizard.LicenseChangeAction;
-import org.ourproject.kune.workspace.client.licensewizard.LicenseWizard;
-import org.ourproject.kune.workspace.client.licensewizard.LicenseWizardPanel;
-import org.ourproject.kune.workspace.client.licensewizard.LicenseWizardPresenter;
-import org.ourproject.kune.workspace.client.licensewizard.pages.LicenseWizardFirstForm;
-import org.ourproject.kune.workspace.client.licensewizard.pages.LicenseWizardFirstFormView;
-import org.ourproject.kune.workspace.client.licensewizard.pages.LicenseWizardFrdForm;
-import org.ourproject.kune.workspace.client.licensewizard.pages.LicenseWizardFrdFormView;
-import org.ourproject.kune.workspace.client.licensewizard.pages.LicenseWizardSndForm;
-import org.ourproject.kune.workspace.client.licensewizard.pages.LicenseWizardSndFormView;
-import org.ourproject.kune.workspace.client.licensewizard.pages.LicenseWizardTrdForm;
-import org.ourproject.kune.workspace.client.licensewizard.pages.LicenseWizardTrdFormView;
-import org.ourproject.kune.workspace.client.nohomepage.NoHomePage;
-import org.ourproject.kune.workspace.client.nohomepage.NoHomePagePanel;
-import org.ourproject.kune.workspace.client.nohomepage.NoHomePagePresenter;
-import org.ourproject.kune.workspace.client.oldsn.other.AddAsBuddieHeaderButton;
-import org.ourproject.kune.workspace.client.oldsn.toolbar.ActionBuddiesSummaryToolbar;
-import org.ourproject.kune.workspace.client.oldsn.toolbar.ActionBuddiesSummaryToolbarPresenter;
-import org.ourproject.kune.workspace.client.oldsn.toolbar.ActionGroupSummaryToolbar;
-import org.ourproject.kune.workspace.client.oldsn.toolbar.ActionGroupSummaryToolbarPresenter;
-import org.ourproject.kune.workspace.client.oldsn.toolbar.ActionParticipationSummaryToolbarPresenter;
-import org.ourproject.kune.workspace.client.oldsn.toolbar.ActionParticipationToolbar;
-import org.ourproject.kune.workspace.client.options.GroupOptions;
-import org.ourproject.kune.workspace.client.options.GroupOptionsPanel;
-import org.ourproject.kune.workspace.client.options.GroupOptionsPresenter;
-import org.ourproject.kune.workspace.client.options.UserOptions;
-import org.ourproject.kune.workspace.client.options.license.EntityOptionsDefLicensePanel;
-import org.ourproject.kune.workspace.client.options.license.GroupOptionsDefLicense;
-import org.ourproject.kune.workspace.client.options.license.GroupOptionsDefLicensePresenter;
-import org.ourproject.kune.workspace.client.options.license.UserOptionsDefLicense;
-import org.ourproject.kune.workspace.client.options.license.UserOptionsDefLicensePresenter;
-import org.ourproject.kune.workspace.client.options.logo.EntityOptionsLogoPresenter;
-import org.ourproject.kune.workspace.client.options.logo.GroupOptionsLogo;
-import org.ourproject.kune.workspace.client.options.logo.GroupOptionsLogoPanel;
-import org.ourproject.kune.workspace.client.options.logo.GroupOptionsLogoPresenter;
-import org.ourproject.kune.workspace.client.options.logo.UserOptionsLogo;
-import org.ourproject.kune.workspace.client.options.logo.UserOptionsLogoPanel;
-import org.ourproject.kune.workspace.client.options.logo.UserOptionsLogoPresenter;
-import org.ourproject.kune.workspace.client.options.pscape.EntityOptionsPublicSpaceConfPanel;
-import org.ourproject.kune.workspace.client.options.pscape.GroupOptionsPublicSpaceConf;
-import org.ourproject.kune.workspace.client.options.pscape.GroupOptionsPublicSpaceConfPresenter;
-import org.ourproject.kune.workspace.client.options.pscape.UserOptionsPublicSpaceConf;
-import org.ourproject.kune.workspace.client.options.pscape.UserOptionsPublicSpaceConfPresenter;
-import org.ourproject.kune.workspace.client.options.tools.EntityOptionsToolsConf;
-import org.ourproject.kune.workspace.client.options.tools.EntityOptionsToolsConfPanel;
-import org.ourproject.kune.workspace.client.options.tools.GroupOptionsToolsConfPresenter;
-import org.ourproject.kune.workspace.client.options.tools.UserOptionsToolsConf;
-import org.ourproject.kune.workspace.client.options.tools.UserOptionsToolsConfPresenter;
-import org.ourproject.kune.workspace.client.rate.RateIt;
-import org.ourproject.kune.workspace.client.rate.RateItPanel;
-import org.ourproject.kune.workspace.client.rate.RateItPresenter;
-import org.ourproject.kune.workspace.client.rate.RatePanel;
-import org.ourproject.kune.workspace.client.rate.RatePresenter;
-import org.ourproject.kune.workspace.client.search.EntityLiveSearcherView;
-import org.ourproject.kune.workspace.client.search.GroupLiveSearchPanel;
-import org.ourproject.kune.workspace.client.search.GroupLiveSearcher;
-import org.ourproject.kune.workspace.client.search.GroupLiveSearcherPresenter;
-import org.ourproject.kune.workspace.client.search.SiteSearcher;
-import org.ourproject.kune.workspace.client.search.SiteSearcherPanel;
-import org.ourproject.kune.workspace.client.search.SiteSearcherPresenter;
-import org.ourproject.kune.workspace.client.search.SiteSearcherView;
-import org.ourproject.kune.workspace.client.search.UserLiveSearcher;
-import org.ourproject.kune.workspace.client.search.UserLiveSearcherPanel;
-import org.ourproject.kune.workspace.client.search.UserLiveSearcherPresenter;
-import org.ourproject.kune.workspace.client.site.WorkspaceNotifyUser;
-import org.ourproject.kune.workspace.client.site.msg.ToastMessage;
-import org.ourproject.kune.workspace.client.site.msg.ToastMessagePanel;
-import org.ourproject.kune.workspace.client.site.msg.ToastMessagePresenter;
-import org.ourproject.kune.workspace.client.sitebar.sitelogo.SiteLogo;
-import org.ourproject.kune.workspace.client.sitebar.siteprogress.SiteProgress;
-import org.ourproject.kune.workspace.client.sitebar.siteprogress.SiteProgressPanel;
-import org.ourproject.kune.workspace.client.sitebar.siteprogress.SiteProgressPresenter;
-import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
-import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLinkPanel;
-import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLinkPresenter;
-import org.ourproject.kune.workspace.client.sitebar.sitesearch.SiteSearch;
-import org.ourproject.kune.workspace.client.sitebar.sitesearch.SiteSearchPanel;
-import org.ourproject.kune.workspace.client.sitebar.sitesearch.SiteSearchPresenter;
-import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignInLink;
-import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignInLinkPanel;
-import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignInLinkPresenter;
-import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignOutLink;
-import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignOutLinkPanel;
-import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignOutLinkPresenter;
-import org.ourproject.kune.workspace.client.skel.ActionCntCtxToolbarPanel;
-import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsBackManager;
-import org.ourproject.kune.workspace.client.themes.WsBackManagerImpl;
-import org.ourproject.kune.workspace.client.themes.WsThemeManager;
-import org.ourproject.kune.workspace.client.themes.WsThemeManagerPanel;
-import org.ourproject.kune.workspace.client.themes.WsThemeSelector;
-import org.ourproject.kune.workspace.client.themes.WsThemeSelectorPresenter;
-import org.ourproject.kune.workspace.client.title.EntitySubTitle;
-import org.ourproject.kune.workspace.client.title.EntitySubTitlePanel;
-import org.ourproject.kune.workspace.client.title.EntitySubTitlePresenter;
-import org.ourproject.kune.workspace.client.title.EntityTitle;
-import org.ourproject.kune.workspace.client.title.EntityTitlePanel;
-import org.ourproject.kune.workspace.client.title.EntityTitlePresenter;
-import org.ourproject.kune.workspace.client.title.RenameAction;
-import org.ourproject.kune.workspace.client.upload.FileUploader;
-import org.ourproject.kune.workspace.client.upload.FileUploaderDialog;
-import org.ourproject.kune.workspace.client.upload.FileUploaderPresenter;
 
-import cc.kune.common.client.noti.NotifyLevelImages;
-import cc.kune.common.client.utils.SchedulerManager;
-import cc.kune.common.client.utils.TimerWrapper;
-import cc.kune.core.client.auth.Register;
-import cc.kune.core.client.auth.SignIn;
-import cc.kune.core.client.errors.ErrorHandler;
-import cc.kune.core.client.groups.newgroup.NewGroup;
-import cc.kune.core.client.i18n.I18nUITranslationService;
-import cc.kune.core.client.registry.AuthorableRegistry;
-import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
-import cc.kune.core.client.registry.ContentIconsRegistry;
-import cc.kune.core.client.registry.RenamableRegistry;
-import cc.kune.core.client.resources.icons.IconResources;
-import cc.kune.core.client.rpcservices.ContentService;
-import cc.kune.core.client.rpcservices.ContentServiceAsync;
-import cc.kune.core.client.rpcservices.GroupService;
-import cc.kune.core.client.rpcservices.GroupServiceAsync;
-import cc.kune.core.client.rpcservices.I18nServiceAsync;
-import cc.kune.core.client.rpcservices.SocialNetworkService;
-import cc.kune.core.client.rpcservices.SocialNetworkServiceAsync;
-import cc.kune.core.client.rpcservices.UserServiceAsync;
-import cc.kune.core.client.services.FileDownloadUtils;
-import cc.kune.core.client.services.MediaUtils;
-import cc.kune.core.client.state.HistoryTokenCallback;
-import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.SiteTokens;
-import cc.kune.core.client.state.StateManager;
-import cc.kune.core.shared.domain.utils.StateToken;
-import cc.kune.core.shared.dto.StateTokenUtils;
-import cc.kune.core.shared.dto.UserSimpleDTO;
-import cc.kune.core.shared.i18n.I18nTranslationService;
-import cc.kune.gspace.client.tags.TagsSummary;
-
-import com.calclab.suco.client.ioc.decorator.NoDecoration;
-import com.calclab.suco.client.ioc.decorator.Singleton;
-import com.calclab.suco.client.ioc.module.Factory;
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.rpc.ServiceDefTarget;
-
 public class WorkspaceModule extends AbstractExtendedModule {
     @Override
     protected void onInstall() {
-
-        register(Singleton.class, new Factory<SocialNetworkServiceAsync>(SocialNetworkServiceAsync.class) {
-            @Override
-            public SocialNetworkServiceAsync create() {
-                final SocialNetworkServiceAsync snServiceAsync = (SocialNetworkServiceAsync) GWT.create(SocialNetworkService.class);
-                ((ServiceDefTarget) snServiceAsync).setServiceEntryPoint(GWT.getModuleBaseURL()
-                        + "SocialNetworkService");
-                return snServiceAsync;
-            }
-        }, new Factory<GroupServiceAsync>(GroupServiceAsync.class) {
-            @Override
-            public GroupServiceAsync create() {
-                final GroupServiceAsync groupServiceAsync = (GroupServiceAsync) GWT.create(GroupService.class);
-                ((ServiceDefTarget) groupServiceAsync).setServiceEntryPoint(GWT.getModuleBaseURL() + "GroupService");
-                return groupServiceAsync;
-            }
-        }, new Factory<ContentServiceAsync>(ContentServiceAsync.class) {
-            @Override
-            public ContentServiceAsync create() {
-                final ContentServiceAsync contentServiceAsync = (ContentServiceAsync) GWT.create(ContentService.class);
-                ((ServiceDefTarget) contentServiceAsync).setServiceEntryPoint(GWT.getModuleBaseURL() + "ContentService");
-                return contentServiceAsync;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<WorkspaceSkeleton>(WorkspaceSkeleton.class) {
-            @Override
-            public WorkspaceSkeleton create() {
-                return new WorkspaceSkeleton();
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<SiteProgress>(SiteProgress.class) {
-            @Override
-            public SiteProgress create() {
-                final SiteProgressPresenter presenter = new SiteProgressPresenter();
-                final SiteProgressPanel panel = new SiteProgressPanel(presenter, p(SitePublicSpaceLink.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<WorkspaceNotifyUser>(WorkspaceNotifyUser.class) {
-            @Override
-            public WorkspaceNotifyUser create() {
-                return new WorkspaceNotifyUser(i(NotifyUser.class), i(I18nUITranslationService.class),
-                        i(SiteProgress.class), p(ToastMessage.class), p(WorkspaceSkeleton.class));
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<SitePublicSpaceLink>(SitePublicSpaceLink.class) {
-            @Override
-            public SitePublicSpaceLink create() {
-                final SitePublicSpaceLinkPresenter presenter = new SitePublicSpaceLinkPresenter(i(StateManager.class),
-                        i(StateTokenUtils.class));
-                final SitePublicSpaceLinkPanel panel = new SitePublicSpaceLinkPanel(presenter,
-                        i(WorkspaceSkeleton.class), i(I18nUITranslationService.class), i(Images.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<StateTokenUtils>(StateTokenUtils.class) {
-            @Override
-            public StateTokenUtils create() {
-                return new StateTokenUtils(i(Session.class));
-            }
-        });
-
-        register(NoDecoration.class, new Factory<ToastMessage>(ToastMessage.class) {
-            @Override
-            public ToastMessage create() {
-                final ToastMessagePresenter presenter = new ToastMessagePresenter();
-                final ToastMessagePanel panel = new ToastMessagePanel();
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
+        //
+        // register(Singleton.class, new
+        // Factory<SocialNetworkServiceAsync>(SocialNetworkServiceAsync.class) {
+        // @Override
+        // public SocialNetworkServiceAsync create() {
+        // final SocialNetworkServiceAsync snServiceAsync =
+        // (SocialNetworkServiceAsync) GWT.create(SocialNetworkService.class);
+        // ((ServiceDefTarget)
+        // snServiceAsync).setServiceEntryPoint(GWT.getModuleBaseURL()
+        // + "SocialNetworkService");
+        // return snServiceAsync;
+        // }
+        // }, new Factory<GroupServiceAsync>(GroupServiceAsync.class) {
+        // @Override
+        // public GroupServiceAsync create() {
+        // final GroupServiceAsync groupServiceAsync = (GroupServiceAsync)
+        // GWT.create(GroupService.class);
+        // ((ServiceDefTarget)
+        // groupServiceAsync).setServiceEntryPoint(GWT.getModuleBaseURL() +
+        // "GroupService");
+        // return groupServiceAsync;
+        // }
+        // }, new Factory<ContentServiceAsync>(ContentServiceAsync.class) {
+        // @Override
+        // public ContentServiceAsync create() {
+        // final ContentServiceAsync contentServiceAsync = (ContentServiceAsync)
+        // GWT.create(ContentService.class);
+        // ((ServiceDefTarget)
+        // contentServiceAsync).setServiceEntryPoint(GWT.getModuleBaseURL() +
+        // "ContentService");
+        // return contentServiceAsync;
+        // }
+        // });
+        //
         // register(ApplicationComponentGroup.class, new
-        // Factory<SiteUserOptions>(SiteUserOptions.class) {
+        // Factory<WorkspaceSkeleton>(WorkspaceSkeleton.class) {
         // @Override
-        // public SiteUserOptions create() {
-        // final SiteUserOptionsPresenter presenter = new
-        // SiteUserOptionsPresenter(i(Session.class),
-        // i(StateManager.class), p(FileDownloadUtils.class),
-        // $(I18nTranslationService.class),
-        // $(IconResources.class));
-        // final SiteUserOptionsPanel panel = new
-        // SiteUserOptionsPanel(presenter, i(WorkspaceSkeleton.class),
-        // $(GuiBindingsRegister.class));
+        // public WorkspaceSkeleton create() {
+        // return new WorkspaceSkeleton();
+        // }
+        // });
+        //
+        // // register(ApplicationComponentGroup.class, new
+        // // Factory<SiteProgress>(SiteProgress.class) {
+        // // @Override
+        // // public SiteProgress create() {
+        // // final SiteProgressPresenter presenter = new
+        // SiteProgressPresenter();
+        // // final SiteProgressPanel panel = new SiteProgressPanel(presenter,
+        // // p(SitePublicSpaceLink.class));
+        // // presenter.init(panel);
+        // // return presenter;
+        // // }
+        // // });
+        //
+        // // register(ApplicationComponentGroup.class, new
+        // Factory<WorkspaceNotifyUser>(WorkspaceNotifyUser.class) {
+        // // @Override
+        // // public WorkspaceNotifyUser create() {
+        // // return new WorkspaceNotifyUser(i(NotifyUser.class),
+        // i(I18nUITranslationService.class),
+        // // i(SiteProgress.class), p(ToastMessage.class),
+        // p(WorkspaceSkeleton.class));
+        // // }
+        // // });
+        // //
+        // // register(ApplicationComponentGroup.class, new
+        // // Factory<SitePublicSpaceLink>(SitePublicSpaceLink.class) {
+        // // @Override
+        // // public SitePublicSpaceLink create() {
+        // // final SitePublicSpaceLinkPresenter presenter = new
+        // // SitePublicSpaceLinkPresenter(i(StateManager.class),
+        // // i(StateTokenUtils.class));
+        // // final SitePublicSpaceLinkPanel panel = new
+        // // SitePublicSpaceLinkPanel(presenter,
+        // // i(WorkspaceSkeleton.class), i(I18nUITranslationService.class),
+        // // i(Images.class));
+        // // presenter.init(panel);
+        // // return presenter;
+        // // }
+        // // });
+        //
+        // register(Singleton.class, new
+        // Factory<StateTokenUtils>(StateTokenUtils.class) {
+        // @Override
+        // public StateTokenUtils create() {
+        // return new StateTokenUtils(i(Session.class));
+        // }
+        // });
+        //
+        // register(NoDecoration.class, new
+        // Factory<ToastMessage>(ToastMessage.class) {
+        // @Override
+        // public ToastMessage create() {
+        // final ToastMessagePresenter presenter = new ToastMessagePresenter();
+        // final ToastMessagePanel panel = new ToastMessagePanel();
         // presenter.init(panel);
         // return presenter;
         // }
         // });
-
-        register(ApplicationComponentGroup.class, new Factory<SiteSignInLink>(SiteSignInLink.class) {
-            @Override
-            public SiteSignInLink create() {
-                final SiteSignInLinkPresenter presenter = new SiteSignInLinkPresenter(i(Session.class));
-                final SiteSignInLinkPanel panel = new SiteSignInLinkPanel(presenter, i(I18nUITranslationService.class),
-                        i(WorkspaceSkeleton.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<SiteSignOutLink>(SiteSignOutLink.class) {
-            @Override
-            public SiteSignOutLink create() {
-                final SiteSignOutLinkPresenter presenter = new SiteSignOutLinkPresenter(i(Session.class),
-                        p(UserServiceAsync.class), p(ErrorHandler.class));
-                final SiteSignOutLinkPanel panel = new SiteSignOutLinkPanel(presenter,
-                        i(I18nUITranslationService.class), i(WorkspaceSkeleton.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
         //
+        // // register(ApplicationComponentGroup.class, new
+        // // Factory<SiteUserOptions>(SiteUserOptions.class) {
+        // // @Override
+        // // public SiteUserOptions create() {
+        // // final SiteUserOptionsPresenter presenter = new
+        // // SiteUserOptionsPresenter(i(Session.class),
+        // // i(StateManager.class), p(FileDownloadUtils.class),
+        // // $(I18nTranslationService.class),
+        // // $(IconResources.class));
+        // // final SiteUserOptionsPanel panel = new
+        // // SiteUserOptionsPanel(presenter, i(WorkspaceSkeleton.class),
+        // // $(GuiBindingsRegister.class));
+        // // presenter.init(panel);
+        // // return presenter;
+        // // }
+        // // });
+        // //
+        // // register(ApplicationComponentGroup.class, new
+        // // Factory<SiteSignInLink>(SiteSignInLink.class) {
+        // // @Override
+        // // public SiteSignInLink create() {
+        // // final SiteSignInLinkPresenter presenter = new
+        // // SiteSignInLinkPresenter(i(Session.class));
+        // // final SiteSignInLinkPanel panel = new
+        // SiteSignInLinkPanel(presenter,
+        // // i(I18nUITranslationService.class),
+        // // i(WorkspaceSkeleton.class));
+        // // presenter.init(panel);
+        // // return presenter;
+        // // }
+        // // });
+        //
+        // // register(ApplicationComponentGroup.class, new
+        // // Factory<SiteSignOutLink>(SiteSignOutLink.class) {
+        // // @Override
+        // // public SiteSignOutLink create() {
+        // // final SiteSignOutLinkPresenter presenter = new
+        // // SiteSignOutLinkPresenter(i(Session.class),
+        // // p(UserServiceAsync.class), p(ErrorHandler.class));
+        // // final SiteSignOutLinkPanel panel = new
+        // // SiteSignOutLinkPanel(presenter,
+        // // i(I18nUITranslationService.class), i(WorkspaceSkeleton.class));
+        // // presenter.init(panel);
+        // // return presenter;
+        // // }
+        // // });
+        // //
+        // // register(ApplicationComponentGroup.class, new
+        // // Factory<SiteOptions>(SiteOptions.class) {
+        // // @Override
+        // // public SiteOptions create() {
+        // // final SiteOptionsPresenter presenter = new
+        // // SiteOptionsPresenter(i(I18nUITranslationService.class),
+        // // i(IconResources.class));
+        // // final SiteOptionsPanel panel = new
+        // // SiteOptionsPanel(i(WorkspaceSkeleton.class),
+        // // i(I18nUITranslationService.class), i(GuiBindingsRegister.class));
+        // // presenter.init(panel);
+        // // return presenter;
+        // // }
+        // // });
+        //
         // register(ApplicationComponentGroup.class, new
-        // Factory<SiteOptions>(SiteOptions.class) {
+        // Factory<SiteSearch>(SiteSearch.class) {
         // @Override
-        // public SiteOptions create() {
-        // final SiteOptionsPresenter presenter = new
-        // SiteOptionsPresenter(i(I18nUITranslationService.class),
-        // i(IconResources.class));
-        // final SiteOptionsPanel panel = new
-        // SiteOptionsPanel(i(WorkspaceSkeleton.class),
-        // i(I18nUITranslationService.class), i(GuiBindingsRegister.class));
+        // public SiteSearch create() {
+        // final SiteSearchPresenter presenter = new
+        // SiteSearchPresenter(p(SiteSearcher.class),
+        // i(I18nTranslationService.class));
+        // final SiteSearchPanel panel = new SiteSearchPanel(presenter,
+        // i(WorkspaceSkeleton.class),
+        // i(Images.class));
         // presenter.init(panel);
         // return presenter;
         // }
         // });
-
-        register(ApplicationComponentGroup.class, new Factory<SiteSearch>(SiteSearch.class) {
-            @Override
-            public SiteSearch create() {
-                final SiteSearchPresenter presenter = new SiteSearchPresenter(p(SiteSearcher.class),
-                        i(I18nTranslationService.class));
-                final SiteSearchPanel panel = new SiteSearchPanel(presenter, i(WorkspaceSkeleton.class),
-                        i(Images.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<SiteLogo>(SiteLogo.class) {
-            @Override
-            public SiteLogo create() {
-                // final SiteLogoPresenter presenter = new
-                // SiteLogoPresenter(i(Session.class));
-                // final SiteLogoPanel panel = new SiteLogoPanel(presenter,
-                // i(WorkspaceSkeleton.class));
-                // presenter.init(panel);
-                return null;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<EntityHeader>(EntityHeader.class) {
-            @Override
-            public EntityHeader create() {
-                final EntityHeaderPresenter presenter = new EntityHeaderPresenter(i(StateManager.class),
-                        i(WsThemeManager.class), i(Session.class));
-                final EntityHeaderPanel panel = new EntityHeaderPanel(i(WorkspaceSkeleton.class),
-                        p(FileDownloadUtils.class), i(Images.class), i(GuiBindingsRegister.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<WsBackManager>(WsBackManager.class) {
-            @Override
-            public WsBackManager create() {
-                return new WsBackManagerImpl(i(FileDownloadUtils.class));
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<WsThemeManager>(WsThemeManager.class) {
-            @Override
-            public WsThemeManager create() {
-                final WsThemeManager presenter = new WsThemeManager(i(Session.class), p(GroupServiceAsync.class),
-                        i(StateManager.class), i(WsBackManager.class));
-                new WsThemeManagerPanel(presenter, i(WorkspaceSkeleton.class));
-                return presenter;
-            }
-        });
-
-        register(NoDecoration.class, new Factory<WsThemeSelector>(WsThemeSelector.class) {
-            @Override
-            public WsThemeSelector create() {
-                final WsThemeSelectorPresenter presenter = new WsThemeSelectorPresenter(i(Session.class),
-                        i(I18nTranslationService.class));
-                presenter.init(new SimpleGuiItem(i(GuiBindingsRegister.class)));
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<EntityTitle>(EntityTitle.class) {
-            @Override
-            public EntityTitle create() {
-                final EntityTitlePresenter presenter = new EntityTitlePresenter(i(StateManager.class),
-                        i(Session.class), i(ContentIconsRegistry.class), i(RenamableRegistry.class),
-                        i(RenameAction.class));
-                final EntityTitlePanel panel = new EntityTitlePanel(i(WorkspaceSkeleton.class), presenter);
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<EntitySubTitle>(EntitySubTitle.class) {
-            @Override
-            public EntitySubTitle create() {
-                final EntitySubTitlePresenter presenter = new EntitySubTitlePresenter(
-                        i(I18nUITranslationService.class), i(StateManager.class), false, i(AuthorableRegistry.class));
-                final EntitySubTitlePanel panel = new EntitySubTitlePanel(presenter, i(WorkspaceSkeleton.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
+        //
         // register(ApplicationComponentGroup.class, new
-        // Factory<EntityLicensePresenter>(EntityLicensePresenter.class) {
+        // Factory<SiteLogo>(SiteLogo.class) {
         // @Override
-        // public EntityLicensePresenter create() {
-        // final EntityLicensePresenter presenter = new
-        // EntityLicensePresenter(i(StateManager.class));
-        // final EntityLicensePanel panel = new EntityLicensePanel(presenter,
-        // i(I18nUITranslationService.class),
-        // i(WorkspaceSkeleton.class));
+        // public SiteLogo create() {
+        // // final SiteLogoPresenter presenter = new
+        // // SiteLogoPresenter(i(Session.class));
+        // // final SiteLogoPanel panel = new SiteLogoPanel(presenter,
+        // // i(WorkspaceSkeleton.class));
+        // // presenter.init(panel);
+        // return null;
+        // }
+        // });
+        //
+        // register(ApplicationComponentGroup.class, new
+        // Factory<EntityHeader>(EntityHeader.class) {
+        // @Override
+        // public EntityHeader create() {
+        // final EntityHeaderPresenter presenter = new
+        // EntityHeaderPresenter(i(StateManager.class),
+        // i(WsThemeManager.class), i(Session.class));
+        // final EntityHeaderPanel panel = new
+        // EntityHeaderPanel(i(WorkspaceSkeleton.class),
+        // p(FileDownloadUtils.class), i(Images.class),
+        // i(GuiBindingsRegister.class));
         // presenter.init(panel);
         // return presenter;
         // }
         // });
-
-        register(ApplicationComponentGroup.class, new Factory<RateIt>(RateIt.class) {
-            @Override
-            public RateIt create() {
-                final RateItPresenter presenter = new RateItPresenter(i(I18nUITranslationService.class),
-                        i(Session.class), p(ContentServiceAsync.class), i(StateManager.class), p(RatePresenter.class),
-                        i(ContentCapabilitiesRegistry.class));
-                final RateItPanel panel = new RateItPanel(presenter, i(I18nUITranslationService.class),
-                        i(WorkspaceSkeleton.class), i(Images.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<RatePresenter>(RatePresenter.class) {
-            @Override
-            public RatePresenter create() {
-                final RatePresenter presenter = new RatePresenter(i(StateManager.class),
-                        i(ContentCapabilitiesRegistry.class));
-                final RatePanel panel = new RatePanel(null, null, i(I18nUITranslationService.class),
-                        i(WorkspaceSkeleton.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<ActionManager>(ActionManager.class) {
-            @Override
-            public ActionManager create() {
-                return new ActionManager();
-            }
-        });
-
-        register(Singleton.class, new Factory<ActionGroupSummaryToolbar>(ActionGroupSummaryToolbar.class) {
-            @Override
-            public ActionGroupSummaryToolbar create() {
-                final ActionToolbarPanel<StateToken> panel = new ActionToolbarPanel<StateToken>(p(ActionManager.class));
-                final ActionGroupSummaryToolbarPresenter toolbar = new ActionGroupSummaryToolbarPresenter(panel);
-                return toolbar;
-            }
-        }, new Factory<ActionParticipationToolbar>(ActionParticipationToolbar.class) {
-            @Override
-            public ActionParticipationToolbar create() {
-                final ActionToolbarPanel<StateToken> panel = new ActionToolbarPanel<StateToken>(p(ActionManager.class));
-                final ActionParticipationSummaryToolbarPresenter toolbar = new ActionParticipationSummaryToolbarPresenter(
-                        panel);
-                return toolbar;
-            }
-        }, new Factory<ActionBuddiesSummaryToolbar>(ActionBuddiesSummaryToolbar.class) {
-            @Override
-            public ActionBuddiesSummaryToolbar create() {
-                final ActionToolbarPanel<UserSimpleDTO> panel = new ActionToolbarPanel<UserSimpleDTO>(
-                        p(ActionManager.class));
-                final ActionBuddiesSummaryToolbarPresenter toolbar = new ActionBuddiesSummaryToolbarPresenter(panel);
-                return toolbar;
-            }
-        });
-
+        //
+        // register(Singleton.class, new
+        // Factory<WsBackManager>(WsBackManager.class) {
+        // @Override
+        // public WsBackManager create() {
+        // return new WsBackManagerImpl(i(FileDownloadUtils.class));
+        // }
+        // });
+        //
         // register(ApplicationComponentGroup.class, new
-        // Factory<GroupMembersSummary>(GroupMembersSummary.class) {
+        // Factory<WsThemeManager>(WsThemeManager.class) {
         // @Override
-        // public GroupMembersSummary create() {
-        // final GroupMembersSummaryPresenter presenter = new
-        // GroupMembersSummaryPresenter(
-        // i(I18nUITranslationService.class), i(StateManager.class),
-        // i(ImageUtils.class),
-        // i(Session.class), p(SocialNetworkServiceAsync.class),
+        // public WsThemeManager create() {
+        // final WsThemeManager presenter = new WsThemeManager(i(Session.class),
         // p(GroupServiceAsync.class),
-        // p(GroupLiveSearcher.class), p(ChatEngine.class),
-        // i(GroupActionRegistry.class),
-        // i(ActionGroupSummaryToolbar.class), p(FileDownloadUtils.class),
-        // i(AccessRightsClientManager.class), i(IconResources.class));
-        // final GroupMembersSummaryView view = new
-        // GroupMembersSummaryPanel(presenter,
-        // i(I18nUITranslationService.class), i(WorkspaceSkeleton.class), i(
-        // ActionGroupSummaryToolbar.class).getView());
-        // presenter.init(view);
+        // i(StateManager.class), i(WsBackManager.class));
+        // new WsThemeManagerPanel(presenter, i(WorkspaceSkeleton.class));
         // return presenter;
         // }
         // });
-
-        register(ApplicationComponentGroup.class, new Factory<AddAsBuddieHeaderButton>(AddAsBuddieHeaderButton.class) {
-            @Override
-            public AddAsBuddieHeaderButton create() {
-                return new AddAsBuddieHeaderButton(p(ChatEngine.class), i(Session.class), i(StateManager.class),
-                        i(I18nTranslationService.class), i(IconResources.class), i(EntityHeader.class));
-            }
-        });
-
+        //
+        // register(NoDecoration.class, new
+        // Factory<WsThemeSelector>(WsThemeSelector.class) {
+        // @Override
+        // public WsThemeSelector create() {
+        // final WsThemeSelectorPresenter presenter = new
+        // WsThemeSelectorPresenter(i(Session.class),
+        // i(I18nTranslationService.class));
+        // presenter.init(new SimpleGuiItem(i(GuiBindingsRegister.class)));
+        // return presenter;
+        // }
+        // });
+        //
         // register(ApplicationComponentGroup.class, new
-        // Factory<BuddiesSummary>(BuddiesSummary.class) {
+        // Factory<EntityTitle>(EntityTitle.class) {
         // @Override
-        // public BuddiesSummary create() {
-        // final BuddiesSummaryPresenter presenter = new
-        // BuddiesSummaryPresenter(i(StateManager.class),
-        // i(Session.class), p(UserServiceAsync.class),
-        // i(UserActionRegistry.class),
-        // i(I18nTranslationService.class), p(ChatEngine.class),
-        // i(ActionBuddiesSummaryToolbar.class),
-        // p(FileDownloadUtils.class), i(ImageUtils.class),
-        // p(SocialNetworkServiceAsync.class),
-        // i(GroupActionRegistry.class), i(AccessRightsClientManager.class),
-        // i(IconResources.class));
-        // final BuddiesSummaryPanel panel = new BuddiesSummaryPanel(presenter,
-        // i(WorkspaceSkeleton.class),
-        // i(I18nTranslationService.class), i(ActionManager.class),
-        // i(ActionBuddiesSummaryToolbar.class).getView());
+        // public EntityTitle create() {
+        // final EntityTitlePresenter presenter = new
+        // EntityTitlePresenter(i(StateManager.class),
+        // i(Session.class), i(ContentIconsRegistry.class),
+        // i(RenamableRegistry.class),
+        // i(RenameAction.class));
+        // final EntityTitlePanel panel = new
+        // EntityTitlePanel(i(WorkspaceSkeleton.class), presenter);
         // presenter.init(panel);
         // return presenter;
         // }
         // });
-
+        //
         // register(ApplicationComponentGroup.class, new
-        // Factory<ParticipationSummary>(ParticipationSummary.class) {
+        // Factory<EntitySubTitle>(EntitySubTitle.class) {
         // @Override
-        // public ParticipationSummary create() {
-        // final ParticipationSummaryPresenter presenter = new
-        // ParticipationSummaryPresenter(
-        // i(I18nUITranslationService.class), i(StateManager.class),
-        // i(ImageUtils.class),
-        // i(Session.class), p(SocialNetworkServiceAsync.class),
-        // i(GroupActionRegistry.class),
-        // i(ActionParticipationToolbar.class), p(FileDownloadUtils.class),
-        // i(AccessRightsClientManager.class), i(IconResources.class));
-        // final ParticipationSummaryView view = new
-        // ParticipationSummaryPanel(presenter,
-        // i(I18nUITranslationService.class), i(WorkspaceSkeleton.class), i(
-        // ActionParticipationToolbar.class).getView());
-        // presenter.init(view);
+        // public EntitySubTitle create() {
+        // final EntitySubTitlePresenter presenter = new
+        // EntitySubTitlePresenter(
+        // i(I18nUITranslationService.class), i(StateManager.class), false,
+        // i(AuthorableRegistry.class));
+        // final EntitySubTitlePanel panel = new EntitySubTitlePanel(presenter,
+        // i(WorkspaceSkeleton.class));
+        // presenter.init(panel);
         // return presenter;
         // }
         // });
-
+        //
+        // // register(ApplicationComponentGroup.class, new
+        // // Factory<EntityLicensePresenter>(EntityLicensePresenter.class) {
+        // // @Override
+        // // public EntityLicensePresenter create() {
+        // // final EntityLicensePresenter presenter = new
+        // // EntityLicensePresenter(i(StateManager.class));
+        // // final EntityLicensePanel panel = new EntityLicensePanel(presenter,
+        // // i(I18nUITranslationService.class),
+        // // i(WorkspaceSkeleton.class));
+        // // presenter.init(panel);
+        // // return presenter;
+        // // }
+        // // });
+        //
         // register(ApplicationComponentGroup.class, new
-        // Factory<TagsSummary>(TagsSummary.class) {
+        // Factory<RateIt>(RateIt.class) {
         // @Override
-        // public TagsSummary create() {
-        // final TagsSummaryPresenter presenter = new
-        // TagsSummaryPresenter(i(Session.class),
-        // p(SiteSearcher.class), i(StateManager.class));
-        // final TagsSummaryPanel panel = new TagsSummaryPanel(presenter,
+        // public RateIt create() {
+        // final RateItPresenter presenter = new
+        // RateItPresenter(i(I18nUITranslationService.class),
+        // i(Session.class), p(ContentServiceAsync.class),
+        // i(StateManager.class), p(RatePresenter.class),
+        // i(ContentCapabilitiesRegistry.class));
+        // final RateItPanel panel = new RateItPanel(presenter,
         // i(I18nUITranslationService.class),
+        // i(WorkspaceSkeleton.class), i(Images.class));
+        // presenter.init(panel);
+        // return presenter;
+        // }
+        // });
+        //
+        // register(ApplicationComponentGroup.class, new
+        // Factory<RatePresenter>(RatePresenter.class) {
+        // @Override
+        // public RatePresenter create() {
+        // final RatePresenter presenter = new
+        // RatePresenter(i(StateManager.class),
+        // i(ContentCapabilitiesRegistry.class));
+        // final RatePanel panel = new RatePanel(null, null,
+        // i(I18nUITranslationService.class),
         // i(WorkspaceSkeleton.class));
         // presenter.init(panel);
         // return presenter;
         // }
         // });
-
-        register(ApplicationComponentGroup.class, new Factory<NoHomePage>(NoHomePage.class) {
-            @Override
-            public NoHomePage create() {
-                final NoHomePagePresenter presenter = new NoHomePagePresenter(i(StateManager.class),
-                        p(EntityHeader.class));
-                final NoHomePagePanel panel = new NoHomePagePanel(presenter, i(WorkspaceSkeleton.class),
-                        i(I18nTranslationService.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<GroupOptions>(GroupOptions.class) {
-            @Override
-            public GroupOptions create() {
-                final GroupOptionsPresenter presenter = new GroupOptionsPresenter(i(StateManager.class),
-                        i(I18nTranslationService.class), i(IconResources.class));
-                final GroupOptionsPanel panel = new GroupOptionsPanel(presenter, i(EntityHeader.class),
-                        i(I18nTranslationService.class), i(NotifyLevelImages.class), i(GroupOptionsCollection.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
         //
+        // register(Singleton.class, new
+        // Factory<ActionManager>(ActionManager.class) {
+        // @Override
+        // public ActionManager create() {
+        // return new ActionManager();
+        // }
+        // });
+        //
+        // register(Singleton.class, new
+        // Factory<ActionGroupSummaryToolbar>(ActionGroupSummaryToolbar.class) {
+        // @Override
+        // public ActionGroupSummaryToolbar create() {
+        // final ActionToolbarPanel<StateToken> panel = new
+        // ActionToolbarPanel<StateToken>(p(ActionManager.class));
+        // final ActionGroupSummaryToolbarPresenter toolbar = new
+        // ActionGroupSummaryToolbarPresenter(panel);
+        // return toolbar;
+        // }
+        // }, new
+        // Factory<ActionParticipationToolbar>(ActionParticipationToolbar.class)
+        // {
+        // @Override
+        // public ActionParticipationToolbar create() {
+        // final ActionToolbarPanel<StateToken> panel = new
+        // ActionToolbarPanel<StateToken>(p(ActionManager.class));
+        // final ActionParticipationSummaryToolbarPresenter toolbar = new
+        // ActionParticipationSummaryToolbarPresenter(
+        // panel);
+        // return toolbar;
+        // }
+        // }, new
+        // Factory<ActionBuddiesSummaryToolbar>(ActionBuddiesSummaryToolbar.class)
+        // {
+        // @Override
+        // public ActionBuddiesSummaryToolbar create() {
+        // final ActionToolbarPanel<UserSimpleDTO> panel = new
+        // ActionToolbarPanel<UserSimpleDTO>(
+        // p(ActionManager.class));
+        // final ActionBuddiesSummaryToolbarPresenter toolbar = new
+        // ActionBuddiesSummaryToolbarPresenter(panel);
+        // return toolbar;
+        // }
+        // });
+        //
+        // // register(ApplicationComponentGroup.class, new
+        // // Factory<GroupMembersSummary>(GroupMembersSummary.class) {
+        // // @Override
+        // // public GroupMembersSummary create() {
+        // // final GroupMembersSummaryPresenter presenter = new
+        // // GroupMembersSummaryPresenter(
+        // // i(I18nUITranslationService.class), i(StateManager.class),
+        // // i(ImageUtils.class),
+        // // i(Session.class), p(SocialNetworkServiceAsync.class),
+        // // p(GroupServiceAsync.class),
+        // // p(GroupLiveSearcher.class), p(ChatEngine.class),
+        // // i(GroupActionRegistry.class),
+        // // i(ActionGroupSummaryToolbar.class), p(FileDownloadUtils.class),
+        // // i(AccessRightsClientManager.class), i(IconResources.class));
+        // // final GroupMembersSummaryView view = new
+        // // GroupMembersSummaryPanel(presenter,
+        // // i(I18nUITranslationService.class), i(WorkspaceSkeleton.class), i(
+        // // ActionGroupSummaryToolbar.class).getView());
+        // // presenter.init(view);
+        // // return presenter;
+        // // }
+        // // });
+        //
         // register(ApplicationComponentGroup.class, new
-        // Factory<UserOptions>(UserOptions.class) {
+        // Factory<AddAsBuddieHeaderButton>(AddAsBuddieHeaderButton.class) {
         // @Override
-        // public UserOptions create() {
-        // final UserOptionsPresenter presenter = new
-        // UserOptionsPresenter(i(Session.class),
-        // i(StateManager.class), i(I18nTranslationService.class),
-        // i(IconResources.class),
-        // i(SiteUserOptions.class));
-        // final UserOptionsPanel panel = new UserOptionsPanel(presenter,
+        // public AddAsBuddieHeaderButton create() {
+        // return new AddAsBuddieHeaderButton(p(ChatEngine.class),
+        // i(Session.class), i(StateManager.class),
+        // i(I18nTranslationService.class), i(IconResources.class),
+        // i(EntityHeader.class));
+        // }
+        // });
+        //
+        // // register(ApplicationComponentGroup.class, new
+        // // Factory<BuddiesSummary>(BuddiesSummary.class) {
+        // // @Override
+        // // public BuddiesSummary create() {
+        // // final BuddiesSummaryPresenter presenter = new
+        // // BuddiesSummaryPresenter(i(StateManager.class),
+        // // i(Session.class), p(UserServiceAsync.class),
+        // // i(UserActionRegistry.class),
+        // // i(I18nTranslationService.class), p(ChatEngine.class),
+        // // i(ActionBuddiesSummaryToolbar.class),
+        // // p(FileDownloadUtils.class), i(ImageUtils.class),
+        // // p(SocialNetworkServiceAsync.class),
+        // // i(GroupActionRegistry.class), i(AccessRightsClientManager.class),
+        // // i(IconResources.class));
+        // // final BuddiesSummaryPanel panel = new
+        // BuddiesSummaryPanel(presenter,
+        // // i(WorkspaceSkeleton.class),
+        // // i(I18nTranslationService.class), i(ActionManager.class),
+        // // i(ActionBuddiesSummaryToolbar.class).getView());
+        // // presenter.init(panel);
+        // // return presenter;
+        // // }
+        // // });
+        //
+        // // register(ApplicationComponentGroup.class, new
+        // // Factory<ParticipationSummary>(ParticipationSummary.class) {
+        // // @Override
+        // // public ParticipationSummary create() {
+        // // final ParticipationSummaryPresenter presenter = new
+        // // ParticipationSummaryPresenter(
+        // // i(I18nUITranslationService.class), i(StateManager.class),
+        // // i(ImageUtils.class),
+        // // i(Session.class), p(SocialNetworkServiceAsync.class),
+        // // i(GroupActionRegistry.class),
+        // // i(ActionParticipationToolbar.class), p(FileDownloadUtils.class),
+        // // i(AccessRightsClientManager.class), i(IconResources.class));
+        // // final ParticipationSummaryView view = new
+        // // ParticipationSummaryPanel(presenter,
+        // // i(I18nUITranslationService.class), i(WorkspaceSkeleton.class), i(
+        // // ActionParticipationToolbar.class).getView());
+        // // presenter.init(view);
+        // // return presenter;
+        // // }
+        // // });
+        //
+        // // register(ApplicationComponentGroup.class, new
+        // // Factory<TagsSummary>(TagsSummary.class) {
+        // // @Override
+        // // public TagsSummary create() {
+        // // final TagsSummaryPresenter presenter = new
+        // // TagsSummaryPresenter(i(Session.class),
+        // // p(SiteSearcher.class), i(StateManager.class));
+        // // final TagsSummaryPanel panel = new TagsSummaryPanel(presenter,
+        // // i(I18nUITranslationService.class),
+        // // i(WorkspaceSkeleton.class));
+        // // presenter.init(panel);
+        // // return presenter;
+        // // }
+        // // });
+        //
+        // register(ApplicationComponentGroup.class, new
+        // Factory<NoHomePage>(NoHomePage.class) {
+        // @Override
+        // public NoHomePage create() {
+        // final NoHomePagePresenter presenter = new
+        // NoHomePagePresenter(i(StateManager.class),
+        // p(EntityHeader.class));
+        // final NoHomePagePanel panel = new NoHomePagePanel(presenter,
+        // i(WorkspaceSkeleton.class),
+        // i(I18nTranslationService.class));
+        // presenter.init(panel);
+        // return presenter;
+        // }
+        // });
+        //
+        // register(ApplicationComponentGroup.class, new
+        // Factory<GroupOptions>(GroupOptions.class) {
+        // @Override
+        // public GroupOptions create() {
+        // final GroupOptionsPresenter presenter = new
+        // GroupOptionsPresenter(i(StateManager.class),
+        // i(I18nTranslationService.class), i(IconResources.class));
+        // final GroupOptionsPanel panel = new GroupOptionsPanel(presenter,
         // i(EntityHeader.class),
         // i(I18nTranslationService.class), i(NotifyLevelImages.class),
-        // i(UserOptionsCollection.class));
+        // i(GroupOptionsCollection.class));
         // presenter.init(panel);
         // return presenter;
         // }
         // });
-
-        register(GroupOptionsCollection.class, new Factory<EntityOptionsToolsConf>(EntityOptionsToolsConf.class) {
-            @Override
-            public EntityOptionsToolsConf create() {
-                final GroupOptionsToolsConfPresenter presenter = new GroupOptionsToolsConfPresenter(
-                        i(StateManager.class), i(Session.class), i(I18nTranslationService.class),
-                        i(GroupOptions.class), p(GroupServiceAsync.class));
-                final EntityOptionsToolsConfPanel panel = new EntityOptionsToolsConfPanel(presenter,
-                        i(WorkspaceSkeleton.class), i(I18nTranslationService.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(UserOptionsCollection.class, new Factory<UserOptionsToolsConf>(UserOptionsToolsConf.class) {
-            @Override
-            public UserOptionsToolsConf create() {
-                final UserOptionsToolsConfPresenter presenter = new UserOptionsToolsConfPresenter(i(Session.class),
-                        i(StateManager.class), i(I18nTranslationService.class), i(UserOptions.class),
-                        p(GroupServiceAsync.class));
-                final EntityOptionsToolsConfPanel panel = new EntityOptionsToolsConfPanel(presenter,
-                        i(WorkspaceSkeleton.class), i(I18nTranslationService.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(GroupOptionsCollection.class, new Factory<GroupOptionsLogo>(GroupOptionsLogo.class) {
-            @Override
-            public GroupOptionsLogo create() {
-                final EntityOptionsLogoPresenter presenter = new GroupOptionsLogoPresenter(i(Session.class),
-                        i(EntityHeader.class), i(GroupOptions.class), i(StateManager.class), p(UserServiceAsync.class),
-                        p(ChatEngine.class));
-                final GroupOptionsLogoPanel panel = new GroupOptionsLogoPanel(presenter, i(WorkspaceSkeleton.class),
-                        i(I18nTranslationService.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(UserOptionsCollection.class, new Factory<UserOptionsLogo>(UserOptionsLogo.class) {
-            @Override
-            public UserOptionsLogo create() {
-                final EntityOptionsLogoPresenter presenter = new UserOptionsLogoPresenter(i(Session.class),
-                        i(EntityHeader.class), i(UserOptions.class), i(StateManager.class), p(UserServiceAsync.class),
-                        p(ChatEngine.class));
-                final UserOptionsLogoPanel panel = new UserOptionsLogoPanel(presenter, i(WorkspaceSkeleton.class),
-                        i(I18nTranslationService.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(GroupOptionsCollection.class, new Factory<GroupOptionsDefLicense>(GroupOptionsDefLicense.class) {
-            @Override
-            public GroupOptionsDefLicense create() {
-                final GroupOptionsDefLicensePresenter presenter = new GroupOptionsDefLicensePresenter(
-                        i(GroupOptions.class), i(StateManager.class), i(Session.class), p(LicenseWizard.class),
-                        p(LicenseChangeAction.class));
-                final EntityOptionsDefLicensePanel panel = new EntityOptionsDefLicensePanel(presenter,
-                        i(WorkspaceSkeleton.class), i(I18nTranslationService.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(UserOptionsCollection.class, new Factory<UserOptionsDefLicense>(UserOptionsDefLicense.class) {
-            @Override
-            public UserOptionsDefLicense create() {
-                final UserOptionsDefLicensePresenter presenter = new UserOptionsDefLicensePresenter(
-                        i(UserOptions.class), i(Session.class), p(LicenseWizard.class), p(LicenseChangeAction.class));
-                final EntityOptionsDefLicensePanel panel = new EntityOptionsDefLicensePanel(presenter,
-                        i(WorkspaceSkeleton.class), i(I18nTranslationService.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(GroupOptionsCollection.class, new Factory<GroupOptionsPublicSpaceConf>(
-                GroupOptionsPublicSpaceConf.class) {
-            @Override
-            public GroupOptionsPublicSpaceConf create() {
-                final WsThemeSelector themeSelector = i(WsThemeSelector.class);
-                final GroupOptionsPublicSpaceConfPresenter presenter = new GroupOptionsPublicSpaceConfPresenter(
-                        i(Session.class), i(StateManager.class), i(GroupOptions.class), i(WsThemeManager.class),
-                        themeSelector, p(GroupServiceAsync.class), i(WsBackManager.class));
-                final EntityOptionsPublicSpaceConfPanel panel = new EntityOptionsPublicSpaceConfPanel(presenter,
-                        i(WorkspaceSkeleton.class), i(I18nTranslationService.class), themeSelector,
-                        i(FileDownloadUtils.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(UserOptionsCollection.class,
-                new Factory<UserOptionsPublicSpaceConf>(UserOptionsPublicSpaceConf.class) {
-                    @Override
-                    public UserOptionsPublicSpaceConf create() {
-                        final WsThemeSelector themeSelector = i(WsThemeSelector.class);
-                        final UserOptionsPublicSpaceConfPresenter presenter = new UserOptionsPublicSpaceConfPresenter(
-                                i(Session.class), i(StateManager.class), i(UserOptions.class), i(WsThemeManager.class),
-                                themeSelector, p(GroupServiceAsync.class), i(WsBackManager.class));
-                        final EntityOptionsPublicSpaceConfPanel panel = new EntityOptionsPublicSpaceConfPanel(
-                                presenter, i(WorkspaceSkeleton.class), i(I18nTranslationService.class), themeSelector,
-                                i(FileDownloadUtils.class));
-                        presenter.init(panel);
-                        return presenter;
-                    }
-                });
-
-        register(Singleton.class, new Factory<LicenseChangeAction>(LicenseChangeAction.class) {
-            @Override
-            public LicenseChangeAction create() {
-                return new LicenseChangeAction(p(GroupServiceAsync.class), i(Session.class),
-                        i(I18nTranslationService.class), i(StateManager.class));
-            }
-        });
-
-        register(Singleton.class, new Factory<RenameAction>(RenameAction.class) {
-            @Override
-            public RenameAction create() {
-                return new RenameAction(i(I18nTranslationService.class), i(Session.class), p(ContentServiceAsync.class));
-            }
-        });
-
-        register(Singleton.class, new Factory<LicenseWizard>(LicenseWizard.class) {
-            @Override
-            public LicenseWizard create() {
-                final LicenseWizardPresenter presenter = new LicenseWizardPresenter(
-                        i(LicenseWizardFirstFormView.class), i(LicenseWizardSndFormView.class),
-                        i(LicenseWizardTrdFormView.class), i(LicenseWizardFrdFormView.class), i(Session.class));
-                final LicenseWizardPanel panel = new LicenseWizardPanel(presenter, i(WorkspaceSkeleton.class),
-                        i(I18nTranslationService.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<LicenseWizardFirstFormView>(LicenseWizardFirstFormView.class) {
-            @Override
-            public LicenseWizardFirstFormView create() {
-                return new LicenseWizardFirstForm(i(I18nTranslationService.class));
-            }
-        });
-
-        register(Singleton.class, new Factory<LicenseWizardSndFormView>(LicenseWizardSndFormView.class) {
-            @Override
-            public LicenseWizardSndFormView create() {
-                return new LicenseWizardSndForm(i(I18nTranslationService.class));
-            }
-        });
-
-        register(Singleton.class, new Factory<LicenseWizardTrdFormView>(LicenseWizardTrdFormView.class) {
-            @Override
-            public LicenseWizardTrdFormView create() {
-                return new LicenseWizardTrdForm(i(Images.class), i(I18nTranslationService.class));
-            }
-        });
-
-        register(Singleton.class, new Factory<LicenseWizardFrdFormView>(LicenseWizardFrdFormView.class) {
-            @Override
-            public LicenseWizardFrdFormView create() {
-                return new LicenseWizardFrdForm(i(I18nTranslationService.class), i(Session.class));
-            }
-        });
-
-        register(Singleton.class, new Factory<FileUploader>(FileUploader.class) {
-            @Override
-            public FileUploader create() {
-                final FileUploaderPresenter presenter = new FileUploaderPresenter(i(Session.class));
-                final FileUploaderDialog panel = new FileUploaderDialog(presenter, i(I18nUITranslationService.class),
-                        i(WorkspaceSkeleton.class));
-                presenter.init(panel);
-                return presenter;
-            }
-
-            @Override
-            public void onAfterCreated(final FileUploader uploader) {
-                i(ContextNavigator.class).addFileUploaderListener(uploader);
-            }
-        });
-
-        register(Singleton.class, new Factory<SiteSearcher>(SiteSearcher.class) {
-            @Override
-            public SiteSearcher create() {
-                final SiteSearcherPresenter presenter = new SiteSearcherPresenter(p(StateManager.class));
-                final SiteSearcherView view = new SiteSearcherPanel(presenter, i(I18nTranslationService.class),
-                        i(WorkspaceSkeleton.class));
-                presenter.init(view);
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<I18nTranslator>(I18nTranslator.class) {
-            @Override
-            public I18nTranslator create() {
-                final I18nTranslatorPresenter presenter = new I18nTranslatorPresenter(i(Session.class),
-                        i(I18nServiceAsync.class), i(I18nUITranslationService.class));
-                final I18nTranslatorView view = new I18nTranslatorPanel(presenter, i(I18nTranslationService.class),
-                        i(LanguageSelector.class), i(WorkspaceSkeleton.class), i(Images.class));
-                presenter.init(view);
-                return presenter;
-            }
-        });
-
-        // register(ApplicationComponentGroup.class, new
-        // Factory<SiteOptionsI18nTranslatorAction>(
-        // SiteOptionsI18nTranslatorAction.class) {
+        // //
+        // // register(ApplicationComponentGroup.class, new
+        // // Factory<UserOptions>(UserOptions.class) {
+        // // @Override
+        // // public UserOptions create() {
+        // // final UserOptionsPresenter presenter = new
+        // // UserOptionsPresenter(i(Session.class),
+        // // i(StateManager.class), i(I18nTranslationService.class),
+        // // i(IconResources.class),
+        // // i(SiteUserOptions.class));
+        // // final UserOptionsPanel panel = new UserOptionsPanel(presenter,
+        // // i(EntityHeader.class),
+        // // i(I18nTranslationService.class), i(NotifyLevelImages.class),
+        // // i(UserOptionsCollection.class));
+        // // presenter.init(panel);
+        // // return presenter;
+        // // }
+        // // });
+        //
+        // register(GroupOptionsCollection.class, new
+        // Factory<EntityOptionsToolsConf>(EntityOptionsToolsConf.class) {
         // @Override
-        // public SiteOptionsI18nTranslatorAction create() {
-        // return new SiteOptionsI18nTranslatorAction(i(SiteOptions.class),
+        // public EntityOptionsToolsConf create() {
+        // final GroupOptionsToolsConfPresenter presenter = new
+        // GroupOptionsToolsConfPresenter(
+        // i(StateManager.class), i(Session.class),
         // i(I18nTranslationService.class),
-        // i(IconResources.class), p(I18nTranslator.class));
+        // i(GroupOptions.class), p(GroupServiceAsync.class));
+        // final EntityOptionsToolsConfPanel panel = new
+        // EntityOptionsToolsConfPanel(presenter,
+        // i(WorkspaceSkeleton.class), i(I18nTranslationService.class));
+        // presenter.init(panel);
+        // return presenter;
         // }
         // });
-
-        // register(Singleton.class, new Factory<SignIn>(SignIn.class) {
+        //
+        // register(UserOptionsCollection.class, new
+        // Factory<UserOptionsToolsConf>(UserOptionsToolsConf.class) {
         // @Override
-        // public SignIn create() {
-        // final SignInPresenter presenter = new
-        // SignInPresenter(i(Session.class), i(StateManager.class),
-        // i(I18nUITranslationService.class), p(UserServiceAsync.class),
-        // p(Register.class));
-        // final SignInView panel = new SignInPanel(presenter,
-        // i(I18nTranslationService.class),
-        // i(WorkspaceSkeleton.class), i(NotifyLevelImages.class));
+        // public UserOptionsToolsConf create() {
+        // final UserOptionsToolsConfPresenter presenter = new
+        // UserOptionsToolsConfPresenter(i(Session.class),
+        // i(StateManager.class), i(I18nTranslationService.class),
+        // i(UserOptions.class),
+        // p(GroupServiceAsync.class));
+        // final EntityOptionsToolsConfPanel panel = new
+        // EntityOptionsToolsConfPanel(presenter,
+        // i(WorkspaceSkeleton.class), i(I18nTranslationService.class));
         // presenter.init(panel);
         // return presenter;
         // }
         // });
         //
-        // register(Singleton.class, new Factory<Register>(Register.class) {
+        // register(GroupOptionsCollection.class, new
+        // Factory<GroupOptionsLogo>(GroupOptionsLogo.class) {
         // @Override
-        // public Register create() {
-        // final RegisterPresenter presenter = new
-        // RegisterPresenter(i(Session.class), i(StateManager.class),
-        // i(I18nUITranslationService.class), p(UserServiceAsync.class),
-        // p(SignIn.class));
-        // final RegisterView panel = new RegisterPanel(presenter,
-        // i(I18nTranslationService.class),
-        // i(WorkspaceSkeleton.class), i(Session.class),
-        // i(NotifyLevelImages.class));
+        // public GroupOptionsLogo create() {
+        // final EntityOptionsLogoPresenter presenter = new
+        // GroupOptionsLogoPresenter(i(Session.class),
+        // i(EntityHeader.class), i(GroupOptions.class), i(StateManager.class),
+        // p(UserServiceAsync.class),
+        // p(ChatEngine.class));
+        // final GroupOptionsLogoPanel panel = new
+        // GroupOptionsLogoPanel(presenter, i(WorkspaceSkeleton.class),
+        // i(I18nTranslationService.class));
         // presenter.init(panel);
         // return presenter;
         // }
         // });
-
-        // register(Singleton.class, new Factory<NewGroup>(NewGroup.class) {
+        //
+        // register(UserOptionsCollection.class, new
+        // Factory<UserOptionsLogo>(UserOptionsLogo.class) {
         // @Override
-        // public NewGroup create() {
-        // final NewGroupPresenter presenter = new
-        // NewGroupPresenter(i(I18nTranslationService.class),
-        // i(Session.class), i(StateManager.class),
-        // p(GroupServiceAsync.class));
-        // final NewGroupPanel view = new NewGroupPanel(presenter,
+        // public UserOptionsLogo create() {
+        // final EntityOptionsLogoPresenter presenter = new
+        // UserOptionsLogoPresenter(i(Session.class),
+        // i(EntityHeader.class), i(UserOptions.class), i(StateManager.class),
+        // p(UserServiceAsync.class),
+        // p(ChatEngine.class));
+        // final UserOptionsLogoPanel panel = new
+        // UserOptionsLogoPanel(presenter, i(WorkspaceSkeleton.class),
+        // i(I18nTranslationService.class));
+        // presenter.init(panel);
+        // return presenter;
+        // }
+        // });
+        //
+        // register(GroupOptionsCollection.class, new
+        // Factory<GroupOptionsDefLicense>(GroupOptionsDefLicense.class) {
+        // @Override
+        // public GroupOptionsDefLicense create() {
+        // final GroupOptionsDefLicensePresenter presenter = new
+        // GroupOptionsDefLicensePresenter(
+        // i(GroupOptions.class), i(StateManager.class), i(Session.class),
+        // p(LicenseWizard.class),
+        // p(LicenseChangeAction.class));
+        // final EntityOptionsDefLicensePanel panel = new
+        // EntityOptionsDefLicensePanel(presenter,
+        // i(WorkspaceSkeleton.class), i(I18nTranslationService.class));
+        // presenter.init(panel);
+        // return presenter;
+        // }
+        // });
+        //
+        // register(UserOptionsCollection.class, new
+        // Factory<UserOptionsDefLicense>(UserOptionsDefLicense.class) {
+        // @Override
+        // public UserOptionsDefLicense create() {
+        // final UserOptionsDefLicensePresenter presenter = new
+        // UserOptionsDefLicensePresenter(
+        // i(UserOptions.class), i(Session.class), p(LicenseWizard.class),
+        // p(LicenseChangeAction.class));
+        // final EntityOptionsDefLicensePanel panel = new
+        // EntityOptionsDefLicensePanel(presenter,
+        // i(WorkspaceSkeleton.class), i(I18nTranslationService.class));
+        // presenter.init(panel);
+        // return presenter;
+        // }
+        // });
+        //
+        // register(GroupOptionsCollection.class, new
+        // Factory<GroupOptionsPublicSpaceConf>(
+        // GroupOptionsPublicSpaceConf.class) {
+        // @Override
+        // public GroupOptionsPublicSpaceConf create() {
+        // final WsThemeSelector themeSelector = i(WsThemeSelector.class);
+        // final GroupOptionsPublicSpaceConfPresenter presenter = new
+        // GroupOptionsPublicSpaceConfPresenter(
+        // i(Session.class), i(StateManager.class), i(GroupOptions.class),
+        // i(WsThemeManager.class),
+        // themeSelector, p(GroupServiceAsync.class), i(WsBackManager.class));
+        // final EntityOptionsPublicSpaceConfPanel panel = new
+        // EntityOptionsPublicSpaceConfPanel(presenter,
+        // i(WorkspaceSkeleton.class), i(I18nTranslationService.class),
+        // themeSelector,
+        // i(FileDownloadUtils.class));
+        // presenter.init(panel);
+        // return presenter;
+        // }
+        // });
+        //
+        // register(UserOptionsCollection.class,
+        // new
+        // Factory<UserOptionsPublicSpaceConf>(UserOptionsPublicSpaceConf.class)
+        // {
+        // @Override
+        // public UserOptionsPublicSpaceConf create() {
+        // final WsThemeSelector themeSelector = i(WsThemeSelector.class);
+        // final UserOptionsPublicSpaceConfPresenter presenter = new
+        // UserOptionsPublicSpaceConfPresenter(
+        // i(Session.class), i(StateManager.class), i(UserOptions.class),
+        // i(WsThemeManager.class),
+        // themeSelector, p(GroupServiceAsync.class), i(WsBackManager.class));
+        // final EntityOptionsPublicSpaceConfPanel panel = new
+        // EntityOptionsPublicSpaceConfPanel(
+        // presenter, i(WorkspaceSkeleton.class),
+        // i(I18nTranslationService.class), themeSelector,
+        // i(FileDownloadUtils.class));
+        // presenter.init(panel);
+        // return presenter;
+        // }
+        // });
+        //
+        // register(Singleton.class, new
+        // Factory<LicenseChangeAction>(LicenseChangeAction.class) {
+        // @Override
+        // public LicenseChangeAction create() {
+        // return new LicenseChangeAction(p(GroupServiceAsync.class),
+        // i(Session.class),
+        // i(I18nTranslationService.class), i(StateManager.class));
+        // }
+        // });
+        //
+        // register(Singleton.class, new
+        // Factory<RenameAction>(RenameAction.class) {
+        // @Override
+        // public RenameAction create() {
+        // return new RenameAction(i(I18nTranslationService.class),
+        // i(Session.class), p(ContentServiceAsync.class));
+        // }
+        // });
+        //
+        // register(Singleton.class, new
+        // Factory<LicenseWizard>(LicenseWizard.class) {
+        // @Override
+        // public LicenseWizard create() {
+        // final LicenseWizardPresenter presenter = new LicenseWizardPresenter(
+        // i(LicenseWizardFirstFormView.class),
+        // i(LicenseWizardSndFormView.class),
+        // i(LicenseWizardTrdFormView.class), i(LicenseWizardFrdFormView.class),
+        // i(Session.class));
+        // final LicenseWizardPanel panel = new LicenseWizardPanel(presenter,
+        // i(WorkspaceSkeleton.class),
+        // i(I18nTranslationService.class));
+        // presenter.init(panel);
+        // return presenter;
+        // }
+        // });
+        //
+        // register(Singleton.class, new
+        // Factory<LicenseWizardFirstFormView>(LicenseWizardFirstFormView.class)
+        // {
+        // @Override
+        // public LicenseWizardFirstFormView create() {
+        // return new LicenseWizardFirstForm(i(I18nTranslationService.class));
+        // }
+        // });
+        //
+        // register(Singleton.class, new
+        // Factory<LicenseWizardSndFormView>(LicenseWizardSndFormView.class) {
+        // @Override
+        // public LicenseWizardSndFormView create() {
+        // return new LicenseWizardSndForm(i(I18nTranslationService.class));
+        // }
+        // });
+        //
+        // register(Singleton.class, new
+        // Factory<LicenseWizardTrdFormView>(LicenseWizardTrdFormView.class) {
+        // @Override
+        // public LicenseWizardTrdFormView create() {
+        // return new LicenseWizardTrdForm(i(Images.class),
+        // i(I18nTranslationService.class));
+        // }
+        // });
+        //
+        // register(Singleton.class, new
+        // Factory<LicenseWizardFrdFormView>(LicenseWizardFrdFormView.class) {
+        // @Override
+        // public LicenseWizardFrdFormView create() {
+        // return new LicenseWizardFrdForm(i(I18nTranslationService.class),
+        // i(Session.class));
+        // }
+        // });
+        //
+        // register(Singleton.class, new
+        // Factory<FileUploader>(FileUploader.class) {
+        // @Override
+        // public FileUploader create() {
+        // final FileUploaderPresenter presenter = new
+        // FileUploaderPresenter(i(Session.class));
+        // final FileUploaderDialog panel = new FileUploaderDialog(presenter,
+        // i(I18nUITranslationService.class),
+        // i(WorkspaceSkeleton.class));
+        // presenter.init(panel);
+        // return presenter;
+        // }
+        //
+        // @Override
+        // public void onAfterCreated(final FileUploader uploader) {
+        // i(ContextNavigator.class).addFileUploaderListener(uploader);
+        // }
+        // });
+        //
+        // register(Singleton.class, new
+        // Factory<SiteSearcher>(SiteSearcher.class) {
+        // @Override
+        // public SiteSearcher create() {
+        // final SiteSearcherPresenter presenter = new
+        // SiteSearcherPresenter(p(StateManager.class));
+        // final SiteSearcherView view = new SiteSearcherPanel(presenter,
         // i(I18nTranslationService.class),
-        // p(LicenseWizard.class), i(NotifyLevelImages.class));
+        // i(WorkspaceSkeleton.class));
         // presenter.init(view);
         // return presenter;
         // }
         // });
-
-        register(Singleton.class, new Factory<UserLiveSearcher>(UserLiveSearcher.class) {
-            @Override
-            public UserLiveSearcher create() {
-                final UserLiveSearcherPresenter presenter = new UserLiveSearcherPresenter();
-                final EntityLiveSearcherView view = new UserLiveSearcherPanel(presenter,
-                        i(I18nTranslationService.class), i(FileDownloadUtils.class));
-                presenter.init(view);
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<GroupLiveSearcher>(GroupLiveSearcher.class) {
-            @Override
-            public GroupLiveSearcher create() {
-                final GroupLiveSearcherPresenter presenter = new GroupLiveSearcherPresenter();
-                final EntityLiveSearcherView view = new GroupLiveSearchPanel(presenter,
-                        i(I18nTranslationService.class), i(FileDownloadUtils.class));
-                presenter.init(view);
-                return presenter;
-            }
-        });
-
+        //
         // register(Singleton.class, new
-        // Factory<ToolSelector>(ToolSelector.class) {
+        // Factory<I18nTranslator>(I18nTranslator.class) {
         // @Override
-        // public ToolSelector create() {
-        // final ToolSelectorPresenter presenter = new
-        // ToolSelectorPresenter(i(StateManager.class),
-        // i(WsThemeManager.class));
+        // public I18nTranslator create() {
+        // final I18nTranslatorPresenter presenter = new
+        // I18nTranslatorPresenter(i(Session.class),
+        // i(I18nServiceAsync.class), i(I18nUITranslationService.class));
+        // final I18nTranslatorView view = new I18nTranslatorPanel(presenter,
+        // i(I18nTranslationService.class),
+        // i(LanguageSelector.class), i(WorkspaceSkeleton.class),
+        // i(Images.class));
+        // presenter.init(view);
         // return presenter;
         // }
         // });
-
-        register(Singleton.class, new Factory<LanguageSelector>(LanguageSelector.class) {
-            @Override
-            public LanguageSelector create() {
-                final LanguageSelectorPresenter presenter = new LanguageSelectorPresenter(i(Session.class));
-                final LanguageSelectorView view = new LanguageSelectorPanel(presenter, i(I18nTranslationService.class));
-                presenter.init(view);
-                return presenter;
-            }
-        });
-
-        // Register of tokens like "signin", "newgroup", "translate" etcetera
-        i(StateManager.class).addSiteToken(SiteTokens.SIGNIN, new HistoryTokenCallback() {
-
-            @Override
-            public void onHistoryToken() {
-                i(SignIn.class).showSignInDialog();
-            }
-        });
-
-        i(StateManager.class).addSiteToken(SiteTokens.REGISTER, new HistoryTokenCallback() {
-
-            @Override
-            public void onHistoryToken() {
-                i(Register.class).doRegister();
-            }
-        });
-
-        i(StateManager.class).addSiteToken(SiteTokens.NEWGROUP, new HistoryTokenCallback() {
-
-            @Override
-            public void onHistoryToken() {
-                i(NewGroup.class).doNewGroup();
-            }
-        });
-
-        i(StateManager.class).addSiteToken(SiteTokens.TRANSLATE, new HistoryTokenCallback() {
-
-            @Override
-            public void onHistoryToken() {
-                i(I18nTranslator.class).doShowTranslator();
-            }
-        });
-
+        //
+        // // register(ApplicationComponentGroup.class, new
+        // // Factory<SiteOptionsI18nTranslatorAction>(
+        // // SiteOptionsI18nTranslatorAction.class) {
+        // // @Override
+        // // public SiteOptionsI18nTranslatorAction create() {
+        // // return new SiteOptionsI18nTranslatorAction(i(SiteOptions.class),
+        // // i(I18nTranslationService.class),
+        // // i(IconResources.class), p(I18nTranslator.class));
+        // // }
+        // // });
+        //
+        // // register(Singleton.class, new Factory<SignIn>(SignIn.class) {
+        // // @Override
+        // // public SignIn create() {
+        // // final SignInPresenter presenter = new
+        // // SignInPresenter(i(Session.class), i(StateManager.class),
+        // // i(I18nUITranslationService.class), p(UserServiceAsync.class),
+        // // p(Register.class));
+        // // final SignInView panel = new SignInPanel(presenter,
+        // // i(I18nTranslationService.class),
+        // // i(WorkspaceSkeleton.class), i(NotifyLevelImages.class));
+        // // presenter.init(panel);
+        // // return presenter;
+        // // }
+        // // });
+        // //
+        // // register(Singleton.class, new Factory<Register>(Register.class) {
+        // // @Override
+        // // public Register create() {
+        // // final RegisterPresenter presenter = new
+        // // RegisterPresenter(i(Session.class), i(StateManager.class),
+        // // i(I18nUITranslationService.class), p(UserServiceAsync.class),
+        // // p(SignIn.class));
+        // // final RegisterView panel = new RegisterPanel(presenter,
+        // // i(I18nTranslationService.class),
+        // // i(WorkspaceSkeleton.class), i(Session.class),
+        // // i(NotifyLevelImages.class));
+        // // presenter.init(panel);
+        // // return presenter;
+        // // }
+        // // });
+        //
+        // // register(Singleton.class, new Factory<NewGroup>(NewGroup.class) {
+        // // @Override
+        // // public NewGroup create() {
+        // // final NewGroupPresenter presenter = new
+        // // NewGroupPresenter(i(I18nTranslationService.class),
+        // // i(Session.class), i(StateManager.class),
+        // // p(GroupServiceAsync.class));
+        // // final NewGroupPanel view = new NewGroupPanel(presenter,
+        // // i(I18nTranslationService.class),
+        // // p(LicenseWizard.class), i(NotifyLevelImages.class));
+        // // presenter.init(view);
+        // // return presenter;
+        // // }
+        // // });
+        //
+        // register(Singleton.class, new
+        // Factory<UserLiveSearcher>(UserLiveSearcher.class) {
+        // @Override
+        // public UserLiveSearcher create() {
+        // final UserLiveSearcherPresenter presenter = new
+        // UserLiveSearcherPresenter();
+        // final EntityLiveSearcherView view = new
+        // UserLiveSearcherPanel(presenter,
+        // i(I18nTranslationService.class), i(FileDownloadUtils.class));
+        // presenter.init(view);
+        // return presenter;
+        // }
+        // });
+        //
+        // register(Singleton.class, new
+        // Factory<GroupLiveSearcher>(GroupLiveSearcher.class) {
+        // @Override
+        // public GroupLiveSearcher create() {
+        // final GroupLiveSearcherPresenter presenter = new
+        // GroupLiveSearcherPresenter();
+        // final EntityLiveSearcherView view = new
+        // GroupLiveSearchPanel(presenter,
+        // i(I18nTranslationService.class), i(FileDownloadUtils.class));
+        // presenter.init(view);
+        // return presenter;
+        // }
+        // });
+        //
+        // // register(Singleton.class, new
+        // // Factory<ToolSelector>(ToolSelector.class) {
+        // // @Override
+        // // public ToolSelector create() {
+        // // final ToolSelectorPresenter presenter = new
+        // // ToolSelectorPresenter(i(StateManager.class),
+        // // i(WsThemeManager.class));
+        // // return presenter;
+        // // }
+        // // });
+        //
+        // register(Singleton.class, new
+        // Factory<LanguageSelector>(LanguageSelector.class) {
+        // @Override
+        // public LanguageSelector create() {
+        // final LanguageSelectorPresenter presenter = new
+        // LanguageSelectorPresenter(i(Session.class));
+        // final LanguageSelectorView view = new
+        // LanguageSelectorPanel(presenter, i(I18nTranslationService.class));
+        // presenter.init(view);
+        // return presenter;
+        // }
+        // });
+        //
+        // // Register of tokens like "signin", "newgroup", "translate" etcetera
+        // i(StateManager.class).addSiteToken(SiteTokens.SIGNIN, new
+        // HistoryTokenCallback() {
+        //
+        // @Override
+        // public void onHistoryToken() {
+        // i(SignIn.class).showSignInDialog();
+        // }
+        // });
+        //
+        // i(StateManager.class).addSiteToken(SiteTokens.REGISTER, new
+        // HistoryTokenCallback() {
+        //
+        // @Override
+        // public void onHistoryToken() {
+        // i(Register.class).doRegister();
+        // }
+        // });
+        //
+        // i(StateManager.class).addSiteToken(SiteTokens.NEWGROUP, new
+        // HistoryTokenCallback() {
+        //
+        // @Override
+        // public void onHistoryToken() {
+        // i(NewGroup.class).doNewGroup();
+        // }
+        // });
+        //
+        // i(StateManager.class).addSiteToken(SiteTokens.TRANSLATE, new
+        // HistoryTokenCallback() {
+        //
+        // @Override
+        // public void onHistoryToken() {
+        // i(I18nTranslator.class).doShowTranslator();
+        // }
+        // });
+        //
+        // // register(NoDecoration.class, new
+        // // Factory<ActionContentToolbar>(ActionContentToolbar.class) {
+        // // @Override
+        // // public ActionContentToolbar create() {
+        // // final ActionCntCtxToolbarPanel<StateToken> tbar = new
+        // // ActionCntCtxToolbarPanel<StateToken>(
+        // // AbstractFoldableContentActions.CONTENT_TOPBAR,
+        // // p(ActionManager.class),
+        // // i(WorkspaceSkeleton.class));
+        // // final ActionContentToolbar toolbar = new
+        // // ActionContentToolbarPresenter(tbar);
+        // // return toolbar;
+        // // }
+        // // });
+        //
+        // // register(Singleton.class, new
+        // // Factory<ContentEditor>(ContentEditor.class) {
+        // // @Override
+        // // public ContentEditor create() {
+        // // final ContentEditorPresenter presenter = new
+        // // ContentEditorPresenter(i(I18nTranslationService.class),
+        // // i(Session.class), i(RTEImgResources.class),
+        // // p(InsertLinkDialog.class),
+        // // p(ColorWebSafePalette.class), p(EditHtmlDialog.class),
+        // // p(InsertImageDialog.class),
+        // // p(InsertMediaDialog.class), p(InsertTableDialog.class),
+        // // p(InsertSpecialCharDialog.class),
+        // // i(SchedulerManager.class), true, i(StateManager.class),
+        // // i(SiteSignOutLink.class),
+        // // i(WorkspaceSkeleton.class), i(TimerWrapper.class),
+        // // i(EntityTitle.class));
+        // // final ContentEditorPanel panel = new ContentEditorPanel(presenter,
+        // // i(I18nUITranslationService.class),
+        // // i(GlobalShortcutRegister.class), i(GuiBindingsRegister.class));
+        // // presenter.init(panel);
+        // // return presenter;
+        // // }
+        // // });
         // register(NoDecoration.class, new
-        // Factory<ActionContentToolbar>(ActionContentToolbar.class) {
+        // Factory<ActionContextTopToolbar>(ActionContextTopToolbar.class) {
         // @Override
-        // public ActionContentToolbar create() {
-        // final ActionCntCtxToolbarPanel<StateToken> tbar = new
+        // public ActionContextTopToolbar create() {
+        // final ActionCntCtxToolbarPanel<StateToken> panel = new
         // ActionCntCtxToolbarPanel<StateToken>(
-        // AbstractFoldableContentActions.CONTENT_TOPBAR,
+        // OldAbstractFoldableContentActions.CONTEXT_TOPBAR,
         // p(ActionManager.class),
         // i(WorkspaceSkeleton.class));
-        // final ActionContentToolbar toolbar = new
-        // ActionContentToolbarPresenter(tbar);
+        // final ActionContextTopToolbar toolbar = new
+        // ActionContextTopToolbar(panel);
         // return toolbar;
         // }
         // });
-
-        register(Singleton.class, new Factory<ContentEditor>(ContentEditor.class) {
-            @Override
-            public ContentEditor create() {
-                final ContentEditorPresenter presenter = new ContentEditorPresenter(i(I18nTranslationService.class),
-                        i(Session.class), i(RTEImgResources.class), p(InsertLinkDialog.class),
-                        p(ColorWebSafePalette.class), p(EditHtmlDialog.class), p(InsertImageDialog.class),
-                        p(InsertMediaDialog.class), p(InsertTableDialog.class), p(InsertSpecialCharDialog.class),
-                        i(SchedulerManager.class), true, i(StateManager.class), i(SiteSignOutLink.class),
-                        i(WorkspaceSkeleton.class), i(TimerWrapper.class), i(EntityTitle.class));
-                final ContentEditorPanel panel = new ContentEditorPanel(presenter, i(I18nUITranslationService.class),
-                        i(GlobalShortcutRegister.class), i(GuiBindingsRegister.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-        register(NoDecoration.class, new Factory<ActionContextTopToolbar>(ActionContextTopToolbar.class) {
-            @Override
-            public ActionContextTopToolbar create() {
-                final ActionCntCtxToolbarPanel<StateToken> panel = new ActionCntCtxToolbarPanel<StateToken>(
-                        OldAbstractFoldableContentActions.CONTEXT_TOPBAR, p(ActionManager.class),
-                        i(WorkspaceSkeleton.class));
-                final ActionContextTopToolbar toolbar = new ActionContextTopToolbar(panel);
-                return toolbar;
-            }
-        });
-
-        register(NoDecoration.class, new Factory<ActionContextBottomToolbar>(ActionContextBottomToolbar.class) {
-            @Override
-            public ActionContextBottomToolbar create() {
-                final ActionCntCtxToolbarPanel<StateToken> panel = new ActionCntCtxToolbarPanel<StateToken>(
-                        OldAbstractFoldableContentActions.CONTEXT_BOTTOMBAR, p(ActionManager.class),
-                        i(WorkspaceSkeleton.class));
-                final ActionContextBottomToolbar toolbar = new ActionContextBottomToolbar(panel);
-                return toolbar;
-            }
-        });
-
-        register(Singleton.class, new Factory<ContextNavigator>(ContextNavigator.class) {
-            @Override
-            public ContextNavigator create() {
-                final ContextNavigatorPresenter presenter = new ContextNavigatorPresenter(i(StateManager.class),
-                        i(Session.class), i(I18nTranslationService.class), i(ContentIconsRegistry.class),
-                        i(ContentCapabilitiesRegistry.class), i(ActionContextTopToolbar.class),
-                        i(ActionContextBottomToolbar.class), i(ContextActionRegistry.class),
-                        p(FileDownloadUtils.class), true, i(RenameAction.class));
-                final ContextNavigatorPanel panel = new ContextNavigatorPanel(presenter,
-                        i(I18nTranslationService.class), i(WorkspaceSkeleton.class), i(ActionManager.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<ContextPropEditor>(ContextPropEditor.class) {
-            @Override
-            public ContextPropEditor create() {
-                final ContextPropEditorPresenter presenter = new ContextPropEditorPresenter(i(Session.class),
-                        i(StateManager.class), i(ContentCapabilitiesRegistry.class), p(TagsSummary.class),
-                        p(ContentServiceAsync.class), i(EntitySubTitle.class));
-                final ContextPropEditorView view = new ContextPropEditorPanel(presenter,
-                        i(I18nUITranslationService.class), i(WorkspaceSkeleton.class), p(LanguageSelector.class),
-                        i(Images.class));
-                presenter.init(view);
-                return presenter;
-            }
-        });
-
-        register(InsertImageGroup.class, new Factory<InsertImageLocal>(InsertImageLocal.class) {
-            @Override
-            public InsertImageLocal create() {
-                final InsertImageLocalPresenter presenter = new InsertImageLocalPresenter(i(InsertImageDialog.class),
-                        i(Session.class));
-                final InsertImageLocalPanel panel = new InsertImageLocalPanel(presenter,
-                        i(I18nTranslationService.class), i(FileDownloadUtils.class), i(Session.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        // register(ApplicationComponentGroup.class, new
-        // Factory<MaxMinWorkspace>(MaxMinWorkspace.class) {
+        //
+        // register(NoDecoration.class, new
+        // Factory<ActionContextBottomToolbar>(ActionContextBottomToolbar.class)
+        // {
         // @Override
-        // public MaxMinWorkspace create() {
-        // final MaxMinWorkspacePresenter presenter = new
-        // MaxMinWorkspacePresenter(
-        // i(GlobalShortcutRegister.class), i(IconResources.class),
-        // i(I18nTranslationService.class),
-        // i(SiteOptions.class));
-        // final MaxMinWorkspacePanel panel = new
-        // MaxMinWorkspacePanel(i(WorkspaceSkeleton.class));
+        // public ActionContextBottomToolbar create() {
+        // final ActionCntCtxToolbarPanel<StateToken> panel = new
+        // ActionCntCtxToolbarPanel<StateToken>(
+        // OldAbstractFoldableContentActions.CONTEXT_BOTTOMBAR,
+        // p(ActionManager.class),
+        // i(WorkspaceSkeleton.class));
+        // final ActionContextBottomToolbar toolbar = new
+        // ActionContextBottomToolbar(panel);
+        // return toolbar;
+        // }
+        // });
+        //
+        // register(Singleton.class, new
+        // Factory<ContextNavigator>(ContextNavigator.class) {
+        // @Override
+        // public ContextNavigator create() {
+        // final ContextNavigatorPresenter presenter = new
+        // ContextNavigatorPresenter(i(StateManager.class),
+        // i(Session.class), i(I18nTranslationService.class),
+        // i(ContentIconsRegistry.class),
+        // i(ContentCapabilitiesRegistry.class),
+        // i(ActionContextTopToolbar.class),
+        // i(ActionContextBottomToolbar.class), i(ContextActionRegistry.class),
+        // p(FileDownloadUtils.class), true, i(RenameAction.class));
+        // final ContextNavigatorPanel panel = new
+        // ContextNavigatorPanel(presenter,
+        // i(I18nTranslationService.class), i(WorkspaceSkeleton.class),
+        // i(ActionManager.class));
         // presenter.init(panel);
         // return presenter;
         // }
         // });
-
-        register(InsertLinkGroup.class, new Factory<InsertLinkLocal>(InsertLinkLocal.class) {
-            @Override
-            public InsertLinkLocal create() {
-                final InsertLinkLocalPresenter presenter = new InsertLinkLocalPresenter(i(InsertLinkDialog.class));
-                final InsertLinkLocalPanel panel = new InsertLinkLocalPanel(presenter, i(WorkspaceSkeleton.class),
-                        i(I18nTranslationService.class), i(FileDownloadUtils.class), i(StateTokenUtils.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(InsertMediaGroup.class, new Factory<InsertMediaLocal>(InsertMediaLocal.class) {
-            @Override
-            public InsertMediaLocal create() {
-                final InsertMediaLocalPresenter presenter = new InsertMediaLocalPresenter(i(InsertMediaDialog.class),
-                        i(Session.class), p(MediaUtils.class));
-                final InsertMediaLocalPanel panel = new InsertMediaLocalPanel(presenter,
-                        i(I18nTranslationService.class), i(FileDownloadUtils.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-        i(GlobalShortcutRegister.class).enable();
+        //
+        // register(Singleton.class, new
+        // Factory<ContextPropEditor>(ContextPropEditor.class) {
+        // @Override
+        // public ContextPropEditor create() {
+        // final ContextPropEditorPresenter presenter = new
+        // ContextPropEditorPresenter(i(Session.class),
+        // i(StateManager.class), i(ContentCapabilitiesRegistry.class),
+        // p(TagsSummary.class),
+        // p(ContentServiceAsync.class), i(EntitySubTitle.class));
+        // final ContextPropEditorView view = new
+        // ContextPropEditorPanel(presenter,
+        // i(I18nUITranslationService.class), i(WorkspaceSkeleton.class),
+        // p(LanguageSelector.class),
+        // i(Images.class));
+        // presenter.init(view);
+        // return presenter;
+        // }
+        // });
+        //
+        // register(InsertImageGroup.class, new
+        // Factory<InsertImageLocal>(InsertImageLocal.class) {
+        // @Override
+        // public InsertImageLocal create() {
+        // final InsertImageLocalPresenter presenter = new
+        // InsertImageLocalPresenter(i(InsertImageDialog.class),
+        // i(Session.class));
+        // final InsertImageLocalPanel panel = new
+        // InsertImageLocalPanel(presenter,
+        // i(I18nTranslationService.class), i(FileDownloadUtils.class),
+        // i(Session.class));
+        // presenter.init(panel);
+        // return presenter;
+        // }
+        // });
+        //
+        // // register(ApplicationComponentGroup.class, new
+        // // Factory<MaxMinWorkspace>(MaxMinWorkspace.class) {
+        // // @Override
+        // // public MaxMinWorkspace create() {
+        // // final MaxMinWorkspacePresenter presenter = new
+        // // MaxMinWorkspacePresenter(
+        // // i(GlobalShortcutRegister.class), i(IconResources.class),
+        // // i(I18nTranslationService.class),
+        // // i(SiteOptions.class));
+        // // final MaxMinWorkspacePanel panel = new
+        // // MaxMinWorkspacePanel(i(WorkspaceSkeleton.class));
+        // // presenter.init(panel);
+        // // return presenter;
+        // // }
+        // // });
+        //
+        // register(InsertLinkGroup.class, new
+        // Factory<InsertLinkLocal>(InsertLinkLocal.class) {
+        // @Override
+        // public InsertLinkLocal create() {
+        // final InsertLinkLocalPresenter presenter = new
+        // InsertLinkLocalPresenter(i(InsertLinkDialog.class));
+        // final InsertLinkLocalPanel panel = new
+        // InsertLinkLocalPanel(presenter, i(WorkspaceSkeleton.class),
+        // i(I18nTranslationService.class), i(FileDownloadUtils.class),
+        // i(StateTokenUtils.class));
+        // presenter.init(panel);
+        // return presenter;
+        // }
+        // });
+        //
+        // register(InsertMediaGroup.class, new
+        // Factory<InsertMediaLocal>(InsertMediaLocal.class) {
+        // @Override
+        // public InsertMediaLocal create() {
+        // final InsertMediaLocalPresenter presenter = new
+        // InsertMediaLocalPresenter(i(InsertMediaDialog.class),
+        // i(Session.class), p(MediaUtils.class));
+        // final InsertMediaLocalPanel panel = new
+        // InsertMediaLocalPanel(presenter,
+        // i(I18nTranslationService.class), i(FileDownloadUtils.class));
+        // presenter.init(panel);
+        // return presenter;
+        // }
+        // });
+        // i(GlobalShortcutRegister.class).enable();
     }
 
 }

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -181,7 +181,7 @@
     }
 
     protected void gotoToken(final String token) {
-        stateManager.gotoToken(token);
+        stateManager.gotoHistoryToken(token);
     }
 
     protected void onItemRename(final String token, final String newName, final String oldName) {

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/ContentEditorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/ContentEditorPresenter.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/ContentEditorPresenter.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -40,7 +40,6 @@
 import org.ourproject.kune.platf.client.ui.rte.insertspecialchar.InsertSpecialCharDialog;
 import org.ourproject.kune.platf.client.ui.rte.inserttable.InsertTableDialog;
 import org.ourproject.kune.platf.client.ui.rte.saving.RTESavingEditorPresenter;
-import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignOutLink;
 import org.ourproject.kune.workspace.client.skel.Toolbar;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 import org.ourproject.kune.workspace.client.title.EntityTitle;
@@ -69,19 +68,20 @@
             super(text, tooltip, icon);
         }
 
+        @Override
         public void actionPerformed(final ActionEvent actionEvent) {
             entityTitle.edit();
         }
     }
 
-    private final WorkspaceSkeleton wspace;
-    private VerticalPanel vpanel;
     private RTEditorPanel editorPanel;
-    private final SiteSignOutLink siteSignOutLink;
+    private final EntityTitle entityTitle;
+    // private final SiteSignOutLink siteSignOutLink;
     private final I18nTranslationService i18n;
-    private final EntityTitle entityTitle;
+    private ComplexToolbar sndbar;
     private ComplexToolbar topbar;
-    private ComplexToolbar sndbar;
+    private VerticalPanel vpanel;
+    private final WorkspaceSkeleton wspace;
 
     public ContentEditorPresenter(final I18nTranslationService i18n, final Session session,
             final RTEImgResources imgResources, final Provider<InsertLinkDialog> insLinkDialog,
@@ -89,16 +89,16 @@
             final Provider<InsertImageDialog> insertImageDialog, final Provider<InsertMediaDialog> insertMediaDialog,
             final Provider<InsertTableDialog> insertTableDialog, final Provider<InsertSpecialCharDialog> insCharDialog,
             final SchedulerManager deferred, final boolean autoSave, final StateManager stateManager,
-            final SiteSignOutLink siteSignOutLink, final WorkspaceSkeleton wspace, final TimerWrapper timer,
-            final EntityTitle entityTitle) {
+            final WorkspaceSkeleton wspace, final TimerWrapper timer, final EntityTitle entityTitle) {
         super(i18n, session, imgResources, insLinkDialog, palette, editHtmlDialog, insertImageDialog,
                 insertMediaDialog, insertTableDialog, insCharDialog, deferred, autoSave, stateManager, timer);
         super.setExtended(true);
         this.i18n = i18n;
-        this.siteSignOutLink = siteSignOutLink;
+
         this.entityTitle = entityTitle;
         this.wspace = wspace;
         Window.addWindowClosingHandler(new ClosingHandler() {
+            @Override
             public void onWindowClosing(final ClosingEvent event) {
                 if (isSavePending()) {
                     event.setMessage(i18n.t("You have changes without save. Are you sure?"));
@@ -116,6 +116,25 @@
 
     }
 
+    private void addContentActions() {
+        final RenameAction renameAction = new RenameAction(i18n.t("Rename"), NO_TEXT, NO_ICON);
+        final OldMenuItemDescriptor renameItem = new OldMenuItemDescriptor(super.getFileMenu(), renameAction);
+        renameItem.setLocation(RTEditor.TOPBAR);
+        final KeyStroke key = KeyStroke.getKeyStroke(Keyboard.KEY_F2, 0);
+        renameAction.putValue(Action.ACCELERATOR_KEY, key);
+        super.setActionShortcut(key, renameAction);
+        addAction(renameItem);
+    }
+
+    private void adjHeight(final int height) {
+        final int barHeight = sndbar.getOffsetHeight();
+        final int newHeight = height - 20 - barHeight;
+        // Log.debug("Sndbar height: " + barHeight + " new height: " +
+        // newHeight);
+        editorPanel.adjustSize(newHeight);
+        vpanel.setCellHeight(editorPanel, String.valueOf(newHeight));
+    }
+
     @Override
     public void edit(final String html, final Listener<String> onSave, final Listener0 onEditCancelled) {
         super.edit(html, onSave, onEditCancelled);
@@ -124,7 +143,7 @@
         contentTopBar.add(topbar);
         wspace.getEntityWorkspace().setContent(vpanel);
         adjHeight(wspace.getEntityWorkspace().getContentHeight());
-        siteSignOutLink.addBeforeSignOut(getBeforeSavingListener());
+        // siteSignOutLink.addBeforeSignOut(getBeforeSavingListener());
     }
 
     public void init(final ContentEditorView view) {
@@ -139,34 +158,16 @@
         vpanel.setWidth("100%");
     }
 
-    public void setFileMenuTitle(final String fileMenuTitleNew) {
-        super.getFileMenu().setText(fileMenuTitleNew);
-    }
-
     @Override
     protected void onCancelConfirmed() {
         wspace.getEntityWorkspace().clearContent();
         super.onCancelConfirmed();
-        siteSignOutLink.addBeforeSignOut(getBeforeSavingListener());
+        // siteSignOutLink.addBeforeSignOut(getBeforeSavingListener());
     }
 
-    private void addContentActions() {
-        final RenameAction renameAction = new RenameAction(i18n.t("Rename"), NO_TEXT, NO_ICON);
-        final OldMenuItemDescriptor renameItem = new OldMenuItemDescriptor(super.getFileMenu(), renameAction);
-        renameItem.setLocation(RTEditor.TOPBAR);
-        final KeyStroke key = KeyStroke.getKeyStroke(Keyboard.KEY_F2, 0);
-        renameAction.putValue(Action.ACCELERATOR_KEY, key);
-        super.setActionShortcut(key, renameAction);
-        addAction(renameItem);
+    @Override
+    public void setFileMenuTitle(final String fileMenuTitleNew) {
+        super.getFileMenu().setText(fileMenuTitleNew);
     }
 
-    private void adjHeight(final int height) {
-        final int barHeight = sndbar.getOffsetHeight();
-        final int newHeight = height - 20 - barHeight;
-        // Log.debug("Sndbar height: " + barHeight + " new height: " +
-        // newHeight);
-        editorPanel.adjustSize(newHeight);
-        vpanel.setCellHeight(editorPanel, String.valueOf(newHeight));
-    }
-
 }

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/oldsn/BuddiesSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/oldsn/BuddiesSummaryPresenter.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/oldsn/BuddiesSummaryPresenter.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -177,7 +177,7 @@
                 AccessRolDTO.Viewer, new Listener<UserSimpleDTO>() {
                     @Override
                     public void onEvent(final UserSimpleDTO user) {
-                        stateManager.gotoToken(user.getShortName());
+                        stateManager.gotoHistoryToken(user.getShortName());
                     }
                 });
         go.setMustBeAuthenticated(false);

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/oldsn/SocialNetworkPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/oldsn/SocialNetworkPresenter.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/oldsn/SocialNetworkPresenter.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -173,14 +173,14 @@
                 new Listener<GroupDTO>() {
                     @Override
                     public void onEvent(final GroupDTO groupDTO) {
-                        stateManager.gotoToken(groupDTO.getShortName());
+                        stateManager.gotoHistoryToken(groupDTO.getShortName());
                     }
                 });
         gotoMemberMenuItem = new MenuItem<GroupDTO>("images/group-home.gif", i18n.t("Visit this member homepage"),
                 new Listener<GroupDTO>() {
                     @Override
                     public void onEvent(final GroupDTO groupDTO) {
-                        stateManager.gotoToken(groupDTO.getShortName());
+                        stateManager.gotoHistoryToken(groupDTO.getShortName());
                     }
                 });
 
@@ -295,7 +295,7 @@
     }
 
     public void onDoubleClick(final String groupShortName) {
-        stateManager.gotoToken(groupShortName);
+        stateManager.gotoHistoryToken(groupShortName);
     }
 
     public void removeGroupOperation(final MenuItem<GroupDTO> operation, final boolean mustBeLogged) {

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsPresenter.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsPresenter.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -65,7 +65,7 @@
             @Override
             public void actionPerformed(final ActionEvent event) {
                 if (!session.isInCurrentUserSpace()) {
-                    stateManager.gotoToken(session.getCurrentUser().getStateToken());
+                    stateManager.gotoStateToken(session.getCurrentUser().getStateToken());
                 }
                 show();
             }

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/GroupOptionsToolsConfPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/GroupOptionsToolsConfPresenter.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/GroupOptionsToolsConfPresenter.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -84,7 +84,7 @@
         if (session.getCurrentStateToken().getTool().equals(toolName)) {
             final ContentSimpleDTO defaultContent = session.getCurrentState().getGroup().getDefaultContent();
             if (defaultContent != null) {
-                stateManager.gotoToken(defaultContent.getStateToken());
+                stateManager.gotoStateToken(defaultContent.getStateToken());
             }
         }
     }

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/UserOptionsToolsConfPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/UserOptionsToolsConfPresenter.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/UserOptionsToolsConfPresenter.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -83,7 +83,7 @@
     protected void gotoDifLocationIfNecessary(final String toolName) {
         if (session.getCurrentStateToken().getGroup().equals(session.getCurrentUserInfo().getShortName())
                 && session.getCurrentStateToken().getTool().equals(toolName)) {
-            stateManager.gotoToken(session.getCurrentState().getGroup().getDefaultContent().getStateToken());
+            stateManager.gotoStateToken(session.getCurrentState().getGroup().getDefaultContent().getStateToken());
         }
     }
 }

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPresenter.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPresenter.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -46,7 +46,7 @@
     }
 
     public void doGoto(final String groupShortName) {
-        stateManagerProvider.get().gotoToken(groupShortName);
+        stateManagerProvider.get().gotoHistoryToken(groupShortName);
     }
 
     public void doSearch(final SiteSearcherType typeOfSearch) {

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/site/WorkspaceNotifyUser.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/site/WorkspaceNotifyUser.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/site/WorkspaceNotifyUser.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -23,7 +23,6 @@
 import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
 import org.ourproject.kune.platf.client.ui.noti.NotifyUser.Level;
 import org.ourproject.kune.workspace.client.site.msg.ToastMessage;
-import org.ourproject.kune.workspace.client.sitebar.siteprogress.SiteProgress;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 
 import cc.kune.core.shared.i18n.I18nTranslationService;
@@ -35,21 +34,23 @@
 
 public class WorkspaceNotifyUser {
 
-    public WorkspaceNotifyUser(NotifyUser notifyUser, final I18nTranslationService i18n,
-            final SiteProgress siteProgress, final Provider<ToastMessage> toaster,
-            final Provider<WorkspaceSkeleton> ws) {
+    public WorkspaceNotifyUser(final NotifyUser notifyUser, final I18nTranslationService i18n,
+            final Provider<ToastMessage> toaster, final Provider<WorkspaceSkeleton> ws) {
         notifyUser.addProgressNotifier(new Listener<String>() {
-            public void onEvent(String message) {
-                siteProgress.showProgress(message);
+            @Override
+            public void onEvent(final String message) {
+
             }
         });
         notifyUser.addHideProgressNotifier(new Listener0() {
+            @Override
             public void onEvent() {
-                siteProgress.hideProgress();
+                // siteProgress.hideProgress();
             }
         });
         notifyUser.addNotifier(new Listener2<Level, String>() {
-            public void onEvent(Level level, String msg) {
+            @Override
+            public void onEvent(final Level level, final String msg) {
                 String title = "";
                 switch (level) {
                 case error:
@@ -69,12 +70,14 @@
             }
         });
         notifyUser.addAlerter(new Listener2<String, String>() {
-            public void onEvent(String title, String msg) {
+            @Override
+            public void onEvent(final String title, final String msg) {
                 ws.get().showAlertMessage(title, msg);
             }
         });
         notifyUser.addConfirmationAsker(new Listener<ConfirmationAsk>() {
-            public void onEvent(ConfirmationAsk ask) {
+            @Override
+            public void onEvent(final ConfirmationAsk ask) {
                 ws.get().askConfirmation(ask.getTitle(), ask.getMessage(), ask.getOnConfirmed(), ask.getOnCancel());
             }
         });

Modified: trunk/src/test/java/cc/kune/core/client/state/StateManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/client/state/StateManagerDefaultTest.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/test/java/cc/kune/core/client/state/StateManagerDefaultTest.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -156,13 +156,13 @@
     @SuppressWarnings("unchecked")
     @Test
     public void getDefGroup() {
-        stateManager.onHistoryChanged("site.docs");
+        stateManager.processHistoryToken("site.docs");
         Mockito.verify(contentProvider, Mockito.times(1)).getContent(Mockito.anyString(),
                 (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
     }
 
     public void getWaveToken() {
-        stateManager.onHistoryChanged("example.com/w+abcd/~/conv+root/b+45kg");
+        stateManager.processHistoryToken("example.com/w+abcd/~/conv+root/b+45kg");
     }
 
     @SuppressWarnings("unchecked")
@@ -180,9 +180,9 @@
     @Test
     public void oneBeforeStateChangeListenerAddAndRemove() {
         final String newToken = confBeforeStateChangeListeners(false, false);
-        stateManager.onHistoryChanged(newToken);
+        stateManager.processHistoryToken(newToken);
         removeBeforeStateChangeListener();
-        stateManager.onHistoryChanged(newToken);
+        stateManager.processHistoryToken(newToken);
         Mockito.verify(contentProvider, Mockito.times(1)).getContent(Mockito.anyString(),
                 (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
     }
@@ -190,7 +190,7 @@
     @Test
     public void oneBeforeStateChangeListenerFalseAndResume() {
         final String token = confBeforeStateChangeListeners(false, true);
-        stateManager.onHistoryChanged(token);
+        stateManager.processHistoryToken(token);
         Mockito.verify(history, Mockito.never()).newItem(token);
         removeBeforeStateChangeListener();
         stateManager.resumeTokenChange();
@@ -200,7 +200,7 @@
     @SuppressWarnings("unchecked")
     @Test
     public void oneBeforeStateChangeListenerReturnFalse() {
-        stateManager.onHistoryChanged(confBeforeStateChangeListeners(true, false));
+        stateManager.processHistoryToken(confBeforeStateChangeListeners(true, false));
         Mockito.verify(contentProvider, Mockito.never()).getContent(Mockito.anyString(),
                 (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
     }
@@ -208,7 +208,7 @@
     @SuppressWarnings("unchecked")
     @Test
     public void oneBeforeStateChangeListenerReturnFalseWithTwo() {
-        stateManager.onHistoryChanged(confBeforeStateChangeListeners(false, false));
+        stateManager.processHistoryToken(confBeforeStateChangeListeners(false, false));
         Mockito.verify(contentProvider, Mockito.never()).getContent(Mockito.anyString(),
                 (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
     }
@@ -216,7 +216,7 @@
     @SuppressWarnings("unchecked")
     @Test
     public void oneBeforeStateChangeListenerReturnTrue() {
-        stateManager.onHistoryChanged(confBeforeStateChangeListeners(true, true));
+        stateManager.processHistoryToken(confBeforeStateChangeListeners(true, true));
         Mockito.verify(contentProvider, Mockito.times(1)).getContent(Mockito.anyString(),
                 (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
     }
@@ -232,7 +232,7 @@
         final HistoryTokenCallback listener = Mockito.mock(HistoryTokenCallback.class);
         final String token = SiteTokens.SIGNIN;
         stateManager.addSiteToken(token, listener);
-        stateManager.onHistoryChanged(token);
+        stateManager.processHistoryToken(token);
         Mockito.verify(listener, Mockito.times(1)).onHistoryToken();
         Mockito.verify(contentProvider, Mockito.times(1)).getContent(Mockito.anyString(),
                 (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
@@ -242,7 +242,7 @@
     public void siteTokenTest() {
         final HistoryTokenCallback siteTokenListener = Mockito.mock(HistoryTokenCallback.class);
         stateManager.addSiteToken("signin", siteTokenListener);
-        stateManager.onHistoryChanged("signIn");
+        stateManager.processHistoryToken("signIn");
         Mockito.verify(siteTokenListener, Mockito.times(1)).onHistoryToken();
     }
 }

Modified: trunk/src/test/java/cc/kune/core/client/state/TokenMatcherTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/client/state/TokenMatcherTest.java	2011-04-03 10:41:33 UTC (rev 1302)
+++ trunk/src/test/java/cc/kune/core/client/state/TokenMatcherTest.java	2011-04-03 22:48:05 UTC (rev 1303)
@@ -17,6 +17,8 @@
     private static final String REDIRECT_LINK = "example.com/w+jsdKixyHhZA";
     private static final String SIGNIN_TOKEN = "signin";
     private static final String SIGNIN_TOKEN_WITH_REDIRECT = SIGNIN_TOKEN + "(" + REDIRECT_LINK + ")";
+    private static final String SIGNIN_TOKEN_WITH_REDIRECT_TO_PREVIEW = SIGNIN_TOKEN + "(" + SiteTokens.PREVIEW + "("
+            + REDIRECT_LINK + "))";
     private static final String WAVE_TOKEN_SAMPLE1 = "example.com/w+abcd";
     private static final String WAVE_TOKEN_SAMPLE2 = "example.com/w+abcd/~/conv+root";
     private static final String WAVE_TOKEN_SAMPLE3 = "example.com/w+abcd/~/conv+root/b+45kg";
@@ -81,6 +83,17 @@
     }
 
     @Test
+    public void shouldExtractRedirectInSignPreview() {
+        assertTrue(tokenMatcher.hasRedirect(SIGNIN_TOKEN_WITH_REDIRECT_TO_PREVIEW));
+        assertEquals(
+                "Expected " + SIGNIN_TOKEN + " but: "
+                        + tokenMatcher.getRedirect(SIGNIN_TOKEN_WITH_REDIRECT_TO_PREVIEW).getLeft(), SIGNIN_TOKEN,
+                tokenMatcher.getRedirect(SIGNIN_TOKEN_WITH_REDIRECT_TO_PREVIEW).getLeft());
+        // assertEquals(REDIRECT_LINK,
+        // tokenMatcher.getRedirect(SIGNIN_TOKEN_WITH_REDIRECT).getRight());
+    }
+
+    @Test
     public void shoulMatchCompleteToken() {
         matchGroupToken(GROUP_TOKEN);
         dontMatchWaveToken(GROUP_TOKEN);




More information about the kune-commits mailing list