[kune-commits] r1052 - in trunk: . src/main/java/org/ourproject/kune/app/client src/main/java/org/ourproject/kune/app/server src/main/java/org/ourproject/kune/blogs/client src/main/java/org/ourproject/kune/blogs/client/cnt src/main/java/org/ourproject/kune/chat/client src/main/java/org/ourproject/kune/chat/client/cnt src/main/java/org/ourproject/kune/docs/client src/main/java/org/ourproject/kune/docs/client/cnt src/main/java/org/ourproject/kune/gallery/client src/main/java/org/ourproject/kune/gallery/client/cnt src/main/java/org/ourproject/kune/platf src/main/java/org/ourproject/kune/platf/client src/main/java/org/ourproject/kune/platf/client/actions src/main/java/org/ourproject/kune/platf/client/actions/toolbar src/main/java/org/ourproject/kune/platf/client/rpc src/main/java/org/ourproject/kune/platf/client/services src/main/java/org/ourproject/kune/platf/client/state src/main/java/org/ourproject/kune/platf/client/ui/rte src/main/java/org/ourproject/kune/platf/client/ui/rte/img src/main/java/org/ourproject/kune/platf/client/ui/rte/impl src/main/java/org/ourproject/kune/platf/client/ui/upload src/main/java/org/ourproject/kune/platf/server src/main/java/org/ourproject/kune/platf/server/content src/main/java/org/ourproject/kune/platf/server/rpc src/main/java/org/ourproject/kune/wiki/client src/main/java/org/ourproject/kune/wiki/client/cnt src/main/java/org/ourproject/kune/workspace/client src/main/java/org/ourproject/kune/workspace/client/ctxnav src/main/java/org/ourproject/kune/workspace/client/editor src/main/java/org/ourproject/kune/workspace/client/i18n src/main/java/org/ourproject/kune/workspace/client/newgroup src/main/java/org/ourproject/kune/workspace/client/options/logo src/main/java/org/ourproject/kune/workspace/client/signin src/main/java/org/ourproject/kune/workspace/client/site src/main/java/org/ourproject/kune/workspace/client/site/rpc src/main/java/org/ourproject/kune/workspace/client/sitebar/sitenewgroup src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions src/main/java/org/ourproject/kune/workspace/client/sitebar/sitepublic src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu src/main/java/org/ourproject/kune/workspace/client/socialnet src/main/java/org/ourproject/kune/workspace/client/themes src/main/java/org/ourproject/kune/workspace/client/title src/test/java/org/ourproject/kune/platf/client/state src/test/java/org/ourproject/kune/platf/integration src/test/java/org/ourproject/kune/platf/integration/content src/test/java/org/ourproject/kune/platf/integration/selenium src/test/java/org/ourproject/kune/platf/integration/site src/test/java/org/ourproject/kune/workspace/client/editor

vjrj vjrj at ourproject.org
Thu Feb 26 02:46:16 CET 2009


Author: vjrj
Date: 2009-02-26 02:46:09 +0100 (Thu, 26 Feb 2009)
New Revision: 1052

Added:
   trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionPressedCondition.java
   trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarPushButtonDescriptor.java
   trunk/src/main/java/org/ourproject/kune/platf/client/i18n/
   trunk/src/main/java/org/ourproject/kune/platf/client/rpc/UserService.java
   trunk/src/main/java/org/ourproject/kune/platf/client/rpc/UserServiceAsync.java
   trunk/src/main/java/org/ourproject/kune/platf/client/services/I18nChangeListener.java
   trunk/src/main/java/org/ourproject/kune/platf/client/services/I18nChangeListenerCollection.java
   trunk/src/main/java/org/ourproject/kune/platf/client/services/I18nUITranslationService.java
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/TestRTEDialog.java
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/RTEImgResources.java
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/alignleft.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/alignright.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/backcolor.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/bold.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/centerpara.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/charfontname.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/decrementindent.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/defaultbullet.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/defaultnumbering.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/edithtml.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/fontcolor.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/fontheight.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/hfixedline.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/images.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/incrementindent.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/italic.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/link.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/link_break.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/removeFormat.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/rteimg.css
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/strikeout.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/subscript.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/superscript.png
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/underline.png
   trunk/src/main/java/org/ourproject/kune/workspace/client/KuneRegistryModule.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/KuneWorkspaceModule.java
Removed:
   trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
   trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneRegistryModule.java
   trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nChangeListener.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nChangeListenerCollection.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nUITranslationService.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/site/rpc/UserService.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/site/rpc/UserServiceAsync.java
Modified:
   trunk/TODO
   trunk/pom.xml
   trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java
   trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java
   trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java
   trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java
   trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java
   trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPresenter.java
   trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java
   trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java
   trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatRoomPresenter.java
   trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
   trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
   trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java
   trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerPresenter.java
   trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java
   trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java
   trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java
   trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java
   trunk/src/main/java/org/ourproject/kune/platf/Kune-Platform.gwt.xml
   trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java
   trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java
   trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java
   trunk/src/main/java/org/ourproject/kune/platf/client/services/KunePlatformModule.java
   trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java
   trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/RTEditor.java
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/RTEditorPanel.java
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/RTEditorPresenter.java
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/RTEditorView.java
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/RichTextArea.java
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/impl/RichTextAreaImplStandard.java
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java
   trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java
   trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java
   trunk/src/main/java/org/ourproject/kune/platf/server/rpc/UserRPC.java
   trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java
   trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java
   trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java
   trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterForm.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPanel.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/site/Site.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitenewgroup/SiteNewGroupLinkPanel.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPanel.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitepublic/SitePublicSpaceLinkPanel.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignInLinkPanel.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPanel.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPanel.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePanel.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntitySubTitlePresenter.java
   trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java
   trunk/src/test/java/org/ourproject/kune/platf/integration/IntegrationTest.java
   trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceIntegrationTest.java
   trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java
   trunk/src/test/java/org/ourproject/kune/platf/integration/site/UserServiceTest.java
   trunk/src/test/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenterTest.java
Log:
Incomplete - task Better RTE (Rich Text Editor) support

Code reorganization


Modified: trunk/TODO
===================================================================
--- trunk/TODO	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/TODO	2009-02-26 01:46:09 UTC (rev 1052)
@@ -10,6 +10,9 @@
    Use org-mode in emacs to easy manage this file
 
 * SHORT-TERM (URGENT)
+** vjrj <v> GWT 1.6
+   http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/3e7e6cc3b35ad98a
+   http://code.google.com/p/google-web-toolkit/wiki/WAR_Design_1_6
 ** TODO <v> User preferences storing
    (See also variables in 'Styling braimstorming')
    We need a way to store (in db) User preferences (like emite chat configurations) in a extensible way.
@@ -90,7 +93,7 @@
       - youtube videos
     + Edit HTML
     + Easy extensible for new actions
-    + Try to be a reusable module (like emite)
+    + Try (yes, only try) to be a reusable module (like emite)
     + autosave on/off
 *** Charactericts 
     + Builded over gwt RTE (or any similar RTE) and based in gwt mouse/keyboard events
@@ -127,6 +130,7 @@
 *** Links
    http://www.ongwt.com/post/2009/01/08/XWiki-:-Wysiwyg-editor-based-on-GWT
    http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/samples/internet/ie55/EditRegions/default.asp
+   http://www.mozilla.org/editor/midas-spec.html
    http://mozilla.org/editor/midasdemo/
 ** vjrj <v> rails group-shortname.kune-site-domain/tool-name/folder-id/doc-id routing, maybe use:
    http://agilewebdevelopment.com/plugins/request_routing
@@ -457,10 +461,11 @@
    other links:
    http://groups.google.com/group/rocket-gwt/browse_frm/thread/e56540d4168479c0/d25dca75958ba923?hl=en-GB&lnk=gst&q=Range#d25dca75958ba923
    http://code.google.com/p/gwt-html-editor/source/browse/branches/gwt1.4/src/com/gc/gwt/wysiwyg/public/fckeditor/editor/_source/classes/fckdomrange_ie.js?r=81
+** <v> P2P downloads for bigg uploads (the server acts as seeder).
 * LONG-TERM
 ** <s> integrate some blog/wiki converter:
    http://code.google.com/p/google-blog-converters-appengine/
    http://toolserver.org/~merphant/wiki2html/
 * IDEAS
 ** <d> Try to find a way dozer maps directly without use getters/setters (less js code and better performance)
- 
+

Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/pom.xml	2009-02-26 01:46:09 UTC (rev 1052)
@@ -39,6 +39,11 @@
     </dependency>
     <dependency>
       <groupId>com.google.gwt</groupId>
+      <artifactId>gwt-incubator</artifactId>
+      <version>1.5</version>
+    </dependency>
+    <dependency>
+      <groupId>com.google.gwt</groupId>
       <artifactId>gwt-servlet</artifactId>
       <version>1.5.3</version>
     </dependency>

Modified: trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -24,11 +24,10 @@
 import org.ourproject.kune.docs.client.DocumentClientModule;
 import org.ourproject.kune.gallery.client.GalleryClientModule;
 import org.ourproject.kune.platf.client.services.KuneCoreModule;
-import org.ourproject.kune.platf.client.services.KuneModule;
 import org.ourproject.kune.platf.client.services.KunePlatformModule;
-import org.ourproject.kune.platf.client.services.KuneRegistryModule;
-import org.ourproject.kune.platf.client.services.KuneWorkspaceModule;
 import org.ourproject.kune.wiki.client.WikiClientModule;
+import org.ourproject.kune.workspace.client.KuneRegistryModule;
+import org.ourproject.kune.workspace.client.KuneWorkspaceModule;
 import org.ourproject.kune.workspace.client.hello.HelloWorldModule;
 
 import com.allen_sauer.gwt.log.client.Log;
@@ -64,9 +63,9 @@
     }
 
     public void onModuleLoadCont() {
-        Suco.install(new KuneCoreModule(), new KuneRegistryModule(), new KunePlatformModule(),
-                new KuneWorkspaceModule(), new EmiteUIModule(), new DocumentClientModule(), new BlogClientModule(),
-                new WikiClientModule(), new GalleryClientModule(), new ChatClientModule(), new KuneModule());
+        Suco.install(new KuneCoreModule(), new KuneRegistryModule(), new KunePlatformModule(), new EmiteUIModule(),
+                new DocumentClientModule(), new BlogClientModule(), new WikiClientModule(), new GalleryClientModule(),
+                new ChatClientModule(), new KuneWorkspaceModule());
 
         // We install our HelloWorldModule
         Suco.install(new HelloWorldModule());

Modified: trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -28,6 +28,7 @@
 import org.ourproject.kune.platf.client.rpc.I18nService;
 import org.ourproject.kune.platf.client.rpc.SiteService;
 import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
+import org.ourproject.kune.platf.client.rpc.UserService;
 import org.ourproject.kune.platf.server.LoggerMethodInterceptor;
 import org.ourproject.kune.platf.server.PlatformServerModule;
 import org.ourproject.kune.platf.server.manager.file.EntityLogoDownloadManager;
@@ -48,7 +49,6 @@
 import org.ourproject.kune.rack.filters.RedirectFilter;
 import org.ourproject.kune.rack.filters.rest.RESTServicesModule;
 import org.ourproject.kune.wiki.server.WikiServerModule;
-import org.ourproject.kune.workspace.client.site.rpc.UserService;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Module;

Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -29,6 +29,7 @@
 import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
 import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
 import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.services.KuneErrorHandler;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
@@ -40,7 +41,6 @@
 import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
 import org.ourproject.kune.workspace.client.editor.TextEditor;
 import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
 
 import com.calclab.suco.client.ioc.Provider;

Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -37,6 +37,7 @@
 import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
 import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
 import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.services.KuneErrorHandler;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
@@ -48,7 +49,6 @@
 import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
 import org.ourproject.kune.workspace.client.editor.TextEditor;
 import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 import org.ourproject.kune.workspace.client.themes.WsThemePresenter;

Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -20,9 +20,9 @@
 package org.ourproject.kune.blogs.client;
 
 import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.tool.FoldableAbstractClientTool;
 import org.ourproject.kune.platf.client.tool.ToolSelector;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
 

Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPresenter.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPresenter.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -23,11 +23,11 @@
 import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
 import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
 import org.ourproject.kune.platf.client.dto.StateContentDTO;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
 import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
 import org.ourproject.kune.workspace.client.cnt.FoldableContentPresenter;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 
 import com.calclab.suco.client.ioc.Provider;
 

Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -32,9 +32,9 @@
 import org.ourproject.kune.platf.client.dto.AccessRolDTO;
 import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
 import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.wiki.client.WikiClientTool;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 
 import com.calclab.suco.client.events.Listener;
 import com.calclab.suco.client.ioc.Provider;

Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -35,12 +35,12 @@
 import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
 import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
 import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
 import org.ourproject.kune.platf.client.tool.ToolSelector;
 import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
 import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
 

Modified: trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatRoomPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatRoomPresenter.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatRoomPresenter.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -24,11 +24,11 @@
 import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
 import org.ourproject.kune.platf.client.dto.StateContainerDTO;
 import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
 import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
 import org.ourproject.kune.workspace.client.cnt.FoldableContentPresenter;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.site.Site;
 
 import com.calclab.suco.client.ioc.Provider;

Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -29,6 +29,7 @@
 import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
 import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
 import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.services.KuneErrorHandler;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
@@ -40,7 +41,6 @@
 import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
 import org.ourproject.kune.workspace.client.editor.TextEditor;
 import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
 
 import com.calclab.suco.client.ioc.Provider;

Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -37,6 +37,7 @@
 import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
 import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
 import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.services.KuneErrorHandler;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
@@ -48,7 +49,6 @@
 import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
 import org.ourproject.kune.workspace.client.editor.TextEditor;
 import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 import org.ourproject.kune.workspace.client.themes.WsThemePresenter;

Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -20,9 +20,9 @@
 package org.ourproject.kune.docs.client;
 
 import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.tool.FoldableAbstractClientTool;
 import org.ourproject.kune.platf.client.tool.ToolSelector;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
 

Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerPresenter.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerPresenter.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -23,11 +23,11 @@
 import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
 import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
 import org.ourproject.kune.platf.client.dto.StateContentDTO;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
 import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
 import org.ourproject.kune.workspace.client.cnt.FoldableContentPresenter;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 
 import com.calclab.suco.client.ioc.Provider;
 

Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -28,6 +28,7 @@
 import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
 import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
 import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.services.KuneErrorHandler;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
@@ -39,7 +40,6 @@
 import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
 import org.ourproject.kune.workspace.client.editor.TextEditor;
 import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
 
 import com.calclab.suco.client.ioc.Provider;

Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -37,6 +37,7 @@
 import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
 import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
 import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.services.KuneErrorHandler;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
@@ -48,7 +49,6 @@
 import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
 import org.ourproject.kune.workspace.client.editor.TextEditor;
 import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 import org.ourproject.kune.workspace.client.themes.WsThemePresenter;

Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -20,9 +20,9 @@
 package org.ourproject.kune.gallery.client;
 
 import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.tool.FoldableAbstractClientTool;
 import org.ourproject.kune.platf.client.tool.ToolSelector;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
 

Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -23,11 +23,11 @@
 import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
 import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
 import org.ourproject.kune.platf.client.dto.StateContentDTO;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
 import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
 import org.ourproject.kune.workspace.client.cnt.FoldableContentPresenter;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 
 import com.calclab.suco.client.ioc.Provider;
 

Modified: trunk/src/main/java/org/ourproject/kune/platf/Kune-Platform.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/Kune-Platform.gwt.xml	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/Kune-Platform.gwt.xml	2009-02-26 01:46:09 UTC (rev 1052)
@@ -5,6 +5,10 @@
   <inherits name='com.google.gwt.i18n.I18N' />
   <inherits name="com.google.gwt.user.UserAgent" />
   <inherits name="org.ourproject.kune.platf.RichText" />
+
+  <inherits name="com.google.gwt.libideas.ImmutableResources" />
+  <inherits name="com.google.gwt.libideas.StyleInjector" />
+
   <public path="public" />
 
 </module>

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -33,6 +33,9 @@
     /** The icon url. */
     private String iconUrl;
 
+    /** The icon cls. */
+    private String iconCls;
+
     /** The icon descriptor. */
     private ImageDescriptor iconDescriptor;
 
@@ -184,6 +187,10 @@
         return confirmationTitle;
     }
 
+    public String getIconCls() {
+        return iconCls;
+    }
+
     /**
      * Gets the icon descriptor.
      * 
@@ -313,6 +320,10 @@
         this.enableCondition = enableCondition;
     }
 
+    public void setIconCls(String iconCls) {
+        this.iconCls = iconCls;
+    }
+
     /**
      * Sets the icon descriptor.
      * 

Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionPressedCondition.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionPressedCondition.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionPressedCondition.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -0,0 +1,5 @@
+package org.ourproject.kune.platf.client.actions;
+
+public interface ActionPressedCondition<T> {
+    boolean mustBePressed(T param);
+}

Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarPushButtonDescriptor.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarPushButtonDescriptor.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarPushButtonDescriptor.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -0,0 +1,54 @@
+package org.ourproject.kune.platf.client.actions;
+
+import org.ourproject.kune.platf.client.dto.AccessRolDTO;
+
+import com.calclab.suco.client.events.Listener;
+import com.calclab.suco.client.events.Listener0;
+
+public class ActionToolbarPushButtonDescriptor<T> extends ActionToolbarButtonDescriptor<T> {
+
+    ActionPressedCondition<T> mustInitialyPressed;
+
+    public ActionToolbarPushButtonDescriptor(final AccessRolDTO accessRolDTO,
+            final ActionToolbarPosition actionToolbarPosition, final Listener<T> onPerformCall) {
+        super(accessRolDTO, actionToolbarPosition, onPerformCall);
+    }
+
+    public ActionToolbarPushButtonDescriptor(final AccessRolDTO accessRolDTO,
+            final ActionToolbarPosition actionToolbarPosition, final Listener<T> onPerformCall,
+            final ActionAddCondition<T> addCondition) {
+        super(accessRolDTO, actionToolbarPosition, onPerformCall, addCondition);
+    }
+
+    public ActionToolbarPushButtonDescriptor(final AccessRolDTO accessRolDTO,
+            final ActionToolbarPosition actionToolbarPosition, final Listener<T> onPerformCall,
+            final ActionEnableCondition<T> enableCondition) {
+        super(accessRolDTO, actionToolbarPosition, onPerformCall, enableCondition);
+    }
+
+    public ActionToolbarPushButtonDescriptor(final AccessRolDTO accessRolDTO,
+            final ActionToolbarPosition actionToolbarPosition, final Listener0 onPerformCall) {
+        super(accessRolDTO, actionToolbarPosition, onPerformCall);
+    }
+
+    public ActionToolbarPushButtonDescriptor(final AccessRolDTO accessRolDTO,
+            final ActionToolbarPosition actionToolbarPosition, final Listener0 onPerformCall,
+            final ActionAddCondition<T> addCondition) {
+        super(accessRolDTO, actionToolbarPosition, onPerformCall, addCondition);
+    }
+
+    public ActionToolbarPushButtonDescriptor(final AccessRolDTO accessRolDTO,
+            final ActionToolbarPosition actionToolbarPosition, final Listener0 onPerformCall,
+            final ActionEnableCondition<T> enableCondition) {
+        super(accessRolDTO, actionToolbarPosition, onPerformCall, enableCondition);
+    }
+
+    public ActionPressedCondition<T> getMustInitialyPressed() {
+        return mustInitialyPressed;
+    }
+
+    public void setMustInitialyPressed(ActionPressedCondition<T> mustInitialyPressed) {
+        this.mustInitialyPressed = mustInitialyPressed;
+    }
+
+}

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -31,6 +31,7 @@
 import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor;
 import org.ourproject.kune.platf.client.actions.ActionToolbarMenuRadioDescriptor;
 import org.ourproject.kune.platf.client.actions.ActionToolbarPosition;
+import org.ourproject.kune.platf.client.actions.ActionToolbarPushButtonDescriptor;
 import org.ourproject.kune.workspace.client.skel.SimpleToolbar;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 
@@ -73,17 +74,24 @@
 
     public void addButtonAction(final ActionItem<T> actionItem, final boolean enable) {
         final ActionToolbarButtonDescriptor<T> action = (ActionToolbarButtonDescriptor<T>) actionItem.getAction();
+        T item = actionItem.getItem();
         final ActionToolbarPosition pos = action.getActionPosition();
         final ToolbarButton button = new ToolbarButton();
         final String text = action.getText();
+        final String id = action.getId();
         final String iconUrl = action.getIconUrl();
+        final String iconCls = action.getIconCls();
         if (text != null) {
             button.setText(text);
         }
-        final String id = action.getId();
         if (id != null) {
             button.setId(id);
         }
+        if (action instanceof ActionToolbarPushButtonDescriptor) {
+            button.setEnableToggle(true);
+            button.setPressed(((ActionToolbarPushButtonDescriptor<T>) action).getMustInitialyPressed().mustBePressed(
+                    item));
+        }
         button.addListener(new ButtonListenerAdapter() {
             @Override
             public void onClick(final Button button, final EventObject e) {
@@ -93,6 +101,9 @@
         if (iconUrl != null) {
             button.setIcon(iconUrl);
         }
+        if (iconCls != null) {
+            button.setIconCls(iconCls);
+        }
         button.setTooltip(action.getToolTip());
 
         setEnableButton(button, enable);
@@ -204,7 +215,12 @@
             }
         };
         item.addListener(clickListener);
-        item.setIcon(action.getIconUrl());
+        if (action.getIconCls() != null) {
+            item.setIconCls(action.getIconCls());
+        }
+        if (action.getIconUrl() != null) {
+            item.setIcon(action.getIconUrl());
+        }
         // ToolTip tip = new ToolTip();
         // tip.setHtml(action.getToolTip());
         // tip.setShowDelay(5000);

Copied: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/UserService.java (from rev 1044, trunk/src/main/java/org/ourproject/kune/workspace/client/site/rpc/UserService.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/site/rpc/UserService.java	2009-02-01 14:46:12 UTC (rev 1044)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/UserService.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -0,0 +1,46 @@
+/*
+ *
+ * Copyright (C) 2007-2009 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 org.ourproject.kune.platf.client.rpc;
+
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.dto.UserBuddiesVisibilityDTO;
+import org.ourproject.kune.platf.client.dto.UserDTO;
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+import org.ourproject.kune.platf.client.errors.DefaultException;
+
+import com.google.gwt.user.client.rpc.RemoteService;
+
+public interface UserService extends RemoteService {
+
+    UserInfoDTO createUser(UserDTO user, boolean wantPersonalHomepage) throws DefaultException;
+
+    String getUserAvatarBaser64(String userHash, StateToken userToken) throws DefaultException;
+
+    UserInfoDTO login(String nickOrEmail, String passwd) throws DefaultException;
+
+    void logout(String userHash) throws DefaultException;
+
+    void onlyCheckSession(String userHash) throws DefaultException;
+
+    UserInfoDTO reloadUserInfo(String userHash) throws DefaultException;
+
+    void setBuddiesVisibility(String userHash, StateToken groupToken, UserBuddiesVisibilityDTO visibility);
+
+}

Copied: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/UserServiceAsync.java (from rev 1044, trunk/src/main/java/org/ourproject/kune/workspace/client/site/rpc/UserServiceAsync.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/site/rpc/UserServiceAsync.java	2009-02-01 14:46:12 UTC (rev 1044)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/UserServiceAsync.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -0,0 +1,46 @@
+/*
+ *
+ * Copyright (C) 2007-2009 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 org.ourproject.kune.platf.client.rpc;
+
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.dto.UserBuddiesVisibilityDTO;
+import org.ourproject.kune.platf.client.dto.UserDTO;
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
+public interface UserServiceAsync {
+
+    void createUser(UserDTO user, boolean wantPersonalHomepage, AsyncCallback<UserInfoDTO> asyncCallback);
+
+    void getUserAvatarBaser64(String userHash, StateToken userToken, AsyncCallback<?> asyncCallback);
+
+    void login(String nickOrEmail, String passwd, AsyncCallback<UserInfoDTO> asyncCallback);
+
+    void logout(String userHash, AsyncCallback<?> asyncCallback);
+
+    void onlyCheckSession(String userHash, AsyncCallback<?> asyncCallback);
+
+    void reloadUserInfo(String userHash, AsyncCallback<UserInfoDTO> asyncCallback);
+
+    void setBuddiesVisibility(String userHash, StateToken groupToken, UserBuddiesVisibilityDTO visibility,
+            AsyncCallback<?> asyncCallback);
+
+}

Copied: trunk/src/main/java/org/ourproject/kune/platf/client/services/I18nChangeListener.java (from rev 1044, trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nChangeListener.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nChangeListener.java	2009-02-01 14:46:12 UTC (rev 1044)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/I18nChangeListener.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -0,0 +1,27 @@
+/*
+ *
+ * Copyright (C) 2007-2009 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 org.ourproject.kune.platf.client.services;
+
+import com.google.gwt.user.client.EventListener;
+
+public interface I18nChangeListener extends EventListener {
+
+    void onI18nLanguageChange();
+}

Copied: trunk/src/main/java/org/ourproject/kune/platf/client/services/I18nChangeListenerCollection.java (from rev 1044, trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nChangeListenerCollection.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nChangeListenerCollection.java	2009-02-01 14:46:12 UTC (rev 1044)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/I18nChangeListenerCollection.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -0,0 +1,44 @@
+/*
+ *
+ * Copyright (C) 2007-2009 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 org.ourproject.kune.platf.client.services;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+/**
+ * A helper class for implementers of the SourcesI18nChangeEvents interface.
+ * This subclass of {@link ArrayList} assumes that all objects added to it will
+ * be of type {@link org.ourproject.kune.platf.client.services.I18nChangeListener}.
+ */
+public class I18nChangeListenerCollection extends ArrayList<I18nChangeListener> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * Fires a locale change event to all listeners.
+     * 
+     */
+    public void fireI18nLanguageChange() {
+        for (Iterator<I18nChangeListener> it = iterator(); it.hasNext();) {
+            I18nChangeListener listener = it.next();
+            listener.onI18nLanguageChange();
+        }
+    }
+}

Copied: trunk/src/main/java/org/ourproject/kune/platf/client/services/I18nUITranslationService.java (from rev 1045, trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nUITranslationService.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nUITranslationService.java	2009-02-03 10:15:36 UTC (rev 1045)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/I18nUITranslationService.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -0,0 +1,226 @@
+/*
+ *
+ * Copyright (C) 2007-2009 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 org.ourproject.kune.platf.client.services;
+
+import java.util.Date;
+import java.util.HashMap;
+
+import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
+import org.ourproject.kune.platf.client.rpc.I18nServiceAsync;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.ui.Location;
+import org.ourproject.kune.platf.client.ui.TextUtils;
+import org.ourproject.kune.platf.client.ui.WindowUtils;
+
+import com.allen_sauer.gwt.log.client.Log;
+import com.calclab.suco.client.events.Listener0;
+import com.google.gwt.i18n.client.DateTimeFormat;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
+public class I18nUITranslationService extends I18nTranslationService {
+    private HashMap<String, String> lexicon;
+    private String currentLanguageCode;
+    private I18nChangeListenerCollection i18nChangeListeners;
+    private I18nLanguageDTO currentLang;
+    private I18nServiceAsync i18nService;
+    private Session session;
+
+    /*
+     * If a UI element need to be fired when (for instance) the language changes
+     * use this. Useful if you widget have to take in account text language
+     * direction, for instance.
+     */
+    public void addI18nChangeListener(final I18nChangeListener listener) {
+        if (i18nChangeListeners == null) {
+            i18nChangeListeners = new I18nChangeListenerCollection();
+        }
+        i18nChangeListeners.add(listener);
+    }
+
+    public void changeCurrentLanguage(final String newLanguage) {
+        if (!newLanguage.equals(this.currentLanguageCode)) {
+            setCurrentLanguage(newLanguage);
+            changeLocale(newLanguage);
+        }
+    }
+
+    public String formatDateWithLocale(final Date date) {
+        String dateFormat = currentLang.getDateFormat();
+        final DateTimeFormat fmt;
+        if (dateFormat == null) {
+            fmt = DateTimeFormat.getFormat("M/d/yyyy h:mm a");
+        } else {
+            String abrevMonthInEnglish = DateTimeFormat.getFormat("MMM").format(date);
+            String monthToTranslate = abrevMonthInEnglish + " [%NT abbreviated month]";
+            dateFormat = dateFormat.replaceFirst("MMM", "'" + t(monthToTranslate) + "'");
+            fmt = DateTimeFormat.getFormat(dateFormat + " h:mm a");
+        }
+        String dateFormated = fmt.format(date);
+        return dateFormated;
+    }
+
+    public String getCurrentLanguage() {
+        return currentLanguageCode;
+    }
+
+    public HashMap<String, String> getLexicon() {
+        return lexicon;
+    }
+
+    public void init(final I18nServiceAsync i18nService, final Session session, final Listener0 onReady) {
+        this.i18nService = i18nService;
+        this.session = session;
+        final Location loc = WindowUtils.getLocation();
+        final String locale = loc.getParameter("locale");
+        i18nService.getInitialLanguage(locale, new AsyncCallback<I18nLanguageDTO>() {
+            public void onFailure(final Throwable caught) {
+                Log.error("Workspace adaptation to your language failed");
+            }
+
+            public void onSuccess(final I18nLanguageDTO result) {
+                currentLang = result;
+                currentLanguageCode = currentLang.getCode();
+                session.setCurrentLanguage(currentLang);
+                i18nService.getLexicon(currentLang.getCode(), new AsyncCallback<HashMap<String, String>>() {
+                    public void onFailure(final Throwable caught) {
+                        Log.error("Workspace adaptation to your language failed");
+                    }
+
+                    public void onSuccess(final HashMap<String, String> result) {
+                        lexicon = result;
+                        onReady.onEvent();
+                    }
+                });
+            }
+        });
+    }
+
+    public void removeI18nChangeListener(final I18nChangeListener listener) {
+        if (i18nChangeListeners != null) {
+            i18nChangeListeners.remove(listener);
+        }
+    }
+
+    public void setCurrentLanguage(final String newLanguage) {
+        this.currentLanguageCode = newLanguage;
+    }
+
+    public void setLexicon(final HashMap<String, String> lexicon) {
+        this.lexicon = lexicon;
+        fireI18nLanguageChange();
+    }
+
+    public void setTranslationAfterSave(final String text, final String translation) {
+        lexicon.put(text, translation);
+        fireI18nLanguageChange();
+    }
+
+    /**
+     * In production, this method uses a hashmap. In development, if the text is
+     * not in the hashmap, it makes a server petition (that stores the text
+     * pending for translation in db).
+     * 
+     * Warning: text is escaped as html before insert in the db. Don't use html
+     * here (o user this method with params).
+     * 
+     * @param text
+     * @return text translated in the current language
+     */
+    @Override
+    public String t(final String text) {
+        final String encodeText = TextUtils.escapeHtmlLight(text);
+        String translation = lexicon.get(encodeText);
+        if (lexicon.containsKey(encodeText)) {
+            if (translation == UNTRANSLATED_VALUE) {
+                // Not translated but in db, return text
+                translation = removeNT(encodeText);
+            }
+        } else {
+            // Not translated and not in db, make a petition for translation
+            if (session.isLogged()) {
+                i18nService.getTranslation(session.getUserHash(), currentLanguageCode, text,
+                        new AsyncCallback<String>() {
+                            public void onFailure(final Throwable caught) {
+                            }
+
+                            public void onSuccess(final String result) {
+                            }
+                        });
+                Log.debug("Registering in db '" + text + "' as pending translation");
+                lexicon.put(encodeText, UNTRANSLATED_VALUE);
+            }
+            translation = removeNT(encodeText);
+        }
+        return decodeHtml(translation);
+    }
+
+    /**
+     * 
+     * See in:
+     * http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread
+     * /5e4e25050d3be984/7035ec39354d06aa?lnk=gst&q=get+locale&rnum=23
+     * 
+     * JSNI method to change the locale of the application - it effectively
+     * parses the existing URL and creates a new one for the chosen locale.
+     * 
+     * It additionally launches any JavaScript debugger that might be attached
+     * to the system (Windows only). To disable this functionality just remove
+     * the "debugger" line.
+     * 
+     * @param newLocale
+     *            String value of the new locale to go to.
+     */
+    private native void changeLocale(String newLocale)
+    /*-{
+       // Uncomment the "debugger;" line to see how to set debug statements in JSNI code
+       // When in web mode, if your browser has a JavaScript debugger attached, it will
+       // launch at this point in the code (when the user changes locale through the menu system).
+       // debugger;
+
+       // Get the current location
+       var currLocation = $wnd.location.toString();
+       // Get rid of any GWT History tokens that might be present
+       var noHistoryCurrLocArray = currLocation.split("#");
+       var noHistoryCurrLoc = noHistoryCurrLocArray[0];
+       var currHistory = noHistoryCurrLocArray[1];
+       // Get rid of any locale string
+       var locArray = noHistoryCurrLoc.split("?");
+       // Build the new href location and then send the browser there.
+       // $wnd.location.href = locArray[0]+"?locale="+newLocale+"#"+currHistory;
+       $wnd.location.href = locArray[0]+"?locale="+newLocale
+
+       // extjs part:
+       // commented because the error: "Ext is not defined"
+       // we have to try other way
+       // var head = document.getElementsByTagName("head")[0];
+       // var script = document.createElement('script');
+       // script.id = 'localScript';
+       // script.type = 'text/javascript';
+       // script.src = "js/ext/locale/ext-lang-"+newLocale+".js";
+       // head.appendChild(script);
+       }-*/;
+
+    private void fireI18nLanguageChange() {
+        if (i18nChangeListeners != null) {
+            i18nChangeListeners.fireI18nLanguageChange();
+        }
+    }
+
+}

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -32,7 +32,6 @@
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
 import org.ourproject.kune.workspace.client.site.Site;
-import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 
 import com.allen_sauer.gwt.log.client.Log;
 import com.calclab.suco.client.events.Event0;
@@ -44,15 +43,13 @@
 public class KuneErrorHandler {
     private final Session session;
     private final I18nTranslationService i18n;
-    private final Provider<WorkspaceSkeleton> wsProvider;
     private final Event0 onSessionExpired;
     private final Provider<StateManager> stateManagerProvider;
 
     public KuneErrorHandler(final Session session, final I18nTranslationService i18n,
-            final Provider<WorkspaceSkeleton> wsProvider, final Provider<StateManager> stateManagerProvider) {
+            final Provider<StateManager> stateManagerProvider) {
         this.session = session;
         this.i18n = i18n;
-        this.wsProvider = wsProvider;
         this.stateManagerProvider = stateManagerProvider;
         this.onSessionExpired = new Event0("onSessionExpired");
     }
@@ -62,10 +59,6 @@
         Site.info("Your session has expired. Please log in again.");
     }
 
-    public WorkspaceSkeleton getWorkspaceSkeleton() {
-        return wsProvider.get();
-    }
-
     public void onSessionExpired(final Listener0 listener) {
         onSessionExpired.add(listener);
     }
@@ -107,10 +100,8 @@
             stateManagerProvider.get().gotoToken("");
         } catch (final LastAdminInGroupException e) {
             logException(e);
-            getWorkspaceSkeleton().showAlertMessage(
-                    i18n.t("Warning"),
-                    i18n.t("Sorry, you are the last admin of this group."
-                            + " Look for someone to substitute you appropriately as admin before leaving this group."));
+            Site.showAlertMessage(i18n.t("Warning"), i18n.t("Sorry, you are the last admin of this group."
+                    + " Look for someone to substitute you appropriately as admin before leaving this group."));
         } catch (final AlreadyGroupMemberException e) {
             logException(e);
             Site.error(i18n.t("This group is already a group member"));

Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -1,576 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 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 org.ourproject.kune.platf.client.services;
-
-import org.ourproject.kune.platf.client.actions.ActionManager;
-import org.ourproject.kune.platf.client.actions.ContentIconsRegistry;
-import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionBuddiesSummaryToolbar;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionBuddiesSummaryToolbarPresenter;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionCntCtxToolbarPanel;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbarPresenter;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionContextToolbar;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionContextToolbarPresenter;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionGroupSummaryToolbar;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionGroupSummaryToolbarPresenter;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionParticipationSummaryToolbarPresenter;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionParticipationToolbar;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbar;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPanel;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPresenter;
-import org.ourproject.kune.platf.client.app.Application;
-import org.ourproject.kune.platf.client.app.ApplicationComponentGroup;
-import org.ourproject.kune.platf.client.app.ApplicationDefault;
-import org.ourproject.kune.platf.client.app.HistoryWrapper;
-import org.ourproject.kune.platf.client.app.HistoryWrapperDefault;
-import org.ourproject.kune.platf.client.app.TextEditorInsertElementGroup;
-import org.ourproject.kune.platf.client.app.ToolGroup;
-import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.platf.client.dto.UserSimpleDTO;
-import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.ContentService;
-import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
-import org.ourproject.kune.platf.client.rpc.GroupService;
-import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
-import org.ourproject.kune.platf.client.rpc.I18nService;
-import org.ourproject.kune.platf.client.rpc.I18nServiceAsync;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.state.ContentProvider;
-import org.ourproject.kune.platf.client.state.ContentProviderDefault;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.SessionDefault;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.platf.client.state.StateManagerDefault;
-import org.ourproject.kune.platf.client.tool.ToolSelector;
-import org.ourproject.kune.platf.client.tool.ToolSelectorPresenter;
-import org.ourproject.kune.platf.client.ui.QuickTipsHelper;
-import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
-import org.ourproject.kune.platf.client.ui.palette.ColorWebSafePalette;
-import org.ourproject.kune.platf.client.utils.DeferredCommandWrapper;
-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.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.TextEditor;
-import org.ourproject.kune.workspace.client.editor.TextEditorPanel;
-import org.ourproject.kune.workspace.client.editor.TextEditorPresenter;
-import org.ourproject.kune.workspace.client.editor.insert.TextEditorInsertElement;
-import org.ourproject.kune.workspace.client.editor.insert.TextEditorInsertElementPanel;
-import org.ourproject.kune.workspace.client.editor.insert.TextEditorInsertElementPresenter;
-import org.ourproject.kune.workspace.client.editor.insert.linkemail.TextEditorInsertLinkEmail;
-import org.ourproject.kune.workspace.client.editor.insert.linkemail.TextEditorInsertLinkEmailPanel;
-import org.ourproject.kune.workspace.client.editor.insert.linkemail.TextEditorInsertLinkEmailPresenter;
-import org.ourproject.kune.workspace.client.editor.insert.linkext.TextEditorInsertLinkExt;
-import org.ourproject.kune.workspace.client.editor.insert.linkext.TextEditorInsertLinkExtPanel;
-import org.ourproject.kune.workspace.client.editor.insert.linkext.TextEditorInsertLinkExtPresenter;
-import org.ourproject.kune.workspace.client.editor.insert.linkext.TextEditorInsertLinkExtView;
-import org.ourproject.kune.workspace.client.editor.insert.linklocal.TextEditorInsertLinkLocal;
-import org.ourproject.kune.workspace.client.editor.insert.linklocal.TextEditorInsertLinkLocalPanel;
-import org.ourproject.kune.workspace.client.editor.insert.linklocal.TextEditorInsertLinkLocalPresenter;
-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.I18nUITranslationService;
-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.LicenseWizard;
-import org.ourproject.kune.workspace.client.newgroup.NewGroup;
-import org.ourproject.kune.workspace.client.newgroup.NewGroupPanel;
-import org.ourproject.kune.workspace.client.newgroup.NewGroupPresenter;
-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.signin.Register;
-import org.ourproject.kune.workspace.client.signin.RegisterPanel;
-import org.ourproject.kune.workspace.client.signin.RegisterPresenter;
-import org.ourproject.kune.workspace.client.signin.RegisterView;
-import org.ourproject.kune.workspace.client.signin.SignIn;
-import org.ourproject.kune.workspace.client.signin.SignInPanel;
-import org.ourproject.kune.workspace.client.signin.SignInPresenter;
-import org.ourproject.kune.workspace.client.signin.SignInView;
-import org.ourproject.kune.workspace.client.site.Site;
-import org.ourproject.kune.workspace.client.site.SiteToken;
-import org.ourproject.kune.workspace.client.site.rpc.UserService;
-import org.ourproject.kune.workspace.client.site.rpc.UserServiceAsync;
-import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignOutLink;
-import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.tags.TagsSummary;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
-import org.ourproject.kune.workspace.client.title.EntitySubTitle;
-import org.ourproject.kune.workspace.client.title.RenameAction;
-
-import com.calclab.suco.client.events.Listener0;
-import com.calclab.suco.client.ioc.decorator.NoDecoration;
-import com.calclab.suco.client.ioc.decorator.Singleton;
-import com.calclab.suco.client.ioc.module.AbstractModule;
-import com.calclab.suco.client.ioc.module.Factory;
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.Cookies;
-import com.google.gwt.user.client.History;
-import com.google.gwt.user.client.rpc.ServiceDefTarget;
-
-public class KuneModule extends AbstractModule {
-
-    @Override
-    public void onInstall() {
-        register(Singleton.class, new Factory<Session>(Session.class) {
-            @Override
-            public Session create() {
-                return new SessionDefault(Cookies.getCookie(Site.USERHASH), $$(UserServiceAsync.class));
-            }
-        }, new Factory<I18nServiceAsync>(I18nServiceAsync.class) {
-            @Override
-            public I18nServiceAsync create() {
-                final I18nServiceAsync service = (I18nServiceAsync) GWT.create(I18nService.class);
-                ((ServiceDefTarget) service).setServiceEntryPoint(GWT.getModuleBaseURL() + "I18nService");
-                return service;
-            }
-        }, new Factory<UserServiceAsync>(UserServiceAsync.class) {
-            @Override
-            public UserServiceAsync create() {
-                final UserServiceAsync service = (UserServiceAsync) GWT.create(UserService.class);
-                ((ServiceDefTarget) service).setServiceEntryPoint(GWT.getModuleBaseURL() + "UserService");
-                return service;
-            }
-        }, 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(Singleton.class, new Factory<I18nUITranslationService>(I18nUITranslationService.class) {
-            @Override
-            public I18nUITranslationService create() {
-                final I18nUITranslationService i18n = new I18nUITranslationService();
-                i18n.init($(I18nServiceAsync.class), $(Session.class), new Listener0() {
-                    public void onEvent() {
-                        onI18nReady();
-                    }
-                });
-                return i18n;
-            }
-        });
-
-        register(Singleton.class, new Factory<QuickTipsHelper>(QuickTipsHelper.class) {
-            @Override
-            public QuickTipsHelper create() {
-                return new QuickTipsHelper();
-            }
-        });
-
-        $(I18nUITranslationService.class);
-        $(QuickTipsHelper.class);
-    }
-
-    private void onI18nReady() {
-        final I18nUITranslationService i18n = $(I18nUITranslationService.class);
-
-        if (container.hasProvider(I18nTranslationService.class)) {
-            container.removeProvider(I18nTranslationService.class);
-        }
-
-        register(Singleton.class, new Factory<I18nTranslationService>(I18nTranslationService.class) {
-            @Override
-            public I18nTranslationService create() {
-                return i18n;
-            }
-        });
-
-        register(Singleton.class, new Factory<HistoryWrapper>(HistoryWrapper.class) {
-            @Override
-            public HistoryWrapper create() {
-                return new HistoryWrapperDefault();
-            }
-        }, new Factory<ContentProvider>(ContentProvider.class) {
-            @Override
-            public ContentProvider create() {
-                return new ContentProviderDefault($(ContentServiceAsync.class));
-            }
-        }, new Factory<StateManager>(StateManager.class) {
-            @Override
-            public StateManager create() {
-                final StateManagerDefault stateManager = new StateManagerDefault($(ContentProvider.class),
-                        $(Session.class), $(HistoryWrapper.class));
-                History.addHistoryListener(stateManager);
-                return stateManager;
-            }
-        });
-
-        register(Singleton.class, new Factory<KuneErrorHandler>(KuneErrorHandler.class) {
-            @Override
-            public KuneErrorHandler create() {
-                return new KuneErrorHandler($(Session.class), i18n, $$(WorkspaceSkeleton.class), $$(StateManager.class));
-            }
-        });
-
-        register(Singleton.class, new Factory<Images>(Images.class) {
-            @Override
-            public Images create() {
-                return Images.App.getInstance();
-            }
-        }, new Factory<ImageUtils>(ImageUtils.class) {
-            @Override
-            public ImageUtils create() {
-                return new ImageUtils($(Images.class));
-            }
-        });
-
-        AsyncCallbackSimple.init($(KuneErrorHandler.class));
-
-        register(Singleton.class, new Factory<Application>(Application.class) {
-            @Override
-            public Application create() {
-                return new ApplicationDefault($(Session.class));
-            }
-
-            @Override
-            public void onAfterCreated(final Application instance) {
-            }
-        });
-
-        register(Singleton.class, new Factory<SiteSearcher>(SiteSearcher.class) {
-            @Override
-            public SiteSearcher create() {
-                final SiteSearcherPresenter presenter = new SiteSearcherPresenter($$(StateManager.class));
-                final SiteSearcherView view = new SiteSearcherPanel(presenter, i18n, $(WorkspaceSkeleton.class));
-                presenter.init(view);
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<I18nTranslator>(I18nTranslator.class) {
-            @Override
-            public I18nTranslator create() {
-                final I18nTranslatorPresenter presenter = new I18nTranslatorPresenter($(Session.class),
-                        $(I18nServiceAsync.class), i18n);
-                final I18nTranslatorView view = new I18nTranslatorPanel(presenter, i18n, $(LanguageSelector.class),
-                        $(WorkspaceSkeleton.class), $(Images.class));
-                presenter.init(view);
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<SignIn>(SignIn.class) {
-            @Override
-            public SignIn create() {
-                final SignInPresenter presenter = new SignInPresenter($(Session.class), $(StateManager.class), i18n,
-                        $$(UserServiceAsync.class), $$(Register.class));
-                final SignInView panel = new SignInPanel(presenter, i18n, $(WorkspaceSkeleton.class), $(Images.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<Register>(Register.class) {
-            @Override
-            public Register create() {
-                final RegisterPresenter presenter = new RegisterPresenter($(Session.class), $(StateManager.class),
-                        i18n, $$(UserServiceAsync.class), $$(SignIn.class));
-                final RegisterView panel = new RegisterPanel(presenter, i18n, $(WorkspaceSkeleton.class),
-                        $(Session.class), $(Images.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<NewGroup>(NewGroup.class) {
-            @Override
-            public NewGroup create() {
-                final NewGroupPresenter presenter = new NewGroupPresenter(i18n, $(Session.class),
-                        $(StateManager.class), $$(GroupServiceAsync.class));
-                final NewGroupPanel view = new NewGroupPanel(presenter, i18n, $$(LicenseWizard.class), $(Images.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, i18n,
-                        $(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, i18n,
-                        $(FileDownloadUtils.class));
-                presenter.init(view);
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<ToolSelector>(ToolSelector.class) {
-            @Override
-            public ToolSelector create() {
-                final ToolSelectorPresenter presenter = new ToolSelectorPresenter($(StateManager.class),
-                        $(WsThemePresenter.class));
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<DeferredCommandWrapper>(DeferredCommandWrapper.class) {
-            @Override
-            public DeferredCommandWrapper create() {
-                return new DeferredCommandWrapper();
-            }
-        });
-
-        register(Singleton.class, new Factory<TextEditorInsertElement>(TextEditorInsertElement.class) {
-            @Override
-            public TextEditorInsertElement create() {
-                final TextEditorInsertElementPresenter presenter = new TextEditorInsertElementPresenter();
-                final TextEditorInsertElementPanel panel = new TextEditorInsertElementPanel(presenter,
-                        $(WorkspaceSkeleton.class), $(Images.class), $(I18nTranslationService.class),
-                        $(TextEditorInsertElementGroup.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(TextEditorInsertElementGroup.class, new Factory<TextEditorInsertLinkLocal>(
-                TextEditorInsertLinkLocal.class) {
-            @Override
-            public TextEditorInsertLinkLocal create() {
-                final TextEditorInsertLinkLocalPresenter presenter = new TextEditorInsertLinkLocalPresenter(
-                        $(TextEditorInsertElement.class));
-                final TextEditorInsertLinkLocalPanel panel = new TextEditorInsertLinkLocalPanel(presenter,
-                        $(WorkspaceSkeleton.class), $(I18nTranslationService.class), $(FileDownloadUtils.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(TextEditorInsertElementGroup.class,
-                new Factory<TextEditorInsertLinkExt>(TextEditorInsertLinkExt.class) {
-                    @Override
-                    public TextEditorInsertLinkExt create() {
-                        final TextEditorInsertLinkExtPresenter presenter = new TextEditorInsertLinkExtPresenter(
-                                $(TextEditorInsertElement.class));
-                        final TextEditorInsertLinkExtView panel = new TextEditorInsertLinkExtPanel(presenter,
-                                $(I18nTranslationService.class));
-                        presenter.init(panel);
-                        return presenter;
-                    }
-                });
-
-        register(TextEditorInsertElementGroup.class, new Factory<TextEditorInsertLinkEmail>(
-                TextEditorInsertLinkEmail.class) {
-            @Override
-            public TextEditorInsertLinkEmail create() {
-                final TextEditorInsertLinkEmailPresenter presenter = new TextEditorInsertLinkEmailPresenter(
-                        $(TextEditorInsertElement.class));
-                final TextEditorInsertLinkEmailPanel panel = new TextEditorInsertLinkEmailPanel(presenter,
-                        $(I18nTranslationService.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<TextEditor>(TextEditor.class) {
-            @Override
-            public TextEditor create() {
-                final ActionCntCtxToolbarPanel<StateToken> contentNavigatorToolbar = new ActionCntCtxToolbarPanel<StateToken>(
-                        ActionCntCtxToolbarPanel.Position.content, $$(ActionManager.class), $(WorkspaceSkeleton.class));
-                final ActionToolbar<StateToken> toolbar = new ActionToolbarPresenter<StateToken>(
-                        contentNavigatorToolbar);
-
-                final TextEditorPresenter presenter = new TextEditorPresenter(true, toolbar,
-                        $(I18nUITranslationService.class), $(StateManager.class), $(SiteSignOutLink.class),
-                        $(DeferredCommandWrapper.class));
-                final TextEditorPanel panel = new TextEditorPanel(presenter, $(I18nTranslationService.class),
-                        $(WorkspaceSkeleton.class), $(ColorWebSafePalette.class), $(TextEditorInsertElement.class),
-                        false);
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<LanguageSelector>(LanguageSelector.class) {
-            @Override
-            public LanguageSelector create() {
-                final LanguageSelectorPresenter presenter = new LanguageSelectorPresenter($(Session.class));
-                final LanguageSelectorView view = new LanguageSelectorPanel(presenter, i18n);
-                presenter.init(view);
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<ActionManager>(ActionManager.class) {
-            @Override
-            public ActionManager create() {
-                return new ActionManager($(WorkspaceSkeleton.class));
-            }
-        });
-
-        register(NoDecoration.class, new Factory<ActionContentToolbar>(ActionContentToolbar.class) {
-            @Override
-            public ActionContentToolbar create() {
-                final ActionCntCtxToolbarPanel<StateToken> contentNavigatorToolbar = new ActionCntCtxToolbarPanel<StateToken>(
-                        ActionCntCtxToolbarPanel.Position.content, $$(ActionManager.class), $(WorkspaceSkeleton.class));
-                final ActionContentToolbar toolbar = new ActionContentToolbarPresenter(contentNavigatorToolbar);
-                return toolbar;
-            }
-        });
-
-        register(NoDecoration.class, new Factory<ActionContextToolbar>(ActionContextToolbar.class) {
-            @Override
-            public ActionContextToolbar create() {
-                final ActionCntCtxToolbarPanel<StateToken> contentNavigatorToolbar = new ActionCntCtxToolbarPanel<StateToken>(
-                        ActionCntCtxToolbarPanel.Position.context, $$(ActionManager.class), $(WorkspaceSkeleton.class));
-                final ActionContextToolbar toolbar = new ActionContextToolbarPresenter(contentNavigatorToolbar);
-                return toolbar;
-            }
-        });
-
-        register(Singleton.class, new Factory<ActionGroupSummaryToolbar>(ActionGroupSummaryToolbar.class) {
-            @Override
-            public ActionGroupSummaryToolbar create() {
-                final ActionToolbarPanel<StateToken> panel = new ActionToolbarPanel<StateToken>(
-                        $$(ActionManager.class), $(WorkspaceSkeleton.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>(
-                        $$(ActionManager.class), $(WorkspaceSkeleton.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>(
-                        $$(ActionManager.class), $(WorkspaceSkeleton.class));
-                final ActionBuddiesSummaryToolbarPresenter toolbar = new ActionBuddiesSummaryToolbarPresenter(panel);
-                return toolbar;
-            }
-        });
-
-        register(Singleton.class, new Factory<ContextNavigator>(ContextNavigator.class) {
-            @Override
-            public ContextNavigator create() {
-                final ContextNavigatorPresenter presenter = new ContextNavigatorPresenter($(StateManager.class),
-                        $(Session.class), i18n, $(ContentIconsRegistry.class), $(ContentCapabilitiesRegistry.class),
-                        $(ActionContextToolbar.class), $(ContextActionRegistry.class), $$(FileDownloadUtils.class),
-                        true, $(RenameAction.class));
-                final ContextNavigatorPanel panel = new ContextNavigatorPanel(presenter, i18n,
-                        $(WorkspaceSkeleton.class), $(ActionManager.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<ContextPropEditor>(ContextPropEditor.class) {
-            @Override
-            public ContextPropEditor create() {
-                final ContextPropEditorPresenter presenter = new ContextPropEditorPresenter($(Session.class),
-                        $(StateManager.class), $(ContentCapabilitiesRegistry.class), $$(TagsSummary.class),
-                        $$(ContentServiceAsync.class), $(EntitySubTitle.class));
-                final ContextPropEditorView view = new ContextPropEditorPanel(presenter,
-                        $(I18nUITranslationService.class), $(WorkspaceSkeleton.class), $$(LanguageSelector.class),
-                        $(Images.class));
-                presenter.init(view);
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<FileDownloadUtils>(FileDownloadUtils.class) {
-            @Override
-            public FileDownloadUtils create() {
-                return new FileDownloadUtils($(Session.class), $(ImageUtils.class));
-            }
-        });
-
-        // Register of tokens like "signin", "newgroup", "translate" etcetera
-        $(StateManager.class).addSiteToken(SiteToken.signin.toString(), new Listener0() {
-            public void onEvent() {
-                $(SignIn.class).doSignIn();
-            }
-        });
-
-        $(StateManager.class).addSiteToken(SiteToken.register.toString(), new Listener0() {
-            public void onEvent() {
-                $(Register.class).doRegister();
-            }
-        });
-
-        $(StateManager.class).addSiteToken(SiteToken.newgroup.toString(), new Listener0() {
-            public void onEvent() {
-                $(NewGroup.class).doNewGroup();
-            }
-        });
-
-        $(StateManager.class).addSiteToken(SiteToken.translate.toString(), new Listener0() {
-            public void onEvent() {
-                $(I18nTranslator.class).doShowTranslator();
-            }
-        });
-
-        $(ApplicationComponentGroup.class).createAll();
-        $(ToolGroup.class).createAll();
-        $(Application.class).start();
-        // $(HelloWorld.class);
-    }
-}

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KunePlatformModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KunePlatformModule.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KunePlatformModule.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -20,63 +20,202 @@
 package org.ourproject.kune.platf.client.services;
 
 import org.ourproject.kune.platf.client.actions.ContentEditorActionRegistry;
+import org.ourproject.kune.platf.client.app.Application;
+import org.ourproject.kune.platf.client.app.ApplicationComponentGroup;
+import org.ourproject.kune.platf.client.app.ApplicationDefault;
+import org.ourproject.kune.platf.client.app.HistoryWrapper;
+import org.ourproject.kune.platf.client.app.HistoryWrapperDefault;
+import org.ourproject.kune.platf.client.app.ToolGroup;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
+import org.ourproject.kune.platf.client.rpc.I18nService;
+import org.ourproject.kune.platf.client.rpc.I18nServiceAsync;
+import org.ourproject.kune.platf.client.rpc.UserService;
+import org.ourproject.kune.platf.client.rpc.UserServiceAsync;
+import org.ourproject.kune.platf.client.state.ContentProvider;
+import org.ourproject.kune.platf.client.state.ContentProviderDefault;
 import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.SessionDefault;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.platf.client.state.StateManagerDefault;
+import org.ourproject.kune.platf.client.ui.QuickTipsHelper;
+import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
 import org.ourproject.kune.platf.client.ui.palette.ColorWebSafePalette;
 import org.ourproject.kune.platf.client.ui.palette.ColorWebSafePalettePanel;
 import org.ourproject.kune.platf.client.ui.palette.ColorWebSafePalettePresenter;
 import org.ourproject.kune.platf.client.ui.rte.RTEditor;
 import org.ourproject.kune.platf.client.ui.rte.RTEditorPanel;
 import org.ourproject.kune.platf.client.ui.rte.RTEditorPresenter;
-import org.ourproject.kune.platf.client.ui.upload.FileUploader;
-import org.ourproject.kune.platf.client.ui.upload.FileUploaderDialog;
-import org.ourproject.kune.platf.client.ui.upload.FileUploaderPresenter;
-import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+import org.ourproject.kune.platf.client.ui.rte.img.RTEImgResources;
+import org.ourproject.kune.platf.client.utils.DeferredCommandWrapper;
 
+import com.calclab.suco.client.events.Listener0;
 import com.calclab.suco.client.ioc.decorator.Singleton;
 import com.calclab.suco.client.ioc.module.AbstractModule;
 import com.calclab.suco.client.ioc.module.Factory;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.Cookies;
+import com.google.gwt.user.client.History;
+import com.google.gwt.user.client.rpc.ServiceDefTarget;
 
 public class KunePlatformModule extends AbstractModule {
 
     @Override
     protected void onInstall() {
-        register(Singleton.class, new Factory<ColorWebSafePalette>(ColorWebSafePalette.class) {
+
+        register(Singleton.class, new Factory<Session>(Session.class) {
             @Override
-            public ColorWebSafePalette create() {
-                final ColorWebSafePalettePresenter presenter = new ColorWebSafePalettePresenter();
-                final ColorWebSafePalettePanel panel = new ColorWebSafePalettePanel(presenter);
-                presenter.init(panel);
-                return presenter;
+            public Session create() {
+                return new SessionDefault(Cookies.getCookie(Session.USERHASH), $$(UserServiceAsync.class));
             }
+        }, new Factory<I18nServiceAsync>(I18nServiceAsync.class) {
+            @Override
+            public I18nServiceAsync create() {
+                final I18nServiceAsync service = (I18nServiceAsync) GWT.create(I18nService.class);
+                ((ServiceDefTarget) service).setServiceEntryPoint(GWT.getModuleBaseURL() + "I18nService");
+                return service;
+            }
+        }, new Factory<UserServiceAsync>(UserServiceAsync.class) {
+            @Override
+            public UserServiceAsync create() {
+                final UserServiceAsync service = (UserServiceAsync) GWT.create(UserService.class);
+                ((ServiceDefTarget) service).setServiceEntryPoint(GWT.getModuleBaseURL() + "UserService");
+                return service;
+            }
         });
 
-        register(Singleton.class, new Factory<FileUploader>(FileUploader.class) {
+        register(Singleton.class, new Factory<HistoryWrapper>(HistoryWrapper.class) {
             @Override
-            public FileUploader create() {
-                final FileUploaderPresenter presenter = new FileUploaderPresenter($(Session.class));
-                final FileUploaderDialog panel = new FileUploaderDialog(presenter, $(I18nUITranslationService.class),
-                        $(WorkspaceSkeleton.class));
-                presenter.init(panel);
-                return presenter;
+            public HistoryWrapper create() {
+                return new HistoryWrapperDefault();
             }
+        }, new Factory<ContentProvider>(ContentProvider.class) {
+            @Override
+            public ContentProvider create() {
+                return new ContentProviderDefault($(ContentServiceAsync.class));
+            }
+        }, new Factory<StateManager>(StateManager.class) {
+            @Override
+            public StateManager create() {
+                final StateManagerDefault stateManager = new StateManagerDefault($(ContentProvider.class),
+                        $(Session.class), $(HistoryWrapper.class));
+                History.addHistoryListener(stateManager);
+                return stateManager;
+            }
+        });
 
+        register(Singleton.class, new Factory<I18nUITranslationService>(I18nUITranslationService.class) {
             @Override
-            public void onAfterCreated(FileUploader uploader) {
-                $(ContextNavigator.class).addFileUploaderListener(uploader);
+            public I18nUITranslationService create() {
+                final I18nUITranslationService i18n = new I18nUITranslationService();
+                i18n.init($(I18nServiceAsync.class), $(Session.class), new Listener0() {
+                    public void onEvent() {
+                        onI18nReady();
+                    }
+                });
+                return i18n;
             }
         });
 
+        register(Singleton.class, new Factory<FileDownloadUtils>(FileDownloadUtils.class) {
+            @Override
+            public FileDownloadUtils create() {
+                return new FileDownloadUtils($(Session.class), $(ImageUtils.class));
+            }
+        });
+
+        register(Singleton.class, new Factory<QuickTipsHelper>(QuickTipsHelper.class) {
+            @Override
+            public QuickTipsHelper create() {
+                return new QuickTipsHelper();
+            }
+        });
+
+        $(I18nUITranslationService.class);
+        $(QuickTipsHelper.class);
+
+    }
+
+    private void onI18nReady() {
+        final I18nUITranslationService i18n = $(I18nUITranslationService.class);
+
+        if (container.hasProvider(I18nTranslationService.class)) {
+            container.removeProvider(I18nTranslationService.class);
+        }
+
+        register(Singleton.class, new Factory<I18nTranslationService>(I18nTranslationService.class) {
+            @Override
+            public I18nTranslationService create() {
+                return i18n;
+            }
+        });
+
+        register(Singleton.class, new Factory<KuneErrorHandler>(KuneErrorHandler.class) {
+            @Override
+            public KuneErrorHandler create() {
+                return new KuneErrorHandler($(Session.class), i18n, $$(StateManager.class));
+            }
+        });
+
+        register(Singleton.class, new Factory<Images>(Images.class) {
+            @Override
+            public Images create() {
+                return Images.App.getInstance();
+            }
+        }, new Factory<ImageUtils>(ImageUtils.class) {
+            @Override
+            public ImageUtils create() {
+                return new ImageUtils($(Images.class));
+            }
+        });
+
+        AsyncCallbackSimple.init($(KuneErrorHandler.class));
+
+        register(Singleton.class, new Factory<Application>(Application.class) {
+            @Override
+            public Application create() {
+                return new ApplicationDefault($(Session.class));
+            }
+
+            @Override
+            public void onAfterCreated(final Application instance) {
+            }
+        });
+
+        register(Singleton.class, new Factory<DeferredCommandWrapper>(DeferredCommandWrapper.class) {
+            @Override
+            public DeferredCommandWrapper create() {
+                return new DeferredCommandWrapper();
+            }
+        });
+
+        register(Singleton.class, new Factory<ColorWebSafePalette>(ColorWebSafePalette.class) {
+            @Override
+            public ColorWebSafePalette create() {
+                final ColorWebSafePalettePresenter presenter = new ColorWebSafePalettePresenter();
+                final ColorWebSafePalettePanel panel = new ColorWebSafePalettePanel(presenter);
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
         register(Singleton.class, new Factory<RTEditor>(RTEditor.class) {
             @Override
             public RTEditor create() {
                 final RTEditorPresenter presenter = new RTEditorPresenter($(ContentEditorActionRegistry.class),
-                        $(I18nTranslationService.class), $(Session.class));
+                        $(I18nTranslationService.class), $(Session.class), RTEImgResources.INSTANCE);
                 final RTEditorPanel panel = new RTEditorPanel(presenter, $(I18nUITranslationService.class));
                 presenter.init(panel);
                 return presenter;
             }
         });
+
+        // ew TestRTEDialog($(RTEditor.class));
+
+        $(ApplicationComponentGroup.class).createAll();
+        $(ToolGroup.class).createAll();
+        $(Application.class).start();
+        // $(HelloWorld.class);
+
     }
-}
+}
\ No newline at end of file

Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneRegistryModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneRegistryModule.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneRegistryModule.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -1,220 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 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 org.ourproject.kune.platf.client.services;
-
-import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
-import org.ourproject.kune.platf.client.actions.ContentEditorActionRegistry;
-import org.ourproject.kune.platf.client.actions.ContentIconsRegistry;
-import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
-import org.ourproject.kune.platf.client.actions.GroupActionRegistry;
-import org.ourproject.kune.platf.client.actions.UserActionRegistry;
-import org.ourproject.kune.platf.client.registry.AclEditableRegistry;
-import org.ourproject.kune.platf.client.registry.AuthorableRegistry;
-import org.ourproject.kune.platf.client.registry.CanBeHomepageRegistry;
-import org.ourproject.kune.platf.client.registry.ComentableRegistry;
-import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
-import org.ourproject.kune.platf.client.registry.DragableRegistry;
-import org.ourproject.kune.platf.client.registry.DropableRegistry;
-import org.ourproject.kune.platf.client.registry.EmailSubscribeAbleRegistry;
-import org.ourproject.kune.platf.client.registry.LicensableRegistry;
-import org.ourproject.kune.platf.client.registry.PublishModerableRegistry;
-import org.ourproject.kune.platf.client.registry.RateableRegistry;
-import org.ourproject.kune.platf.client.registry.RenamableRegistry;
-import org.ourproject.kune.platf.client.registry.TageableRegistry;
-import org.ourproject.kune.platf.client.registry.TranslatableRegistry;
-import org.ourproject.kune.platf.client.registry.VersionableRegistry;
-import org.ourproject.kune.platf.client.registry.XmppComentableRegistry;
-import org.ourproject.kune.platf.client.registry.XmppNotifyCapableRegistry;
-
-import com.calclab.suco.client.ioc.decorator.Singleton;
-import com.calclab.suco.client.ioc.module.AbstractModule;
-import com.calclab.suco.client.ioc.module.Factory;
-
-public class KuneRegistryModule extends AbstractModule {
-
-    @Override
-    protected void onInstall() {
-
-        register(Singleton.class, new Factory<AclEditableRegistry>(AclEditableRegistry.class) {
-            @Override
-            public AclEditableRegistry create() {
-                return new AclEditableRegistry();
-            }
-        });
-        register(Singleton.class, new Factory<AuthorableRegistry>(AuthorableRegistry.class) {
-            @Override
-            public AuthorableRegistry create() {
-                return new AuthorableRegistry();
-            }
-        });
-        register(Singleton.class, new Factory<CanBeHomepageRegistry>(CanBeHomepageRegistry.class) {
-            @Override
-            public CanBeHomepageRegistry create() {
-                return new CanBeHomepageRegistry();
-            }
-        });
-
-        register(Singleton.class, new Factory<ComentableRegistry>(ComentableRegistry.class) {
-            @Override
-            public ComentableRegistry create() {
-                return new ComentableRegistry();
-            }
-        });
-
-        register(Singleton.class, new Factory<DragableRegistry>(DragableRegistry.class) {
-            @Override
-            public DragableRegistry create() {
-                return new DragableRegistry();
-            }
-        });
-
-        register(Singleton.class, new Factory<DropableRegistry>(DropableRegistry.class) {
-            @Override
-            public DropableRegistry create() {
-                return new DropableRegistry();
-            }
-        });
-
-        register(Singleton.class, new Factory<EmailSubscribeAbleRegistry>(EmailSubscribeAbleRegistry.class) {
-            @Override
-            public EmailSubscribeAbleRegistry create() {
-                return new EmailSubscribeAbleRegistry();
-            }
-        });
-
-        register(Singleton.class, new Factory<LicensableRegistry>(LicensableRegistry.class) {
-            @Override
-            public LicensableRegistry create() {
-                return new LicensableRegistry();
-            }
-        });
-
-        register(Singleton.class, new Factory<PublishModerableRegistry>(PublishModerableRegistry.class) {
-            @Override
-            public PublishModerableRegistry create() {
-                return new PublishModerableRegistry();
-            }
-        });
-
-        register(Singleton.class, new Factory<RateableRegistry>(RateableRegistry.class) {
-            @Override
-            public RateableRegistry create() {
-                return new RateableRegistry();
-            }
-        });
-
-        register(Singleton.class, new Factory<TageableRegistry>(TageableRegistry.class) {
-            @Override
-            public TageableRegistry create() {
-                return new TageableRegistry();
-            }
-        });
-
-        register(Singleton.class, new Factory<RenamableRegistry>(RenamableRegistry.class) {
-            @Override
-            public RenamableRegistry create() {
-                return new RenamableRegistry();
-            }
-        });
-
-        register(Singleton.class, new Factory<TranslatableRegistry>(TranslatableRegistry.class) {
-            @Override
-            public TranslatableRegistry create() {
-                return new TranslatableRegistry();
-            }
-        });
-
-        register(Singleton.class, new Factory<VersionableRegistry>(VersionableRegistry.class) {
-            @Override
-            public VersionableRegistry create() {
-                return new VersionableRegistry();
-            }
-        });
-
-        register(Singleton.class, new Factory<XmppComentableRegistry>(XmppComentableRegistry.class) {
-            @Override
-            public XmppComentableRegistry create() {
-                return new XmppComentableRegistry();
-            }
-        });
-
-        register(Singleton.class, new Factory<XmppNotifyCapableRegistry>(XmppNotifyCapableRegistry.class) {
-            @Override
-            public XmppNotifyCapableRegistry create() {
-                return new XmppNotifyCapableRegistry();
-            }
-        });
-
-        register(Singleton.class, new Factory<ContentIconsRegistry>(ContentIconsRegistry.class) {
-            @Override
-            public ContentIconsRegistry create() {
-                return new ContentIconsRegistry();
-            }
-        });
-
-        register(Singleton.class, new Factory<ContentCapabilitiesRegistry>(ContentCapabilitiesRegistry.class) {
-            @Override
-            public ContentCapabilitiesRegistry create() {
-                return new ContentCapabilitiesRegistry($(AuthorableRegistry.class), $(AclEditableRegistry.class),
-                        $(ContentIconsRegistry.class), $(CanBeHomepageRegistry.class), $(ComentableRegistry.class),
-                        $(DragableRegistry.class), $(DropableRegistry.class), $(EmailSubscribeAbleRegistry.class),
-                        $(LicensableRegistry.class), $(PublishModerableRegistry.class), $(RateableRegistry.class),
-                        $(TageableRegistry.class), $(RenamableRegistry.class), $(TranslatableRegistry.class),
-                        $(VersionableRegistry.class), $(XmppComentableRegistry.class),
-                        $(XmppNotifyCapableRegistry.class));
-            }
-        });
-
-        register(Singleton.class, new Factory<ContextActionRegistry>(ContextActionRegistry.class) {
-            @Override
-            public ContextActionRegistry create() {
-                return new ContextActionRegistry();
-            }
-        });
-
-        register(Singleton.class, new Factory<ContentEditorActionRegistry>(ContentEditorActionRegistry.class) {
-            @Override
-            public ContentEditorActionRegistry create() {
-                return new ContentEditorActionRegistry();
-            }
-        });
-
-        register(Singleton.class, new Factory<ContentActionRegistry>(ContentActionRegistry.class) {
-            @Override
-            public ContentActionRegistry create() {
-                return new ContentActionRegistry();
-            }
-        });
-
-        register(Singleton.class, new Factory<GroupActionRegistry>(GroupActionRegistry.class) {
-            @Override
-            public GroupActionRegistry create() {
-                return new GroupActionRegistry();
-            }
-        });
-
-        register(Singleton.class, new Factory<UserActionRegistry>(UserActionRegistry.class) {
-            @Override
-            public UserActionRegistry create() {
-                return new UserActionRegistry();
-            }
-        });
-    }
-}

Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -1,581 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 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 org.ourproject.kune.platf.client.services;
-
-import org.ourproject.kune.chat.client.ChatEngine;
-import org.ourproject.kune.platf.client.actions.ActionManager;
-import org.ourproject.kune.platf.client.actions.ContentIconsRegistry;
-import org.ourproject.kune.platf.client.actions.GroupActionRegistry;
-import org.ourproject.kune.platf.client.actions.UserActionRegistry;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionBuddiesSummaryToolbar;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionGroupSummaryToolbar;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionParticipationToolbar;
-import org.ourproject.kune.platf.client.app.ApplicationComponentGroup;
-import org.ourproject.kune.platf.client.app.EntityOptionsGroup;
-import org.ourproject.kune.platf.client.registry.AuthorableRegistry;
-import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
-import org.ourproject.kune.platf.client.registry.RenamableRegistry;
-import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
-import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
-import org.ourproject.kune.platf.client.ui.rate.RateIt;
-import org.ourproject.kune.platf.client.ui.rate.RateItPanel;
-import org.ourproject.kune.platf.client.ui.rate.RateItPresenter;
-import org.ourproject.kune.platf.client.ui.rate.RatePanel;
-import org.ourproject.kune.platf.client.ui.rate.RatePresenter;
-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.I18nUITranslationService;
-import org.ourproject.kune.workspace.client.licensefoot.EntityLicensePanel;
-import org.ourproject.kune.workspace.client.licensefoot.EntityLicensePresenter;
-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.options.EntityOptions;
-import org.ourproject.kune.workspace.client.options.EntityOptionsPanel;
-import org.ourproject.kune.workspace.client.options.EntityOptionsPresenter;
-import org.ourproject.kune.workspace.client.options.license.EntityOptionsDefLicense;
-import org.ourproject.kune.workspace.client.options.license.EntityOptionsDefLicensePanel;
-import org.ourproject.kune.workspace.client.options.license.EntityOptionsDefLicensePresenter;
-import org.ourproject.kune.workspace.client.options.logo.EntityOptionsLogo;
-import org.ourproject.kune.workspace.client.options.logo.EntityOptionsLogoPanel;
-import org.ourproject.kune.workspace.client.options.logo.EntityOptionsLogoPresenter;
-import org.ourproject.kune.workspace.client.options.pscape.EntityOptionsPublicSpaceConf;
-import org.ourproject.kune.workspace.client.options.pscape.EntityOptionsPublicSpaceConfPanel;
-import org.ourproject.kune.workspace.client.options.pscape.EntityOptionsPublicSpaceConfPresenter;
-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.EntityOptionsToolsConfPresenter;
-import org.ourproject.kune.workspace.client.search.GroupLiveSearcher;
-import org.ourproject.kune.workspace.client.search.SiteSearcher;
-import org.ourproject.kune.workspace.client.site.Site;
-import org.ourproject.kune.workspace.client.site.msg.SiteToastMessage;
-import org.ourproject.kune.workspace.client.site.msg.SiteToastMessagePanel;
-import org.ourproject.kune.workspace.client.site.msg.SiteToastMessagePresenter;
-import org.ourproject.kune.workspace.client.site.rpc.UserServiceAsync;
-import org.ourproject.kune.workspace.client.sitebar.sitelogo.SiteLogo;
-import org.ourproject.kune.workspace.client.sitebar.sitelogo.SiteLogoPanel;
-import org.ourproject.kune.workspace.client.sitebar.sitelogo.SiteLogoPresenter;
-import org.ourproject.kune.workspace.client.sitebar.sitenewgroup.SiteNewGroupLink;
-import org.ourproject.kune.workspace.client.sitebar.sitenewgroup.SiteNewGroupLinkPanel;
-import org.ourproject.kune.workspace.client.sitebar.sitenewgroup.SiteNewGroupLinkPresenter;
-import org.ourproject.kune.workspace.client.sitebar.siteoptions.SiteOptions;
-import org.ourproject.kune.workspace.client.sitebar.siteoptions.SiteOptionsPanel;
-import org.ourproject.kune.workspace.client.sitebar.siteoptions.SiteOptionsPresenter;
-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.sitebar.siteusermenu.SiteUserMenu;
-import org.ourproject.kune.workspace.client.sitebar.siteusermenu.SiteUserMenuPanel;
-import org.ourproject.kune.workspace.client.sitebar.siteusermenu.SiteUserMenuPresenter;
-import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.socialnet.BuddiesSummary;
-import org.ourproject.kune.workspace.client.socialnet.BuddiesSummaryPanel;
-import org.ourproject.kune.workspace.client.socialnet.BuddiesSummaryPresenter;
-import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummary;
-import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPanel;
-import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPresenter;
-import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryView;
-import org.ourproject.kune.workspace.client.socialnet.ParticipationSummary;
-import org.ourproject.kune.workspace.client.socialnet.ParticipationSummaryPanel;
-import org.ourproject.kune.workspace.client.socialnet.ParticipationSummaryPresenter;
-import org.ourproject.kune.workspace.client.socialnet.ParticipationSummaryView;
-import org.ourproject.kune.workspace.client.socialnet.other.AddAsBuddie;
-import org.ourproject.kune.workspace.client.socialnet.other.AddAsBuddiePanel;
-import org.ourproject.kune.workspace.client.socialnet.other.AddAsBuddiePresenter;
-import org.ourproject.kune.workspace.client.summary.GroupSummary;
-import org.ourproject.kune.workspace.client.summary.GroupSummaryPanel;
-import org.ourproject.kune.workspace.client.summary.GroupSummaryPresenter;
-import org.ourproject.kune.workspace.client.summary.GroupSummaryView;
-import org.ourproject.kune.workspace.client.tags.TagsSummary;
-import org.ourproject.kune.workspace.client.tags.TagsSummaryPanel;
-import org.ourproject.kune.workspace.client.tags.TagsSummaryPresenter;
-import org.ourproject.kune.workspace.client.themes.WsThemePanel;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
-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 com.calclab.suco.client.ioc.decorator.NoDecoration;
-import com.calclab.suco.client.ioc.decorator.Singleton;
-import com.calclab.suco.client.ioc.module.AbstractModule;
-import com.calclab.suco.client.ioc.module.Factory;
-
-public class KuneWorkspaceModule extends AbstractModule {
-    @Override
-    protected void onInstall() {
-
-        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, $$(SitePublicSpaceLink.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<Site>(Site.class) {
-            @Override
-            public Site create() {
-                return new Site($(I18nUITranslationService.class), $(SiteProgress.class), $$(SiteToastMessage.class));
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<SitePublicSpaceLink>(SitePublicSpaceLink.class) {
-            @Override
-            public SitePublicSpaceLink create() {
-                final SitePublicSpaceLinkPresenter presenter = new SitePublicSpaceLinkPresenter($(StateManager.class));
-                final SitePublicSpaceLinkPanel panel = new SitePublicSpaceLinkPanel(presenter,
-                        $(WorkspaceSkeleton.class), $(I18nUITranslationService.class), $(Images.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(NoDecoration.class, new Factory<SiteToastMessage>(SiteToastMessage.class) {
-            @Override
-            public SiteToastMessage create() {
-                final SiteToastMessagePresenter presenter = new SiteToastMessagePresenter();
-                final SiteToastMessagePanel panel = new SiteToastMessagePanel();
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<SiteUserMenu>(SiteUserMenu.class) {
-            @Override
-            public SiteUserMenu create() {
-                final SiteUserMenuPresenter presenter = new SiteUserMenuPresenter($(Session.class),
-                        $(StateManager.class), $$(EntityOptions.class), $$(FileDownloadUtils.class));
-                final SiteUserMenuPanel panel = new SiteUserMenuPanel(presenter, $(WorkspaceSkeleton.class),
-                        $(I18nUITranslationService.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<SiteSignInLink>(SiteSignInLink.class) {
-            @Override
-            public SiteSignInLink create() {
-                final SiteSignInLinkPresenter presenter = new SiteSignInLinkPresenter($(Session.class));
-                final SiteSignInLinkPanel panel = new SiteSignInLinkPanel(presenter, $(I18nUITranslationService.class),
-                        $(WorkspaceSkeleton.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<SiteSignOutLink>(SiteSignOutLink.class) {
-            @Override
-            public SiteSignOutLink create() {
-                final SiteSignOutLinkPresenter presenter = new SiteSignOutLinkPresenter($(Session.class),
-                        $$(UserServiceAsync.class), $$(KuneErrorHandler.class));
-                final SiteSignOutLinkPanel panel = new SiteSignOutLinkPanel(presenter,
-                        $(I18nUITranslationService.class), $(WorkspaceSkeleton.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<SiteNewGroupLink>(SiteNewGroupLink.class) {
-            @Override
-            public SiteNewGroupLink create() {
-                final SiteNewGroupLinkPresenter presenter = new SiteNewGroupLinkPresenter();
-                final SiteNewGroupLinkPanel panel = new SiteNewGroupLinkPanel(presenter, $(WorkspaceSkeleton.class),
-                        $(I18nUITranslationService.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<SiteOptions>(SiteOptions.class) {
-            @Override
-            public SiteOptions create() {
-                final SiteOptionsPresenter presenter = new SiteOptionsPresenter();
-                final SiteOptionsPanel panel = new SiteOptionsPanel(presenter, $(WorkspaceSkeleton.class),
-                        $(I18nUITranslationService.class), $$(I18nTranslator.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<SiteSearch>(SiteSearch.class) {
-            @Override
-            public SiteSearch create() {
-                final SiteSearchPresenter presenter = new SiteSearchPresenter($$(SiteSearcher.class),
-                        $(I18nTranslationService.class));
-                final SiteSearchPanel panel = new SiteSearchPanel(presenter, $(WorkspaceSkeleton.class),
-                        $(Images.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<SiteLogo>(SiteLogo.class) {
-            @Override
-            public SiteLogo create() {
-                final SiteLogoPresenter presenter = new SiteLogoPresenter($(Session.class));
-                final SiteLogoPanel panel = new SiteLogoPanel(presenter, $(WorkspaceSkeleton.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<EntityHeader>(EntityHeader.class) {
-            @Override
-            public EntityHeader create() {
-                final EntityHeaderPresenter presenter = new EntityHeaderPresenter($(StateManager.class),
-                        $(WsThemePresenter.class), $(Session.class));
-                final EntityHeaderPanel panel = new EntityHeaderPanel($(WorkspaceSkeleton.class),
-                        $$(FileDownloadUtils.class), $(Images.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<WsThemePresenter>(WsThemePresenter.class) {
-            @Override
-            public WsThemePresenter create() {
-                final WsThemePresenter presenter = new WsThemePresenter($(Session.class), $$(GroupServiceAsync.class),
-                        $(StateManager.class));
-                final WsThemePanel panel = new WsThemePanel($(WorkspaceSkeleton.class), presenter,
-                        $(I18nUITranslationService.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<EntityTitle>(EntityTitle.class) {
-            @Override
-            public EntityTitle create() {
-                final EntityTitlePresenter presenter = new EntityTitlePresenter($(StateManager.class),
-                        $(Session.class), $(ContentIconsRegistry.class), $(RenamableRegistry.class),
-                        $(RenameAction.class));
-                final EntityTitlePanel panel = new EntityTitlePanel($(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(
-                        $(I18nUITranslationService.class), $(StateManager.class), false, $(AuthorableRegistry.class));
-                final EntitySubTitlePanel panel = new EntitySubTitlePanel(presenter, $(WorkspaceSkeleton.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<EntityLicensePresenter>(EntityLicensePresenter.class) {
-            @Override
-            public EntityLicensePresenter create() {
-                final EntityLicensePresenter presenter = new EntityLicensePresenter($(StateManager.class));
-                final EntityLicensePanel panel = new EntityLicensePanel(presenter, $(I18nUITranslationService.class),
-                        $(WorkspaceSkeleton.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<RateIt>(RateIt.class) {
-            @Override
-            public RateIt create() {
-                final RateItPresenter presenter = new RateItPresenter($(I18nUITranslationService.class),
-                        $(Session.class), $$(ContentServiceAsync.class), $(StateManager.class),
-                        $$(RatePresenter.class), $(ContentCapabilitiesRegistry.class));
-                final RateItPanel panel = new RateItPanel(presenter, $(I18nUITranslationService.class),
-                        $(WorkspaceSkeleton.class), $(Images.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<RatePresenter>(RatePresenter.class) {
-            @Override
-            public RatePresenter create() {
-                final RatePresenter presenter = new RatePresenter($(StateManager.class),
-                        $(ContentCapabilitiesRegistry.class));
-                final RatePanel panel = new RatePanel(null, null, $(I18nUITranslationService.class),
-                        $(WorkspaceSkeleton.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<GroupMembersSummary>(GroupMembersSummary.class) {
-            @Override
-            public GroupMembersSummary create() {
-                final GroupMembersSummaryPresenter presenter = new GroupMembersSummaryPresenter(
-                        $(I18nUITranslationService.class), $(StateManager.class), $(ImageUtils.class),
-                        $(Session.class), $$(SocialNetworkServiceAsync.class), $$(GroupServiceAsync.class),
-                        $$(GroupLiveSearcher.class), $(WsThemePresenter.class), $$(ChatEngine.class),
-                        $(GroupActionRegistry.class), $(ActionGroupSummaryToolbar.class), $$(FileDownloadUtils.class));
-                final GroupMembersSummaryView view = new GroupMembersSummaryPanel(presenter,
-                        $(I18nUITranslationService.class), $(WorkspaceSkeleton.class), $(
-                                ActionGroupSummaryToolbar.class).getView());
-                presenter.init(view);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<GroupSummary>(GroupSummary.class) {
-            @Override
-            public GroupSummary create() {
-                final GroupSummaryPresenter presenter = new GroupSummaryPresenter($(StateManager.class),
-                        $(WsThemePresenter.class));
-                final GroupSummaryView view = new GroupSummaryPanel($(Images.class), presenter,
-                        $(I18nUITranslationService.class), $(WorkspaceSkeleton.class));
-                presenter.init(view);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<AddAsBuddie>(AddAsBuddie.class) {
-            @Override
-            public AddAsBuddie create() {
-                final AddAsBuddiePresenter presenter = new AddAsBuddiePresenter($$(ChatEngine.class),
-                        $(StateManager.class), $(Session.class));
-                final AddAsBuddiePanel panel = new AddAsBuddiePanel(presenter, $(EntityHeader.class), $(Images.class),
-                        $(I18nTranslationService.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<BuddiesSummary>(BuddiesSummary.class) {
-            @Override
-            public BuddiesSummary create() {
-                final BuddiesSummaryPresenter presenter = new BuddiesSummaryPresenter($(StateManager.class),
-                        $(Session.class), $$(UserServiceAsync.class), $(UserActionRegistry.class),
-                        $(I18nTranslationService.class), $$(ChatEngine.class), $(ActionBuddiesSummaryToolbar.class),
-                        $$(FileDownloadUtils.class), $(ImageUtils.class), $$(SocialNetworkServiceAsync.class),
-                        $(GroupActionRegistry.class));
-                final BuddiesSummaryPanel panel = new BuddiesSummaryPanel(presenter, $(WorkspaceSkeleton.class),
-                        $(I18nTranslationService.class), $(ActionManager.class),
-                        $(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(
-                        $(I18nUITranslationService.class), $(StateManager.class), $(ImageUtils.class),
-                        $(Session.class), $$(SocialNetworkServiceAsync.class), $(WsThemePresenter.class),
-                        $(GroupActionRegistry.class), $(ActionParticipationToolbar.class), $$(FileDownloadUtils.class));
-                final ParticipationSummaryView view = new ParticipationSummaryPanel(presenter,
-                        $(I18nUITranslationService.class), $(WorkspaceSkeleton.class),
-                        ($(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($(Session.class),
-                        $$(SiteSearcher.class), $(StateManager.class), $(WsThemePresenter.class));
-                final TagsSummaryPanel panel = new TagsSummaryPanel(presenter, $(I18nUITranslationService.class),
-                        $(WorkspaceSkeleton.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<NoHomePage>(NoHomePage.class) {
-            @Override
-            public NoHomePage create() {
-                final NoHomePagePresenter presenter = new NoHomePagePresenter($(StateManager.class),
-                        $$(EntityHeader.class));
-                final NoHomePagePanel panel = new NoHomePagePanel(presenter, $(WorkspaceSkeleton.class),
-                        $(I18nTranslationService.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<EntityOptions>(EntityOptions.class) {
-            @Override
-            public EntityOptions create() {
-                final EntityOptionsPresenter presenter = new EntityOptionsPresenter($(StateManager.class));
-                final EntityOptionsPanel panel = new EntityOptionsPanel(presenter, $(EntityHeader.class),
-                        $(I18nTranslationService.class), $(Images.class), $(EntityOptionsGroup.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(EntityOptionsGroup.class, new Factory<EntityOptionsToolsConf>(EntityOptionsToolsConf.class) {
-            @Override
-            public EntityOptionsToolsConf create() {
-                final EntityOptionsToolsConfPresenter presenter = new EntityOptionsToolsConfPresenter(
-                        $(StateManager.class), $(Session.class), $(I18nTranslationService.class),
-                        $(EntityOptions.class), $$(GroupServiceAsync.class));
-                final EntityOptionsToolsConfPanel panel = new EntityOptionsToolsConfPanel(presenter,
-                        $(WorkspaceSkeleton.class), $(I18nTranslationService.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(EntityOptionsGroup.class, new Factory<EntityOptionsLogo>(EntityOptionsLogo.class) {
-            @Override
-            public EntityOptionsLogo create() {
-                final EntityOptionsLogoPresenter presenter = new EntityOptionsLogoPresenter($(Session.class),
-                        $(EntityHeader.class), $(EntityOptions.class), $(StateManager.class),
-                        $$(UserServiceAsync.class), $$(ChatEngine.class));
-                final EntityOptionsLogoPanel panel = new EntityOptionsLogoPanel(presenter, $(WorkspaceSkeleton.class),
-                        $(I18nTranslationService.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(EntityOptionsGroup.class, new Factory<EntityOptionsDefLicense>(EntityOptionsDefLicense.class) {
-            @Override
-            public EntityOptionsDefLicense create() {
-                final EntityOptionsDefLicensePresenter presenter = new EntityOptionsDefLicensePresenter(
-                        $(EntityOptions.class), $(StateManager.class), $(Session.class), $$(LicenseWizard.class),
-                        $$(LicenseChangeAction.class));
-                final EntityOptionsDefLicensePanel panel = new EntityOptionsDefLicensePanel(presenter,
-                        $(WorkspaceSkeleton.class), $(I18nTranslationService.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(EntityOptionsGroup.class,
-                new Factory<EntityOptionsPublicSpaceConf>(EntityOptionsPublicSpaceConf.class) {
-                    @Override
-                    public EntityOptionsPublicSpaceConf create() {
-                        final EntityOptionsPublicSpaceConfPresenter presenter = new EntityOptionsPublicSpaceConfPresenter(
-                                $(EntityOptions.class));
-                        final EntityOptionsPublicSpaceConfPanel panel = new EntityOptionsPublicSpaceConfPanel(
-                                presenter, $(WorkspaceSkeleton.class), $(I18nTranslationService.class),
-                                $(WsThemePresenter.class));
-                        presenter.init(panel);
-                        return presenter;
-                    }
-                });
-
-        register(Singleton.class, new Factory<LicenseChangeAction>(LicenseChangeAction.class) {
-            @Override
-            public LicenseChangeAction create() {
-                return new LicenseChangeAction($$(GroupServiceAsync.class), $(Session.class),
-                        $(I18nTranslationService.class), $(StateManager.class));
-            }
-        });
-
-        register(Singleton.class, new Factory<RenameAction>(RenameAction.class) {
-            @Override
-            public RenameAction create() {
-                return new RenameAction($(I18nTranslationService.class), $(Session.class),
-                        $$(ContentServiceAsync.class));
-            }
-        });
-
-        register(Singleton.class, new Factory<LicenseWizard>(LicenseWizard.class) {
-            @Override
-            public LicenseWizard create() {
-                final LicenseWizardPresenter presenter = new LicenseWizardPresenter(
-                        $(LicenseWizardFirstFormView.class), $(LicenseWizardSndFormView.class),
-                        $(LicenseWizardTrdFormView.class), $(LicenseWizardFrdFormView.class), $(Session.class));
-                final LicenseWizardPanel panel = new LicenseWizardPanel(presenter, $(WorkspaceSkeleton.class),
-                        $(I18nTranslationService.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<LicenseWizardFirstFormView>(LicenseWizardFirstFormView.class) {
-            @Override
-            public LicenseWizardFirstFormView create() {
-                return new LicenseWizardFirstForm($(I18nTranslationService.class));
-            }
-        });
-
-        register(Singleton.class, new Factory<LicenseWizardSndFormView>(LicenseWizardSndFormView.class) {
-            @Override
-            public LicenseWizardSndFormView create() {
-                return new LicenseWizardSndForm($(I18nTranslationService.class));
-            }
-        });
-
-        register(Singleton.class, new Factory<LicenseWizardTrdFormView>(LicenseWizardTrdFormView.class) {
-            @Override
-            public LicenseWizardTrdFormView create() {
-                return new LicenseWizardTrdForm($(Images.class), $(I18nTranslationService.class));
-            }
-        });
-
-        register(Singleton.class, new Factory<LicenseWizardFrdFormView>(LicenseWizardFrdFormView.class) {
-            @Override
-            public LicenseWizardFrdFormView create() {
-                return new LicenseWizardFrdForm($(I18nTranslationService.class), $(Session.class));
-            }
-        });
-    }
-}

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -65,6 +65,8 @@
      */
     int SESSION_DURATION = 1000 * 60 * 60 * 24 * 14;
 
+    String USERHASH = "userHash";
+
     void check(AsyncCallbackSimple<?> callback);
 
     StateContainerDTO getContainerState();

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -35,7 +35,7 @@
 import org.ourproject.kune.platf.client.dto.UserInfoDTO;
 import org.ourproject.kune.platf.client.dto.UserSimpleDTO;
 import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.workspace.client.site.rpc.UserServiceAsync;
+import org.ourproject.kune.platf.client.rpc.UserServiceAsync;
 
 import com.allen_sauer.gwt.log.client.Log;
 import com.calclab.suco.client.events.Event;

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/RTEditor.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/RTEditor.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/RTEditor.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -7,10 +7,14 @@
 
 public interface RTEditor {
 
-    void addAction(ActionDescriptor<Object> action);
+    void addBasicAction(ActionDescriptor<Object> action);
 
-    void addActions(ActionCollection<Object> actions);
+    void addBasicActions(ActionCollection<Object> actions);
 
+    void addExtendedAction(ActionDescriptor<Object> action);
+
+    void addExtendedActions(ActionCollection<Object> actions);
+
     void editContent(String content);
 
     View getView();

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/RTEditorPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/RTEditorPanel.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/RTEditorPanel.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -3,12 +3,17 @@
 import java.util.Date;
 
 import org.ourproject.kune.platf.client.actions.ActionCollection;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.ui.rte.RichTextArea.BasicFormatter;
 import org.ourproject.kune.platf.client.ui.rte.RichTextArea.ExtendedFormatter;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.platf.client.ui.rte.RichTextArea.FontSize;
+import org.ourproject.kune.platf.client.ui.rte.RichTextArea.Justification;
+import org.ourproject.kune.platf.client.ui.rte.img.RTEImgResources;
 
 import com.google.gwt.dom.client.Element;
+import com.google.gwt.libideas.client.StyleInjector;
 import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.ui.Widget;
 
 public class RTEditorPanel implements RTEditorView {
 
@@ -22,6 +27,7 @@
         rta = new RichTextArea();
         basic = rta.getBasicFormatter();
         extended = rta.getExtendedFormatter();
+        StyleInjector.injectStylesheet(RTEImgResources.INSTANCE.css().getText());
     }
 
     public void addComment(String userName) {
@@ -29,8 +35,8 @@
         Element span = DOM.createSpan();
         span.setInnerText(i18n.t("type here") + " -" + userName + time);
         DOM.setElementAttribute((com.google.gwt.user.client.Element) span, "backgroundColor", "rgb(255,255,215");
-        // addCustomStyle
-        // insertHtml
+        // FIXME: addCustomStyle
+        insertHtml(span.getString());
     }
 
     public boolean canBeExtended() {
@@ -38,148 +44,168 @@
     }
 
     public void copy() {
-        extended.undo();
+        extended.copy();
     }
 
-    public void createlink(String url) {
-        // TODO Auto-generated method stub
-
+    public void createLink(String url) {
+        extended.createLink(url);
     }
 
     public void cut() {
-        extended.undo();
+        extended.cut();
     }
 
     public void delete() {
-        // TODO Auto-generated method stub
-
+        extended.delete();
     }
 
-    public void fontname(String name) {
-        // TODO Auto-generated method stub
-
+    public Widget getRTE() {
+        return rta;
     }
 
-    public void fontsize(String size) {
-        // TODO Auto-generated method stub
-
+    public void insertHorizontalRule() {
+        extended.insertHorizontalRule();
     }
 
-    public void forecolor(String color) {
-        // TODO Auto-generated method stub
-
+    public void insertHR() {
+        extended.insertHorizontalRule();
     }
 
-    public void indent() {
-        // TODO Auto-generated method stub
-
+    public void insertHtml(String html) {
+        extended.insertHtml(html);
     }
 
-    public void inserthorizontalrule() {
-        // TODO Auto-generated method stub
-
+    public void insertImage(String url) {
+        extended.insertImage(url);
     }
 
-    public void insertHR() {
-        extended.insertHorizontalRule();
+    public void insertOrderedList() {
+        extended.insertOrderedList();
     }
 
-    public void inserthtml(String html) {
-        // TODO Auto-generated method stub
-
+    public void insertUnorderedList() {
+        extended.insertUnorderedList();
     }
 
-    public void insertimage(String url) {
-        // TODO Auto-generated method stub
-
+    public boolean isBold() {
+        return basic.isBold();
     }
 
-    public void insertorderedlist() {
-        // TODO Auto-generated method stub
-
+    public boolean isItalic() {
+        return basic.isItalic();
     }
 
-    public void insertparagraph() {
-        // TODO Auto-generated method stub
-
+    public boolean isStrikethrough() {
+        return extended.isStrikethrough();
     }
 
-    public void insertunorderedlist() {
-        // TODO Auto-generated method stub
-
+    public boolean isSubscript() {
+        return basic.isSubscript();
     }
 
-    public void italic() {
-        // TODO Auto-generated method stub
-
+    public boolean isSuperscript() {
+        return basic.isSuperscript();
     }
 
-    public void justifycenter() {
-        // TODO Auto-generated method stub
-
+    public boolean isUnderlined() {
+        return basic.isUnderlined();
     }
 
-    public void justifyfull() {
-        // TODO Auto-generated method stub
-
+    public void justifyCenter() {
+        basic.setJustification(Justification.CENTER);
     }
 
-    public void justifyleft() {
-        // TODO Auto-generated method stub
-
+    public void justifyLeft() {
+        basic.setJustification(Justification.LEFT);
     }
 
-    public void justifyright() {
-        // TODO Auto-generated method stub
-
+    public void justifyRight() {
+        basic.setJustification(Justification.RIGHT);
     }
 
-    public void outdent() {
-        // TODO Auto-generated method stub
-
+    public void leftIndent() {
+        extended.leftIndent();
     }
 
     public void paste() {
-        extended.undo();
+        extended.paste();
     }
 
     public void redo() {
         extended.redo();
     }
 
-    public void removeformat() {
-        // TODO Auto-generated method stub
+    public void removeFormat() {
+        extended.removeFormat();
     }
 
-    public void selectall() {
-        // TODO Auto-generated method stub
+    public void rightIndent() {
+        extended.rightIndent();
     }
 
     public void selectAll() {
-        // TODO Auto-generated method stub
+        basic.selectAll();
     }
 
     public void setActions(ActionCollection<Object> actions) {
         // TODO Auto-generated method stub
+    }
 
+    public void setFontName(String name) {
+        basic.setFontName(name);
     }
 
-    public void strikethrough() {
-        // TODO Auto-generated method stub
+    public void setFontSize(int size) {
+        switch (size) {
+        case 1:
+            basic.setFontSize(FontSize.XX_SMALL);
+            break;
+        case 2:
+            basic.setFontSize(FontSize.X_SMALL);
+            break;
+        case 3:
+            basic.setFontSize(FontSize.SMALL);
+            break;
+        case 4:
+            basic.setFontSize(FontSize.MEDIUM);
+            break;
+        case 5:
+            basic.setFontSize(FontSize.LARGE);
+            break;
+        case 6:
+            basic.setFontSize(FontSize.X_LARGE);
+            break;
+        case 7:
+            basic.setFontSize(FontSize.XX_LARGE);
+            break;
+        }
+    }
 
+    public void setForeColor(String color) {
+        basic.setForeColor(color);
     }
 
-    public void subscript() {
-        // TODO Auto-generated method stub
+    public void toggleBold() {
+        basic.toggleBold();
+    }
 
+    public void toggleItalic() {
+        basic.toggleItalic();
     }
 
-    public void superscript() {
-        // TODO Auto-generated method stub
+    public void toggleStrikethrough() {
+        extended.toggleStrikethrough();
+    }
 
+    public void toggleSubscript() {
+        basic.toggleSubscript();
     }
 
-    public void underline() {
+    public void toggleSuperscript() {
+        basic.toggleSuperscript();
+    }
+
+    public void toggleUnderline() {
         basic.toggleUnderline();
     }
 

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/RTEditorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/RTEditorPresenter.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/RTEditorPresenter.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -4,13 +4,16 @@
 import org.ourproject.kune.platf.client.actions.ActionCollection;
 import org.ourproject.kune.platf.client.actions.ActionDescriptor;
 import org.ourproject.kune.platf.client.actions.ActionEnableCondition;
+import org.ourproject.kune.platf.client.actions.ActionPressedCondition;
 import org.ourproject.kune.platf.client.actions.ActionShortcut;
 import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor;
 import org.ourproject.kune.platf.client.actions.ActionToolbarPosition;
+import org.ourproject.kune.platf.client.actions.ActionToolbarPushButtonDescriptor;
 import org.ourproject.kune.platf.client.actions.ContentEditorActionRegistry;
 import org.ourproject.kune.platf.client.dto.AccessRolDTO;
 import org.ourproject.kune.platf.client.services.I18nTranslationService;
 import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.ui.rte.img.RTEImgResources;
 import org.ourproject.kune.workspace.client.site.Site;
 
 import com.calclab.suco.client.events.Listener0;
@@ -24,30 +27,41 @@
     private AccessRolDTO accessRol;
     private final I18nTranslationService i18n;
     private final Session session;
-    private final ActionCollection<Object> actions;
+    private final ActionCollection<Object> extendedActions;
+    private final ActionCollection<Object> basicActions;
+    private final RTEImgResources imgResources;
 
     public RTEditorPresenter(ContentEditorActionRegistry contentEditorActionRegistry, I18nTranslationService i18n,
-            Session session) {
+            Session session, RTEImgResources imgResources) {
         this.i18n = i18n;
         this.session = session;
+        this.imgResources = imgResources;
         extended = true;
         accessRol = AccessRolDTO.Editor;
-        actions = createDefActions();
+        extendedActions = createDefExtendedActions();
+        basicActions = createDefBasicActions();
     }
 
-    public void addAction(ActionDescriptor<Object> action) {
-        actions.add(action);
+    public void addBasicAction(ActionDescriptor<Object> action) {
+        basicActions.add(action);
     }
 
-    public void addActions(ActionCollection<Object> actions) {
-        this.actions.addAll(actions);
+    public void addBasicActions(ActionCollection<Object> actions) {
+        basicActions.addAll(actions);
     }
 
-    public void editContent(String content) {
-        view.setActions(actions);
+    public void addExtendedAction(ActionDescriptor<Object> action) {
+        extendedActions.add(action);
+    }
 
+    public void addExtendedActions(ActionCollection<Object> actions) {
+        extendedActions.addAll(actions);
     }
 
+    public void editContent(String content) {
+        view.setActions(extendedActions);
+    }
+
     public View getView() {
         return view;
     }
@@ -64,9 +78,72 @@
         this.extended = extended;
     }
 
-    private ActionCollection<Object> createDefActions() {
-        ActionCollection<Object> defActions = new ActionCollection<Object>();
+    private ActionCollection<Object> createDefBasicActions() {
+        ActionCollection<Object> actions = new ActionCollection<Object>();
 
+        ActionToolbarMenuDescriptor<Object> selectAll = new ActionToolbarMenuDescriptor<Object>(accessRol,
+                ActionToolbarPosition.topbar, new Listener0() {
+                    public void onEvent() {
+                        view.selectAll();
+                    }
+                });
+        selectAll.setShortcut(new ActionShortcut(true, 'A'));
+        selectAll.setTextDescription(i18n.t("Select all"));
+        selectAll.setParentMenuTitle(i18n.t(EDIT_MENU));
+
+        ActionToolbarPushButtonDescriptor<Object> bold = new ActionToolbarPushButtonDescriptor<Object>(accessRol,
+                ActionToolbarPosition.topbar, new Listener0() {
+                    public void onEvent() {
+                        view.toggleBold();
+                    }
+                });
+        bold.setIconCls(imgResources.bold().getName());
+        bold.setToolTip(i18n.t("Toggle Bold"));
+        bold.setMustInitialyPressed(new ActionPressedCondition<Object>() {
+            public boolean mustBePressed(Object param) {
+                return view.isBold();
+            }
+        });
+
+        ActionToolbarPushButtonDescriptor<Object> italic = new ActionToolbarPushButtonDescriptor<Object>(accessRol,
+                ActionToolbarPosition.topbar, new Listener0() {
+                    public void onEvent() {
+                        view.toggleItalic();
+                    }
+                });
+        italic.setIconCls(imgResources.italic().getName());
+        italic.setToolTip(i18n.t("Toggle Italic"));
+        italic.setMustInitialyPressed(new ActionPressedCondition<Object>() {
+            public boolean mustBePressed(Object param) {
+                return view.isItalic();
+            }
+        });
+
+        ActionToolbarPushButtonDescriptor<Object> underline = new ActionToolbarPushButtonDescriptor<Object>(accessRol,
+                ActionToolbarPosition.topbar, new Listener0() {
+                    public void onEvent() {
+                        view.toggleUnderline();
+                    }
+                });
+        underline.setIconCls(imgResources.underline().getName());
+        underline.setToolTip(i18n.t("Toggle Underline"));
+        underline.setMustInitialyPressed(new ActionPressedCondition<Object>() {
+            public boolean mustBePressed(Object param) {
+                return view.isUnderlined();
+            }
+        });
+
+        actions.add(bold);
+        actions.add(italic);
+        actions.add(underline);
+        actions.add(selectAll);
+
+        return actions;
+    }
+
+    private ActionCollection<Object> createDefExtendedActions() {
+        ActionCollection<Object> actions = new ActionCollection<Object>();
+
         ActionToolbarMenuDescriptor<Object> undo = new ActionToolbarMenuDescriptor<Object>(accessRol,
                 ActionToolbarPosition.topbar, new Listener0() {
                     public void onEvent() {
@@ -117,16 +194,6 @@
         paste.setTextDescription(i18n.t("Paste"));
         paste.setParentMenuTitle(i18n.t(EDIT_MENU));
 
-        ActionToolbarMenuDescriptor<Object> selectAll = new ActionToolbarMenuDescriptor<Object>(accessRol,
-                ActionToolbarPosition.topbar, new Listener0() {
-                    public void onEvent() {
-                        view.selectall();
-                    }
-                });
-        selectAll.setShortcut(new ActionShortcut(true, 'A'));
-        selectAll.setTextDescription(i18n.t("Select all"));
-        selectAll.setParentMenuTitle(i18n.t(EDIT_MENU));
-
         ActionToolbarMenuDescriptor<Object> editHtml = new ActionToolbarMenuDescriptor<Object>(accessRol,
                 ActionToolbarPosition.topbar, new Listener0() {
                     public void onEvent() {
@@ -150,7 +217,7 @@
         ActionToolbarMenuDescriptor<Object> hr = new ActionToolbarMenuDescriptor<Object>(accessRol,
                 ActionToolbarPosition.topbar, new Listener0() {
                     public void onEvent() {
-                        view.inserthorizontalrule();
+                        view.insertHorizontalRule();
                     }
                 });
         hr.setShortcut(new ActionShortcut(true, 'M'));
@@ -158,16 +225,31 @@
         hr.setParentMenuTitle(i18n.t(INSERT_MENU));
         hr.setEnableCondition(isExtended());
 
-        defActions.add(undo);
-        defActions.add(redo);
-        defActions.add(copy);
-        defActions.add(cut);
-        defActions.add(paste);
-        defActions.add(selectAll);
-        defActions.add(editHtml);
-        defActions.add(comment);
-        defActions.add(hr);
-        return defActions;
+        ActionToolbarPushButtonDescriptor<Object> strikethrough = new ActionToolbarPushButtonDescriptor<Object>(
+                accessRol, ActionToolbarPosition.topbar, new Listener0() {
+                    public void onEvent() {
+                        view.toggleStrikethrough();
+                    }
+                });
+        strikethrough.setIconCls(imgResources.strikeout().getName());
+        strikethrough.setToolTip(i18n.t("Toggle Strikethrough"));
+        strikethrough.setMustInitialyPressed(new ActionPressedCondition<Object>() {
+            public boolean mustBePressed(Object param) {
+                return view.isStrikethrough();
+            }
+        });
+
+        actions.add(undo);
+        actions.add(redo);
+        actions.add(copy);
+        actions.add(cut);
+        actions.add(paste);
+        actions.add(editHtml);
+        actions.add(comment);
+        actions.add(hr);
+        actions.add(strikethrough);
+
+        return actions;
     }
 
     private ActionEnableCondition<Object> isExtended() {

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/RTEditorView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/RTEditorView.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/RTEditorView.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -11,62 +11,72 @@
 
     void copy();
 
-    void createlink(String url);
+    void createLink(String url);
 
     void cut();
 
     void delete();
 
-    void fontname(String name);
+    void insertHorizontalRule();
 
-    void fontsize(String size);
+    void insertHtml(String html);
 
-    void forecolor(String color);
+    void insertImage(String url);
 
-    void indent();
+    void insertOrderedList();
 
-    void inserthorizontalrule();
+    void insertUnorderedList();
 
-    void inserthtml(String html);
+    boolean isBold();
 
-    void insertimage(String url);
+    boolean isItalic();
 
-    void insertorderedlist();
+    boolean isStrikethrough();
 
-    void insertparagraph();
+    boolean isSubscript();
 
-    void insertunorderedlist();
+    boolean isSuperscript();
 
-    void italic();
+    boolean isUnderlined();
 
-    void justifycenter();
+    void justifyCenter();
 
-    void justifyfull();
+    void justifyLeft();
 
-    void justifyleft();
+    void justifyRight();
 
-    void justifyright();
+    void leftIndent();
 
-    void outdent();
-
     void paste();
 
     void redo();
 
-    void removeformat();
+    void removeFormat();
 
-    void selectall();
+    void rightIndent();
 
+    void selectAll();
+
     void setActions(ActionCollection<Object> actions);
 
-    void strikethrough();
+    void setFontName(String name);
 
-    void subscript();
+    void setFontSize(int size);
 
-    void superscript();
+    void setForeColor(String color);
 
-    void underline();
+    void toggleBold();
 
+    void toggleItalic();
+
+    void toggleStrikethrough();
+
+    void toggleSubscript();
+
+    void toggleSuperscript();
+
+    void toggleUnderline();
+
     void undo();
 
     void unlink();

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/RichTextArea.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/RichTextArea.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/RichTextArea.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -193,6 +193,11 @@
 
         void cut();
 
+        /*
+         * delete all text and objects that are selected.
+         */
+        void delete();
+
         /**
          * Inserts a horizontal rule.
          */

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/TestRTEDialog.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/TestRTEDialog.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/TestRTEDialog.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -0,0 +1,12 @@
+package org.ourproject.kune.platf.client.ui.rte;
+
+import org.ourproject.kune.platf.client.ui.dialogs.BasicDialog;
+
+public class TestRTEDialog {
+
+    public TestRTEDialog(RTEditor editor) {
+        BasicDialog dialog = new BasicDialog("Testing RTE", false);
+        dialog.add(((RTEditorPanel) editor.getView()).getRTE());
+        dialog.show();
+    }
+}

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/RTEImgResources.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/RTEImgResources.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/RTEImgResources.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -0,0 +1,84 @@
+package org.ourproject.kune.platf.client.ui.rte.img;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.libideas.resources.client.CssResource;
+import com.google.gwt.libideas.resources.client.ImageResource;
+import com.google.gwt.libideas.resources.client.ImmutableResourceBundle;
+
+public interface RTEImgResources extends ImmutableResourceBundle {
+
+    public static final RTEImgResources INSTANCE = GWT.create(RTEImgResources.class);
+
+    @Resource("alignleft.png")
+    ImageResource alignleft();
+
+    @Resource("alignright.png")
+    ImageResource alignright();
+
+    @Resource("backcolor.png")
+    ImageResource backcolor();
+
+    @Resource("bold.png")
+    ImageResource bold();
+
+    @Resource("centerpara.png")
+    ImageResource centerpara();
+
+    @Resource("charfontname.png")
+    ImageResource charfontname();
+
+    @Resource("rteimg.css")
+    CssResource css();
+
+    @Resource("decrementindent.png")
+    ImageResource decrementindent();
+
+    @Resource("defaultbullet.png")
+    ImageResource defaultbullet();
+
+    @Resource("defaultnumbering.png")
+    ImageResource defaultnumbering();
+
+    @Resource("edithtml.png")
+    ImageResource edithtml();
+
+    @Resource("fontcolor.png")
+    ImageResource fontcolor();
+
+    @Resource("fontheight.png")
+    ImageResource fontheight();
+
+    @Resource("hfixedline.png")
+    ImageResource hfixedline();
+
+    @Resource("images.png")
+    ImageResource images();
+
+    @Resource("incrementindent.png")
+    ImageResource incrementindent();
+
+    @Resource("italic.png")
+    ImageResource italic();
+
+    @Resource("link.png")
+    ImageResource link();
+
+    @Resource("link_break.png")
+    ImageResource link_break();
+
+    @Resource("removeFormat.png")
+    ImageResource removeFormat();
+
+    @Resource("strikeout.png")
+    ImageResource strikeout();
+
+    @Resource("subscript.png")
+    ImageResource subscript();
+
+    @Resource("superscript.png")
+    ImageResource superscript();
+
+    @Resource("underline.png")
+    ImageResource underline();
+
+}
\ No newline at end of file

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/alignleft.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/alignleft.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/alignright.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/alignright.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/backcolor.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/backcolor.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/bold.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/bold.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/centerpara.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/centerpara.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/charfontname.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/charfontname.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/decrementindent.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/decrementindent.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/defaultbullet.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/defaultbullet.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/defaultnumbering.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/defaultnumbering.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/edithtml.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/edithtml.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/fontcolor.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/fontcolor.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/fontheight.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/fontheight.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/hfixedline.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/hfixedline.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/images.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/images.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/incrementindent.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/incrementindent.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/italic.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/italic.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/link.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/link.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/link_break.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/link_break.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/removeFormat.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/removeFormat.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/rteimg.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/rteimg.css	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/rteimg.css	2009-02-26 01:46:09 UTC (rev 1052)
@@ -0,0 +1,91 @@
+ at stripe .k-rte-underline {
+  gwt-image: 'underline';
+}
+
+ at stripe .k-rte-superscript {
+  gwt-image: 'superscript';
+}
+
+ at stripe .k-rte-subscript {
+  gwt-image: 'subscript';
+}
+
+ at stripe .k-rte-strikeout {
+  gwt-image: 'strikeout';
+}
+
+ at stripe .k-rte-removeFormat {
+  gwt-image: 'removeFormat';
+}
+
+ at stripe .k-rte-link {
+  gwt-image: 'link';
+}
+
+ at stripe .k-rte-link_break {
+  gwt-image: 'link_break';
+}
+
+ at stripe .k-rte-italic {
+  gwt-image: 'italic';
+}
+
+ at stripe .k-rte-incrementindent {
+  gwt-image: 'incrementindent';
+}
+
+ at stripe .k-rte-images {
+  gwt-image: 'images';
+}
+
+ at stripe .k-rte-hfixedline {
+  gwt-image: 'hfixedline';
+}
+
+ at stripe .k-rte-fontheight {
+  gwt-image: 'fontheight';
+}
+
+ at stripe .k-rte-fontcolor {
+  gwt-image: 'fontcolor';
+}
+
+ at stripe .k-rte-edithtml {
+  gwt-image: 'edithtml';
+}
+
+ at stripe .k-rte-defaultnumbering {
+  gwt-image: 'defaultnumbering';
+}
+
+ at stripe .k-rte-defaultbullet {
+  gwt-image: 'defaultbullet';
+}
+
+ at stripe .k-rte-decrementindent {
+  gwt-image: 'decrementindent';
+}
+
+ at stripe .k-rte-charfontname {
+  gwt-image: 'charfontname';
+}
+
+ at stripe .k-rte-centerpara {
+  gwt-image: 'centerpara';
+}
+
+ at stripe .k-rte-bold {
+  gwt-image: 'bold';
+}
+
+ at stripe .k-rte-backcolor {
+  gwt-image: 'backcolor';
+}
+
+ at stripe .k-rte-alignright {
+  gwt-image: 'alignright';
+}
+
+ at stripe .k-rte-alignleft {
+  gwt-image: 'alignleft';
+}
\ No newline at end of file

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/strikeout.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/strikeout.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/subscript.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/subscript.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/superscript.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/superscript.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/underline.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/img/underline.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/impl/RichTextAreaImplStandard.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/impl/RichTextAreaImplStandard.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/impl/RichTextAreaImplStandard.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -48,8 +48,8 @@
 
     @Override
     public native Element createElement() /*-{
-             return $doc.createElement('iframe');
-           }-*/;
+                return $doc.createElement('iframe');
+              }-*/;
 
     public void createLink(String url) {
         execCommand("CreateLink", url);
@@ -59,6 +59,10 @@
         execCommand("Cut", null);
     }
 
+    public void delete() {
+        execCommand("Delete", null);
+    }
+
     public String getBackColor() {
         return queryCommandValue("BackColor");
     }
@@ -79,19 +83,19 @@
 
     @Override
     public native void initElement() /*-{
-            // Most browsers don't like setting designMode until slightly _after_
-            // the iframe becomes attached to the DOM. Any non-zero timeout will do
-            // just fine.
-            var _this = this;
-            _this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImplStandard::initializing = true;
-            setTimeout(function() {
-              // Turn on design mode.
-              _this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem.contentWindow.document.designMode = 'On';
+               // Most browsers don't like setting designMode until slightly _after_
+               // the iframe becomes attached to the DOM. Any non-zero timeout will do
+               // just fine.
+               var _this = this;
+               _this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImplStandard::initializing = true;
+               setTimeout(function() {
+                 // Turn on design mode.
+                 _this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem.contentWindow.document.designMode = 'On';
 
-              // Send notification that the iframe has reached design mode.
-              _this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImplStandard::onElementInitialized()();
-            }, 1);
-          }-*/;
+                 // Send notification that the iframe has reached design mode.
+                 _this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImplStandard::onElementInitialized()();
+               }, 1);
+             }-*/;
 
     public void insertHorizontalRule() {
         execCommand("InsertHorizontalRule", null);
@@ -181,12 +185,12 @@
 
     @Override
     public native void setFocus(boolean focused) /*-{
-             if (focused) {
-               this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem.contentWindow.focus();
-             } else {
-               this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem.contentWindow.blur();
-             }
-           }-*/;
+                if (focused) {
+                  this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem.contentWindow.focus();
+                } else {
+                  this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem.contentWindow.blur();
+                }
+              }-*/;
 
     public void setFontName(String name) {
         execCommand("FontName", name);
@@ -280,55 +284,55 @@
     }
 
     protected native String getHTMLImpl() /*-{
-             return this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem.contentWindow.document.body.innerHTML;
-           }-*/;
+                return this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem.contentWindow.document.body.innerHTML;
+              }-*/;
 
     protected native String getTextImpl() /*-{
-             return this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem.contentWindow.document.body.textContent;
-           }-*/;
+                return this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem.contentWindow.document.body.textContent;
+              }-*/;
 
     @Override
     protected native void hookEvents() /*-{
-             var elem = this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem;
-             var wnd = elem.contentWindow;
+                var elem = this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem;
+                var wnd = elem.contentWindow;
 
-             elem.__gwt_handler = function(evt) {
-               if (elem.__listener) {
-                 elem.__listener. at org.ourproject.kune.platf.client.ui.rte.RichTextArea::onBrowserEvent(Lcom/google/gwt/user/client/Event;)(evt);
-               }
-             };
+                elem.__gwt_handler = function(evt) {
+                  if (elem.__listener) {
+                    elem.__listener. at org.ourproject.kune.platf.client.ui.rte.RichTextArea::onBrowserEvent(Lcom/google/gwt/user/client/Event;)(evt);
+                  }
+                };
 
-             elem.__gwt_focusHandler = function(evt) {
-               if (elem.__gwt_isFocused) {
-                 return;
-               }
+                elem.__gwt_focusHandler = function(evt) {
+                  if (elem.__gwt_isFocused) {
+                    return;
+                  }
 
-               elem.__gwt_isFocused = true;
-               elem.__gwt_handler(evt);
-             };
+                  elem.__gwt_isFocused = true;
+                  elem.__gwt_handler(evt);
+                };
 
-             elem.__gwt_blurHandler = function(evt) {
-               if (!elem.__gwt_isFocused) {
-                 return;
-               }
+                elem.__gwt_blurHandler = function(evt) {
+                  if (!elem.__gwt_isFocused) {
+                    return;
+                  }
 
-               elem.__gwt_isFocused = false;
-               elem.__gwt_handler(evt);
-             };
+                  elem.__gwt_isFocused = false;
+                  elem.__gwt_handler(evt);
+                };
 
-             wnd.addEventListener('keydown', elem.__gwt_handler, true);
-             wnd.addEventListener('keyup', elem.__gwt_handler, true);
-             wnd.addEventListener('keypress', elem.__gwt_handler, true);
-             wnd.addEventListener('mousedown', elem.__gwt_handler, true);
-             wnd.addEventListener('mouseup', elem.__gwt_handler, true);
-             wnd.addEventListener('mousemove', elem.__gwt_handler, true);
-             wnd.addEventListener('mouseover', elem.__gwt_handler, true);
-             wnd.addEventListener('mouseout', elem.__gwt_handler, true);
-             wnd.addEventListener('click', elem.__gwt_handler, true);
+                wnd.addEventListener('keydown', elem.__gwt_handler, true);
+                wnd.addEventListener('keyup', elem.__gwt_handler, true);
+                wnd.addEventListener('keypress', elem.__gwt_handler, true);
+                wnd.addEventListener('mousedown', elem.__gwt_handler, true);
+                wnd.addEventListener('mouseup', elem.__gwt_handler, true);
+                wnd.addEventListener('mousemove', elem.__gwt_handler, true);
+                wnd.addEventListener('mouseover', elem.__gwt_handler, true);
+                wnd.addEventListener('mouseout', elem.__gwt_handler, true);
+                wnd.addEventListener('click', elem.__gwt_handler, true);
 
-             wnd.addEventListener('focus', elem.__gwt_focusHandler, true);
-             wnd.addEventListener('blur', elem.__gwt_blurHandler, true);
-           }-*/;
+                wnd.addEventListener('focus', elem.__gwt_focusHandler, true);
+                wnd.addEventListener('blur', elem.__gwt_blurHandler, true);
+              }-*/;
 
     @Override
     protected void onElementInitialized() {
@@ -350,34 +354,34 @@
     }
 
     protected native void setHTMLImpl(String html) /*-{
-             this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem.contentWindow.document.body.innerHTML = html;
-           }-*/;
+                this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem.contentWindow.document.body.innerHTML = html;
+              }-*/;
 
     protected native void setTextImpl(String text) /*-{
-             this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem.contentWindow.document.body.textContent = text;
-           }-*/;
+                this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem.contentWindow.document.body.textContent = text;
+              }-*/;
 
     protected native void unhookEvents() /*-{
-             var elem = this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem;
-             var wnd = elem.contentWindow;
+                var elem = this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem;
+                var wnd = elem.contentWindow;
 
-             wnd.removeEventListener('keydown', elem.__gwt_handler, true);
-             wnd.removeEventListener('keyup', elem.__gwt_handler, true);
-             wnd.removeEventListener('keypress', elem.__gwt_handler, true);
-             wnd.removeEventListener('mousedown', elem.__gwt_handler, true);
-             wnd.removeEventListener('mouseup', elem.__gwt_handler, true);
-             wnd.removeEventListener('mousemove', elem.__gwt_handler, true);
-             wnd.removeEventListener('mouseover', elem.__gwt_handler, true);
-             wnd.removeEventListener('mouseout', elem.__gwt_handler, true);
-             wnd.removeEventListener('click', elem.__gwt_handler, true);
+                wnd.removeEventListener('keydown', elem.__gwt_handler, true);
+                wnd.removeEventListener('keyup', elem.__gwt_handler, true);
+                wnd.removeEventListener('keypress', elem.__gwt_handler, true);
+                wnd.removeEventListener('mousedown', elem.__gwt_handler, true);
+                wnd.removeEventListener('mouseup', elem.__gwt_handler, true);
+                wnd.removeEventListener('mousemove', elem.__gwt_handler, true);
+                wnd.removeEventListener('mouseover', elem.__gwt_handler, true);
+                wnd.removeEventListener('mouseout', elem.__gwt_handler, true);
+                wnd.removeEventListener('click', elem.__gwt_handler, true);
 
-             wnd.removeEventListener('focus', elem.__gwt_focusHandler, true);
-             wnd.removeEventListener('blur', elem.__gwt_blurHandler, true);
+                wnd.removeEventListener('focus', elem.__gwt_focusHandler, true);
+                wnd.removeEventListener('blur', elem.__gwt_blurHandler, true);
 
-             elem.__gwt_handler = null;
-             elem.__gwt_focusHandler = null;
-             elem.__gwt_blurHandler = null;
-           }-*/;
+                elem.__gwt_handler = null;
+                elem.__gwt_focusHandler = null;
+                elem.__gwt_blurHandler = null;
+              }-*/;
 
     void execCommand(String cmd, String param) {
         if (isRichEditingActive(elem)) {
@@ -390,12 +394,12 @@
     }
 
     native void execCommandAssumingFocus(String cmd, String param) /*-{
-             this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem.contentWindow.document.execCommand(cmd, false, param);
-           }-*/;
+                this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem.contentWindow.document.execCommand(cmd, false, param);
+              }-*/;
 
     native boolean isRichEditingActive(Element e) /*-{
-             return ((e.contentWindow.document.designMode).toUpperCase()) == 'ON';
-           }-*/;
+                return ((e.contentWindow.document.designMode).toUpperCase()) == 'ON';
+              }-*/;
 
     boolean queryCommandState(String cmd) {
         if (isRichEditingActive(elem)) {
@@ -410,8 +414,8 @@
     }
 
     native boolean queryCommandStateAssumingFocus(String cmd) /*-{
-             return !!this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem.contentWindow.document.queryCommandState(cmd);
-           }-*/;
+                return !!this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem.contentWindow.document.queryCommandState(cmd);
+              }-*/;
 
     String queryCommandValue(String cmd) {
         // When executing a command, focus the iframe first, since some commands
@@ -421,6 +425,6 @@
     }
 
     native String queryCommandValueAssumingFocus(String cmd) /*-{
-             return this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem.contentWindow.document.queryCommandValue(cmd);
-           }-*/;
+                return this. at org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl::elem.contentWindow.document.queryCommandValue(cmd);
+              }-*/;
 }

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -19,8 +19,8 @@
  \*/
 package org.ourproject.kune.platf.client.ui.upload;
 
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.ui.TextUtils;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.site.Site;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 

Modified: trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -29,6 +29,7 @@
 import org.ourproject.kune.platf.client.rpc.I18nService;
 import org.ourproject.kune.platf.client.rpc.SiteService;
 import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
+import org.ourproject.kune.platf.client.rpc.UserService;
 import org.ourproject.kune.platf.client.services.I18nTranslationService;
 import org.ourproject.kune.platf.server.access.AccessRightsService;
 import org.ourproject.kune.platf.server.access.AccessRightsServiceDefault;
@@ -94,7 +95,6 @@
 import org.ourproject.kune.platf.server.tool.ServerToolRegistry;
 import org.ourproject.kune.platf.server.users.UserInfoService;
 import org.ourproject.kune.platf.server.users.UserInfoServiceDefault;
-import org.ourproject.kune.workspace.client.site.rpc.UserService;
 
 import com.google.inject.matcher.Matchers;
 import com.wideplay.warp.persist.PersistenceService;

Modified: trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -59,7 +59,6 @@
     private final Content contentFinder;
     private final Container containerFinder;
     private final TagUserContentManager tagManager;
-    private final Provider<EntityManager> provider;
 
     @Inject
     public ContentManagerDefault(final Content contentFinder, final Container containerFinder,
@@ -68,7 +67,6 @@
         super(provider, Content.class);
         this.contentFinder = contentFinder;
         this.containerFinder = containerFinder;
-        this.provider = provider;
         this.finder = finder;
         this.userFinder = userFinder;
         this.languageFinder = languageFinder;

Modified: trunk/src/main/java/org/ourproject/kune/platf/server/rpc/UserRPC.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/rpc/UserRPC.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/rpc/UserRPC.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -29,6 +29,7 @@
 import org.ourproject.kune.platf.client.errors.AccessViolationException;
 import org.ourproject.kune.platf.client.errors.DefaultException;
 import org.ourproject.kune.platf.client.errors.UserAuthException;
+import org.ourproject.kune.platf.client.rpc.UserService;
 import org.ourproject.kune.platf.server.UserSession;
 import org.ourproject.kune.platf.server.access.AccessRol;
 import org.ourproject.kune.platf.server.auth.ActionLevel;
@@ -43,7 +44,6 @@
 import org.ourproject.kune.platf.server.mapper.Mapper;
 import org.ourproject.kune.platf.server.users.UserInfo;
 import org.ourproject.kune.platf.server.users.UserInfoService;
-import org.ourproject.kune.workspace.client.site.rpc.UserService;
 
 import com.google.inject.Inject;
 import com.google.inject.Provider;

Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -28,6 +28,7 @@
 import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
 import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
 import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.services.KuneErrorHandler;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
@@ -40,7 +41,6 @@
 import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
 import org.ourproject.kune.workspace.client.editor.TextEditor;
 import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
 
 import com.calclab.suco.client.ioc.Provider;

Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -27,6 +27,7 @@
 import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
 import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
 import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.services.KuneErrorHandler;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
@@ -48,7 +49,6 @@
 import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
 import org.ourproject.kune.workspace.client.editor.TextEditor;
 import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 import org.ourproject.kune.workspace.client.themes.WsThemePresenter;

Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -20,9 +20,9 @@
 package org.ourproject.kune.wiki.client;
 
 import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.tool.FoldableAbstractClientTool;
 import org.ourproject.kune.platf.client.tool.ToolSelector;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
 

Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPresenter.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPresenter.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -22,12 +22,12 @@
 import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
 import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
 import org.ourproject.kune.platf.client.dto.StateContentDTO;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
 import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
 import org.ourproject.kune.wiki.client.WikiClientTool;
 import org.ourproject.kune.workspace.client.cnt.FoldableContentPresenter;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 
 import com.calclab.suco.client.ioc.Provider;
 

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -46,6 +46,7 @@
 import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
 import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
 import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.services.KuneErrorHandler;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
@@ -57,7 +58,6 @@
 import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
 import org.ourproject.kune.workspace.client.editor.TextEditor;
 import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.site.Site;
 import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
 import org.ourproject.kune.workspace.client.socialnet.RadioMustBeChecked;

Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/KuneRegistryModule.java (from rev 1045, trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneRegistryModule.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneRegistryModule.java	2009-02-03 10:15:36 UTC (rev 1045)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/KuneRegistryModule.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -0,0 +1,220 @@
+/*
+ *
+ * Copyright (C) 2007-2009 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 org.ourproject.kune.workspace.client;
+
+import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
+import org.ourproject.kune.platf.client.actions.ContentEditorActionRegistry;
+import org.ourproject.kune.platf.client.actions.ContentIconsRegistry;
+import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
+import org.ourproject.kune.platf.client.actions.GroupActionRegistry;
+import org.ourproject.kune.platf.client.actions.UserActionRegistry;
+import org.ourproject.kune.platf.client.registry.AclEditableRegistry;
+import org.ourproject.kune.platf.client.registry.AuthorableRegistry;
+import org.ourproject.kune.platf.client.registry.CanBeHomepageRegistry;
+import org.ourproject.kune.platf.client.registry.ComentableRegistry;
+import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
+import org.ourproject.kune.platf.client.registry.DragableRegistry;
+import org.ourproject.kune.platf.client.registry.DropableRegistry;
+import org.ourproject.kune.platf.client.registry.EmailSubscribeAbleRegistry;
+import org.ourproject.kune.platf.client.registry.LicensableRegistry;
+import org.ourproject.kune.platf.client.registry.PublishModerableRegistry;
+import org.ourproject.kune.platf.client.registry.RateableRegistry;
+import org.ourproject.kune.platf.client.registry.RenamableRegistry;
+import org.ourproject.kune.platf.client.registry.TageableRegistry;
+import org.ourproject.kune.platf.client.registry.TranslatableRegistry;
+import org.ourproject.kune.platf.client.registry.VersionableRegistry;
+import org.ourproject.kune.platf.client.registry.XmppComentableRegistry;
+import org.ourproject.kune.platf.client.registry.XmppNotifyCapableRegistry;
+
+import com.calclab.suco.client.ioc.decorator.Singleton;
+import com.calclab.suco.client.ioc.module.AbstractModule;
+import com.calclab.suco.client.ioc.module.Factory;
+
+public class KuneRegistryModule extends AbstractModule {
+
+    @Override
+    protected void onInstall() {
+
+        register(Singleton.class, new Factory<AclEditableRegistry>(AclEditableRegistry.class) {
+            @Override
+            public AclEditableRegistry create() {
+                return new AclEditableRegistry();
+            }
+        });
+        register(Singleton.class, new Factory<AuthorableRegistry>(AuthorableRegistry.class) {
+            @Override
+            public AuthorableRegistry create() {
+                return new AuthorableRegistry();
+            }
+        });
+        register(Singleton.class, new Factory<CanBeHomepageRegistry>(CanBeHomepageRegistry.class) {
+            @Override
+            public CanBeHomepageRegistry create() {
+                return new CanBeHomepageRegistry();
+            }
+        });
+
+        register(Singleton.class, new Factory<ComentableRegistry>(ComentableRegistry.class) {
+            @Override
+            public ComentableRegistry create() {
+                return new ComentableRegistry();
+            }
+        });
+
+        register(Singleton.class, new Factory<DragableRegistry>(DragableRegistry.class) {
+            @Override
+            public DragableRegistry create() {
+                return new DragableRegistry();
+            }
+        });
+
+        register(Singleton.class, new Factory<DropableRegistry>(DropableRegistry.class) {
+            @Override
+            public DropableRegistry create() {
+                return new DropableRegistry();
+            }
+        });
+
+        register(Singleton.class, new Factory<EmailSubscribeAbleRegistry>(EmailSubscribeAbleRegistry.class) {
+            @Override
+            public EmailSubscribeAbleRegistry create() {
+                return new EmailSubscribeAbleRegistry();
+            }
+        });
+
+        register(Singleton.class, new Factory<LicensableRegistry>(LicensableRegistry.class) {
+            @Override
+            public LicensableRegistry create() {
+                return new LicensableRegistry();
+            }
+        });
+
+        register(Singleton.class, new Factory<PublishModerableRegistry>(PublishModerableRegistry.class) {
+            @Override
+            public PublishModerableRegistry create() {
+                return new PublishModerableRegistry();
+            }
+        });
+
+        register(Singleton.class, new Factory<RateableRegistry>(RateableRegistry.class) {
+            @Override
+            public RateableRegistry create() {
+                return new RateableRegistry();
+            }
+        });
+
+        register(Singleton.class, new Factory<TageableRegistry>(TageableRegistry.class) {
+            @Override
+            public TageableRegistry create() {
+                return new TageableRegistry();
+            }
+        });
+
+        register(Singleton.class, new Factory<RenamableRegistry>(RenamableRegistry.class) {
+            @Override
+            public RenamableRegistry create() {
+                return new RenamableRegistry();
+            }
+        });
+
+        register(Singleton.class, new Factory<TranslatableRegistry>(TranslatableRegistry.class) {
+            @Override
+            public TranslatableRegistry create() {
+                return new TranslatableRegistry();
+            }
+        });
+
+        register(Singleton.class, new Factory<VersionableRegistry>(VersionableRegistry.class) {
+            @Override
+            public VersionableRegistry create() {
+                return new VersionableRegistry();
+            }
+        });
+
+        register(Singleton.class, new Factory<XmppComentableRegistry>(XmppComentableRegistry.class) {
+            @Override
+            public XmppComentableRegistry create() {
+                return new XmppComentableRegistry();
+            }
+        });
+
+        register(Singleton.class, new Factory<XmppNotifyCapableRegistry>(XmppNotifyCapableRegistry.class) {
+            @Override
+            public XmppNotifyCapableRegistry create() {
+                return new XmppNotifyCapableRegistry();
+            }
+        });
+
+        register(Singleton.class, new Factory<ContentIconsRegistry>(ContentIconsRegistry.class) {
+            @Override
+            public ContentIconsRegistry create() {
+                return new ContentIconsRegistry();
+            }
+        });
+
+        register(Singleton.class, new Factory<ContentCapabilitiesRegistry>(ContentCapabilitiesRegistry.class) {
+            @Override
+            public ContentCapabilitiesRegistry create() {
+                return new ContentCapabilitiesRegistry($(AuthorableRegistry.class), $(AclEditableRegistry.class),
+                        $(ContentIconsRegistry.class), $(CanBeHomepageRegistry.class), $(ComentableRegistry.class),
+                        $(DragableRegistry.class), $(DropableRegistry.class), $(EmailSubscribeAbleRegistry.class),
+                        $(LicensableRegistry.class), $(PublishModerableRegistry.class), $(RateableRegistry.class),
+                        $(TageableRegistry.class), $(RenamableRegistry.class), $(TranslatableRegistry.class),
+                        $(VersionableRegistry.class), $(XmppComentableRegistry.class),
+                        $(XmppNotifyCapableRegistry.class));
+            }
+        });
+
+        register(Singleton.class, new Factory<ContextActionRegistry>(ContextActionRegistry.class) {
+            @Override
+            public ContextActionRegistry create() {
+                return new ContextActionRegistry();
+            }
+        });
+
+        register(Singleton.class, new Factory<ContentEditorActionRegistry>(ContentEditorActionRegistry.class) {
+            @Override
+            public ContentEditorActionRegistry create() {
+                return new ContentEditorActionRegistry();
+            }
+        });
+
+        register(Singleton.class, new Factory<ContentActionRegistry>(ContentActionRegistry.class) {
+            @Override
+            public ContentActionRegistry create() {
+                return new ContentActionRegistry();
+            }
+        });
+
+        register(Singleton.class, new Factory<GroupActionRegistry>(GroupActionRegistry.class) {
+            @Override
+            public GroupActionRegistry create() {
+                return new GroupActionRegistry();
+            }
+        });
+
+        register(Singleton.class, new Factory<UserActionRegistry>(UserActionRegistry.class) {
+            @Override
+            public UserActionRegistry create() {
+                return new UserActionRegistry();
+            }
+        });
+    }
+}

Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/KuneWorkspaceModule.java (from rev 1046, trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java	2009-02-03 10:53:22 UTC (rev 1046)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/KuneWorkspaceModule.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -0,0 +1,983 @@
+/*
+ *
+ * Copyright (C) 2007-2009 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 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.ContentIconsRegistry;
+import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
+import org.ourproject.kune.platf.client.actions.GroupActionRegistry;
+import org.ourproject.kune.platf.client.actions.UserActionRegistry;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionBuddiesSummaryToolbar;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionBuddiesSummaryToolbarPresenter;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionCntCtxToolbarPanel;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbarPresenter;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContextToolbar;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContextToolbarPresenter;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionGroupSummaryToolbar;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionGroupSummaryToolbarPresenter;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionParticipationSummaryToolbarPresenter;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionParticipationToolbar;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbar;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPanel;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPresenter;
+import org.ourproject.kune.platf.client.app.ApplicationComponentGroup;
+import org.ourproject.kune.platf.client.app.EntityOptionsGroup;
+import org.ourproject.kune.platf.client.app.TextEditorInsertElementGroup;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.dto.UserSimpleDTO;
+import org.ourproject.kune.platf.client.registry.AuthorableRegistry;
+import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
+import org.ourproject.kune.platf.client.registry.RenamableRegistry;
+import org.ourproject.kune.platf.client.rpc.ContentService;
+import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
+import org.ourproject.kune.platf.client.rpc.GroupService;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
+import org.ourproject.kune.platf.client.rpc.I18nServiceAsync;
+import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
+import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
+import org.ourproject.kune.platf.client.rpc.UserServiceAsync;
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
+import org.ourproject.kune.platf.client.services.ImageUtils;
+import org.ourproject.kune.platf.client.services.Images;
+import org.ourproject.kune.platf.client.services.KuneErrorHandler;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.platf.client.tool.ToolSelector;
+import org.ourproject.kune.platf.client.tool.ToolSelectorPresenter;
+import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
+import org.ourproject.kune.platf.client.ui.palette.ColorWebSafePalette;
+import org.ourproject.kune.platf.client.ui.rate.RateIt;
+import org.ourproject.kune.platf.client.ui.rate.RateItPanel;
+import org.ourproject.kune.platf.client.ui.rate.RateItPresenter;
+import org.ourproject.kune.platf.client.ui.rate.RatePanel;
+import org.ourproject.kune.platf.client.ui.rate.RatePresenter;
+import org.ourproject.kune.platf.client.ui.upload.FileUploader;
+import org.ourproject.kune.platf.client.ui.upload.FileUploaderDialog;
+import org.ourproject.kune.platf.client.ui.upload.FileUploaderPresenter;
+import org.ourproject.kune.platf.client.utils.DeferredCommandWrapper;
+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.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.TextEditor;
+import org.ourproject.kune.workspace.client.editor.TextEditorPanel;
+import org.ourproject.kune.workspace.client.editor.TextEditorPresenter;
+import org.ourproject.kune.workspace.client.editor.insert.TextEditorInsertElement;
+import org.ourproject.kune.workspace.client.editor.insert.TextEditorInsertElementPanel;
+import org.ourproject.kune.workspace.client.editor.insert.TextEditorInsertElementPresenter;
+import org.ourproject.kune.workspace.client.editor.insert.linkemail.TextEditorInsertLinkEmail;
+import org.ourproject.kune.workspace.client.editor.insert.linkemail.TextEditorInsertLinkEmailPanel;
+import org.ourproject.kune.workspace.client.editor.insert.linkemail.TextEditorInsertLinkEmailPresenter;
+import org.ourproject.kune.workspace.client.editor.insert.linkext.TextEditorInsertLinkExt;
+import org.ourproject.kune.workspace.client.editor.insert.linkext.TextEditorInsertLinkExtPanel;
+import org.ourproject.kune.workspace.client.editor.insert.linkext.TextEditorInsertLinkExtPresenter;
+import org.ourproject.kune.workspace.client.editor.insert.linkext.TextEditorInsertLinkExtView;
+import org.ourproject.kune.workspace.client.editor.insert.linklocal.TextEditorInsertLinkLocal;
+import org.ourproject.kune.workspace.client.editor.insert.linklocal.TextEditorInsertLinkLocalPanel;
+import org.ourproject.kune.workspace.client.editor.insert.linklocal.TextEditorInsertLinkLocalPresenter;
+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.licensefoot.EntityLicensePanel;
+import org.ourproject.kune.workspace.client.licensefoot.EntityLicensePresenter;
+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.newgroup.NewGroup;
+import org.ourproject.kune.workspace.client.newgroup.NewGroupPanel;
+import org.ourproject.kune.workspace.client.newgroup.NewGroupPresenter;
+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.options.EntityOptions;
+import org.ourproject.kune.workspace.client.options.EntityOptionsPanel;
+import org.ourproject.kune.workspace.client.options.EntityOptionsPresenter;
+import org.ourproject.kune.workspace.client.options.license.EntityOptionsDefLicense;
+import org.ourproject.kune.workspace.client.options.license.EntityOptionsDefLicensePanel;
+import org.ourproject.kune.workspace.client.options.license.EntityOptionsDefLicensePresenter;
+import org.ourproject.kune.workspace.client.options.logo.EntityOptionsLogo;
+import org.ourproject.kune.workspace.client.options.logo.EntityOptionsLogoPanel;
+import org.ourproject.kune.workspace.client.options.logo.EntityOptionsLogoPresenter;
+import org.ourproject.kune.workspace.client.options.pscape.EntityOptionsPublicSpaceConf;
+import org.ourproject.kune.workspace.client.options.pscape.EntityOptionsPublicSpaceConfPanel;
+import org.ourproject.kune.workspace.client.options.pscape.EntityOptionsPublicSpaceConfPresenter;
+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.EntityOptionsToolsConfPresenter;
+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.signin.Register;
+import org.ourproject.kune.workspace.client.signin.RegisterPanel;
+import org.ourproject.kune.workspace.client.signin.RegisterPresenter;
+import org.ourproject.kune.workspace.client.signin.RegisterView;
+import org.ourproject.kune.workspace.client.signin.SignIn;
+import org.ourproject.kune.workspace.client.signin.SignInPanel;
+import org.ourproject.kune.workspace.client.signin.SignInPresenter;
+import org.ourproject.kune.workspace.client.signin.SignInView;
+import org.ourproject.kune.workspace.client.site.Site;
+import org.ourproject.kune.workspace.client.site.SiteToken;
+import org.ourproject.kune.workspace.client.site.msg.SiteToastMessage;
+import org.ourproject.kune.workspace.client.site.msg.SiteToastMessagePanel;
+import org.ourproject.kune.workspace.client.site.msg.SiteToastMessagePresenter;
+import org.ourproject.kune.workspace.client.sitebar.sitelogo.SiteLogo;
+import org.ourproject.kune.workspace.client.sitebar.sitelogo.SiteLogoPanel;
+import org.ourproject.kune.workspace.client.sitebar.sitelogo.SiteLogoPresenter;
+import org.ourproject.kune.workspace.client.sitebar.sitenewgroup.SiteNewGroupLink;
+import org.ourproject.kune.workspace.client.sitebar.sitenewgroup.SiteNewGroupLinkPanel;
+import org.ourproject.kune.workspace.client.sitebar.sitenewgroup.SiteNewGroupLinkPresenter;
+import org.ourproject.kune.workspace.client.sitebar.siteoptions.SiteOptions;
+import org.ourproject.kune.workspace.client.sitebar.siteoptions.SiteOptionsPanel;
+import org.ourproject.kune.workspace.client.sitebar.siteoptions.SiteOptionsPresenter;
+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.sitebar.siteusermenu.SiteUserMenu;
+import org.ourproject.kune.workspace.client.sitebar.siteusermenu.SiteUserMenuPanel;
+import org.ourproject.kune.workspace.client.sitebar.siteusermenu.SiteUserMenuPresenter;
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.socialnet.BuddiesSummary;
+import org.ourproject.kune.workspace.client.socialnet.BuddiesSummaryPanel;
+import org.ourproject.kune.workspace.client.socialnet.BuddiesSummaryPresenter;
+import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummary;
+import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPanel;
+import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPresenter;
+import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryView;
+import org.ourproject.kune.workspace.client.socialnet.ParticipationSummary;
+import org.ourproject.kune.workspace.client.socialnet.ParticipationSummaryPanel;
+import org.ourproject.kune.workspace.client.socialnet.ParticipationSummaryPresenter;
+import org.ourproject.kune.workspace.client.socialnet.ParticipationSummaryView;
+import org.ourproject.kune.workspace.client.socialnet.other.AddAsBuddie;
+import org.ourproject.kune.workspace.client.socialnet.other.AddAsBuddiePanel;
+import org.ourproject.kune.workspace.client.socialnet.other.AddAsBuddiePresenter;
+import org.ourproject.kune.workspace.client.summary.GroupSummary;
+import org.ourproject.kune.workspace.client.summary.GroupSummaryPanel;
+import org.ourproject.kune.workspace.client.summary.GroupSummaryPresenter;
+import org.ourproject.kune.workspace.client.summary.GroupSummaryView;
+import org.ourproject.kune.workspace.client.tags.TagsSummary;
+import org.ourproject.kune.workspace.client.tags.TagsSummaryPanel;
+import org.ourproject.kune.workspace.client.tags.TagsSummaryPresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemePanel;
+import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+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 com.calclab.suco.client.events.Listener0;
+import com.calclab.suco.client.ioc.decorator.NoDecoration;
+import com.calclab.suco.client.ioc.decorator.Singleton;
+import com.calclab.suco.client.ioc.module.AbstractModule;
+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 KuneWorkspaceModule extends AbstractModule {
+    @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, $$(SitePublicSpaceLink.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<Site>(Site.class) {
+            @Override
+            public Site create() {
+                return new Site($(I18nUITranslationService.class), $(SiteProgress.class), $$(SiteToastMessage.class),
+                        $$(WorkspaceSkeleton.class));
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<SitePublicSpaceLink>(SitePublicSpaceLink.class) {
+            @Override
+            public SitePublicSpaceLink create() {
+                final SitePublicSpaceLinkPresenter presenter = new SitePublicSpaceLinkPresenter($(StateManager.class));
+                final SitePublicSpaceLinkPanel panel = new SitePublicSpaceLinkPanel(presenter,
+                        $(WorkspaceSkeleton.class), $(I18nUITranslationService.class), $(Images.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(NoDecoration.class, new Factory<SiteToastMessage>(SiteToastMessage.class) {
+            @Override
+            public SiteToastMessage create() {
+                final SiteToastMessagePresenter presenter = new SiteToastMessagePresenter();
+                final SiteToastMessagePanel panel = new SiteToastMessagePanel();
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<SiteUserMenu>(SiteUserMenu.class) {
+            @Override
+            public SiteUserMenu create() {
+                final SiteUserMenuPresenter presenter = new SiteUserMenuPresenter($(Session.class),
+                        $(StateManager.class), $$(EntityOptions.class), $$(FileDownloadUtils.class));
+                final SiteUserMenuPanel panel = new SiteUserMenuPanel(presenter, $(WorkspaceSkeleton.class),
+                        $(I18nUITranslationService.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<SiteSignInLink>(SiteSignInLink.class) {
+            @Override
+            public SiteSignInLink create() {
+                final SiteSignInLinkPresenter presenter = new SiteSignInLinkPresenter($(Session.class));
+                final SiteSignInLinkPanel panel = new SiteSignInLinkPanel(presenter, $(I18nUITranslationService.class),
+                        $(WorkspaceSkeleton.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<SiteSignOutLink>(SiteSignOutLink.class) {
+            @Override
+            public SiteSignOutLink create() {
+                final SiteSignOutLinkPresenter presenter = new SiteSignOutLinkPresenter($(Session.class),
+                        $$(UserServiceAsync.class), $$(KuneErrorHandler.class));
+                final SiteSignOutLinkPanel panel = new SiteSignOutLinkPanel(presenter,
+                        $(I18nUITranslationService.class), $(WorkspaceSkeleton.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<SiteNewGroupLink>(SiteNewGroupLink.class) {
+            @Override
+            public SiteNewGroupLink create() {
+                final SiteNewGroupLinkPresenter presenter = new SiteNewGroupLinkPresenter();
+                final SiteNewGroupLinkPanel panel = new SiteNewGroupLinkPanel(presenter, $(WorkspaceSkeleton.class),
+                        $(I18nUITranslationService.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<SiteOptions>(SiteOptions.class) {
+            @Override
+            public SiteOptions create() {
+                final SiteOptionsPresenter presenter = new SiteOptionsPresenter();
+                final SiteOptionsPanel panel = new SiteOptionsPanel(presenter, $(WorkspaceSkeleton.class),
+                        $(I18nUITranslationService.class), $$(I18nTranslator.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<SiteSearch>(SiteSearch.class) {
+            @Override
+            public SiteSearch create() {
+                final SiteSearchPresenter presenter = new SiteSearchPresenter($$(SiteSearcher.class),
+                        $(I18nTranslationService.class));
+                final SiteSearchPanel panel = new SiteSearchPanel(presenter, $(WorkspaceSkeleton.class),
+                        $(Images.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<SiteLogo>(SiteLogo.class) {
+            @Override
+            public SiteLogo create() {
+                final SiteLogoPresenter presenter = new SiteLogoPresenter($(Session.class));
+                final SiteLogoPanel panel = new SiteLogoPanel(presenter, $(WorkspaceSkeleton.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<EntityHeader>(EntityHeader.class) {
+            @Override
+            public EntityHeader create() {
+                final EntityHeaderPresenter presenter = new EntityHeaderPresenter($(StateManager.class),
+                        $(WsThemePresenter.class), $(Session.class));
+                final EntityHeaderPanel panel = new EntityHeaderPanel($(WorkspaceSkeleton.class),
+                        $$(FileDownloadUtils.class), $(Images.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<WsThemePresenter>(WsThemePresenter.class) {
+            @Override
+            public WsThemePresenter create() {
+                final WsThemePresenter presenter = new WsThemePresenter($(Session.class), $$(GroupServiceAsync.class),
+                        $(StateManager.class));
+                final WsThemePanel panel = new WsThemePanel($(WorkspaceSkeleton.class), presenter,
+                        $(I18nUITranslationService.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<EntityTitle>(EntityTitle.class) {
+            @Override
+            public EntityTitle create() {
+                final EntityTitlePresenter presenter = new EntityTitlePresenter($(StateManager.class),
+                        $(Session.class), $(ContentIconsRegistry.class), $(RenamableRegistry.class),
+                        $(RenameAction.class));
+                final EntityTitlePanel panel = new EntityTitlePanel($(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(
+                        $(I18nUITranslationService.class), $(StateManager.class), false, $(AuthorableRegistry.class));
+                final EntitySubTitlePanel panel = new EntitySubTitlePanel(presenter, $(WorkspaceSkeleton.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<EntityLicensePresenter>(EntityLicensePresenter.class) {
+            @Override
+            public EntityLicensePresenter create() {
+                final EntityLicensePresenter presenter = new EntityLicensePresenter($(StateManager.class));
+                final EntityLicensePanel panel = new EntityLicensePanel(presenter, $(I18nUITranslationService.class),
+                        $(WorkspaceSkeleton.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<RateIt>(RateIt.class) {
+            @Override
+            public RateIt create() {
+                final RateItPresenter presenter = new RateItPresenter($(I18nUITranslationService.class),
+                        $(Session.class), $$(ContentServiceAsync.class), $(StateManager.class),
+                        $$(RatePresenter.class), $(ContentCapabilitiesRegistry.class));
+                final RateItPanel panel = new RateItPanel(presenter, $(I18nUITranslationService.class),
+                        $(WorkspaceSkeleton.class), $(Images.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<RatePresenter>(RatePresenter.class) {
+            @Override
+            public RatePresenter create() {
+                final RatePresenter presenter = new RatePresenter($(StateManager.class),
+                        $(ContentCapabilitiesRegistry.class));
+                final RatePanel panel = new RatePanel(null, null, $(I18nUITranslationService.class),
+                        $(WorkspaceSkeleton.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(Singleton.class, new Factory<ActionManager>(ActionManager.class) {
+            @Override
+            public ActionManager create() {
+                return new ActionManager($(WorkspaceSkeleton.class));
+            }
+        });
+
+        register(Singleton.class, new Factory<ActionGroupSummaryToolbar>(ActionGroupSummaryToolbar.class) {
+            @Override
+            public ActionGroupSummaryToolbar create() {
+                final ActionToolbarPanel<StateToken> panel = new ActionToolbarPanel<StateToken>(
+                        $$(ActionManager.class), $(WorkspaceSkeleton.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>(
+                        $$(ActionManager.class), $(WorkspaceSkeleton.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>(
+                        $$(ActionManager.class), $(WorkspaceSkeleton.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(
+                        $(I18nUITranslationService.class), $(StateManager.class), $(ImageUtils.class),
+                        $(Session.class), $$(SocialNetworkServiceAsync.class), $$(GroupServiceAsync.class),
+                        $$(GroupLiveSearcher.class), $(WsThemePresenter.class), $$(ChatEngine.class),
+                        $(GroupActionRegistry.class), $(ActionGroupSummaryToolbar.class), $$(FileDownloadUtils.class));
+                final GroupMembersSummaryView view = new GroupMembersSummaryPanel(presenter,
+                        $(I18nUITranslationService.class), $(WorkspaceSkeleton.class), $(
+                                ActionGroupSummaryToolbar.class).getView());
+                presenter.init(view);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<GroupSummary>(GroupSummary.class) {
+            @Override
+            public GroupSummary create() {
+                final GroupSummaryPresenter presenter = new GroupSummaryPresenter($(StateManager.class),
+                        $(WsThemePresenter.class));
+                final GroupSummaryView view = new GroupSummaryPanel($(Images.class), presenter,
+                        $(I18nUITranslationService.class), $(WorkspaceSkeleton.class));
+                presenter.init(view);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<AddAsBuddie>(AddAsBuddie.class) {
+            @Override
+            public AddAsBuddie create() {
+                final AddAsBuddiePresenter presenter = new AddAsBuddiePresenter($$(ChatEngine.class),
+                        $(StateManager.class), $(Session.class));
+                final AddAsBuddiePanel panel = new AddAsBuddiePanel(presenter, $(EntityHeader.class), $(Images.class),
+                        $(I18nTranslationService.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<BuddiesSummary>(BuddiesSummary.class) {
+            @Override
+            public BuddiesSummary create() {
+                final BuddiesSummaryPresenter presenter = new BuddiesSummaryPresenter($(StateManager.class),
+                        $(Session.class), $$(UserServiceAsync.class), $(UserActionRegistry.class),
+                        $(I18nTranslationService.class), $$(ChatEngine.class), $(ActionBuddiesSummaryToolbar.class),
+                        $$(FileDownloadUtils.class), $(ImageUtils.class), $$(SocialNetworkServiceAsync.class),
+                        $(GroupActionRegistry.class));
+                final BuddiesSummaryPanel panel = new BuddiesSummaryPanel(presenter, $(WorkspaceSkeleton.class),
+                        $(I18nTranslationService.class), $(ActionManager.class),
+                        $(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(
+                        $(I18nUITranslationService.class), $(StateManager.class), $(ImageUtils.class),
+                        $(Session.class), $$(SocialNetworkServiceAsync.class), $(WsThemePresenter.class),
+                        $(GroupActionRegistry.class), $(ActionParticipationToolbar.class), $$(FileDownloadUtils.class));
+                final ParticipationSummaryView view = new ParticipationSummaryPanel(presenter,
+                        $(I18nUITranslationService.class), $(WorkspaceSkeleton.class),
+                        ($(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($(Session.class),
+                        $$(SiteSearcher.class), $(StateManager.class), $(WsThemePresenter.class));
+                final TagsSummaryPanel panel = new TagsSummaryPanel(presenter, $(I18nUITranslationService.class),
+                        $(WorkspaceSkeleton.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<NoHomePage>(NoHomePage.class) {
+            @Override
+            public NoHomePage create() {
+                final NoHomePagePresenter presenter = new NoHomePagePresenter($(StateManager.class),
+                        $$(EntityHeader.class));
+                final NoHomePagePanel panel = new NoHomePagePanel(presenter, $(WorkspaceSkeleton.class),
+                        $(I18nTranslationService.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<EntityOptions>(EntityOptions.class) {
+            @Override
+            public EntityOptions create() {
+                final EntityOptionsPresenter presenter = new EntityOptionsPresenter($(StateManager.class));
+                final EntityOptionsPanel panel = new EntityOptionsPanel(presenter, $(EntityHeader.class),
+                        $(I18nTranslationService.class), $(Images.class), $(EntityOptionsGroup.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(EntityOptionsGroup.class, new Factory<EntityOptionsToolsConf>(EntityOptionsToolsConf.class) {
+            @Override
+            public EntityOptionsToolsConf create() {
+                final EntityOptionsToolsConfPresenter presenter = new EntityOptionsToolsConfPresenter(
+                        $(StateManager.class), $(Session.class), $(I18nTranslationService.class),
+                        $(EntityOptions.class), $$(GroupServiceAsync.class));
+                final EntityOptionsToolsConfPanel panel = new EntityOptionsToolsConfPanel(presenter,
+                        $(WorkspaceSkeleton.class), $(I18nTranslationService.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(EntityOptionsGroup.class, new Factory<EntityOptionsLogo>(EntityOptionsLogo.class) {
+            @Override
+            public EntityOptionsLogo create() {
+                final EntityOptionsLogoPresenter presenter = new EntityOptionsLogoPresenter($(Session.class),
+                        $(EntityHeader.class), $(EntityOptions.class), $(StateManager.class),
+                        $$(UserServiceAsync.class), $$(ChatEngine.class));
+                final EntityOptionsLogoPanel panel = new EntityOptionsLogoPanel(presenter, $(WorkspaceSkeleton.class),
+                        $(I18nTranslationService.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(EntityOptionsGroup.class, new Factory<EntityOptionsDefLicense>(EntityOptionsDefLicense.class) {
+            @Override
+            public EntityOptionsDefLicense create() {
+                final EntityOptionsDefLicensePresenter presenter = new EntityOptionsDefLicensePresenter(
+                        $(EntityOptions.class), $(StateManager.class), $(Session.class), $$(LicenseWizard.class),
+                        $$(LicenseChangeAction.class));
+                final EntityOptionsDefLicensePanel panel = new EntityOptionsDefLicensePanel(presenter,
+                        $(WorkspaceSkeleton.class), $(I18nTranslationService.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(EntityOptionsGroup.class,
+                new Factory<EntityOptionsPublicSpaceConf>(EntityOptionsPublicSpaceConf.class) {
+                    @Override
+                    public EntityOptionsPublicSpaceConf create() {
+                        final EntityOptionsPublicSpaceConfPresenter presenter = new EntityOptionsPublicSpaceConfPresenter(
+                                $(EntityOptions.class));
+                        final EntityOptionsPublicSpaceConfPanel panel = new EntityOptionsPublicSpaceConfPanel(
+                                presenter, $(WorkspaceSkeleton.class), $(I18nTranslationService.class),
+                                $(WsThemePresenter.class));
+                        presenter.init(panel);
+                        return presenter;
+                    }
+                });
+
+        register(Singleton.class, new Factory<LicenseChangeAction>(LicenseChangeAction.class) {
+            @Override
+            public LicenseChangeAction create() {
+                return new LicenseChangeAction($$(GroupServiceAsync.class), $(Session.class),
+                        $(I18nTranslationService.class), $(StateManager.class));
+            }
+        });
+
+        register(Singleton.class, new Factory<RenameAction>(RenameAction.class) {
+            @Override
+            public RenameAction create() {
+                return new RenameAction($(I18nTranslationService.class), $(Session.class),
+                        $$(ContentServiceAsync.class));
+            }
+        });
+
+        register(Singleton.class, new Factory<LicenseWizard>(LicenseWizard.class) {
+            @Override
+            public LicenseWizard create() {
+                final LicenseWizardPresenter presenter = new LicenseWizardPresenter(
+                        $(LicenseWizardFirstFormView.class), $(LicenseWizardSndFormView.class),
+                        $(LicenseWizardTrdFormView.class), $(LicenseWizardFrdFormView.class), $(Session.class));
+                final LicenseWizardPanel panel = new LicenseWizardPanel(presenter, $(WorkspaceSkeleton.class),
+                        $(I18nTranslationService.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(Singleton.class, new Factory<LicenseWizardFirstFormView>(LicenseWizardFirstFormView.class) {
+            @Override
+            public LicenseWizardFirstFormView create() {
+                return new LicenseWizardFirstForm($(I18nTranslationService.class));
+            }
+        });
+
+        register(Singleton.class, new Factory<LicenseWizardSndFormView>(LicenseWizardSndFormView.class) {
+            @Override
+            public LicenseWizardSndFormView create() {
+                return new LicenseWizardSndForm($(I18nTranslationService.class));
+            }
+        });
+
+        register(Singleton.class, new Factory<LicenseWizardTrdFormView>(LicenseWizardTrdFormView.class) {
+            @Override
+            public LicenseWizardTrdFormView create() {
+                return new LicenseWizardTrdForm($(Images.class), $(I18nTranslationService.class));
+            }
+        });
+
+        register(Singleton.class, new Factory<LicenseWizardFrdFormView>(LicenseWizardFrdFormView.class) {
+            @Override
+            public LicenseWizardFrdFormView create() {
+                return new LicenseWizardFrdForm($(I18nTranslationService.class), $(Session.class));
+            }
+        });
+
+        register(Singleton.class, new Factory<FileUploader>(FileUploader.class) {
+            @Override
+            public FileUploader create() {
+                final FileUploaderPresenter presenter = new FileUploaderPresenter($(Session.class));
+                final FileUploaderDialog panel = new FileUploaderDialog(presenter, $(I18nUITranslationService.class),
+                        $(WorkspaceSkeleton.class));
+                presenter.init(panel);
+                return presenter;
+            }
+
+            @Override
+            public void onAfterCreated(FileUploader uploader) {
+                $(ContextNavigator.class).addFileUploaderListener(uploader);
+            }
+        });
+
+        register(Singleton.class, new Factory<SiteSearcher>(SiteSearcher.class) {
+            @Override
+            public SiteSearcher create() {
+                final SiteSearcherPresenter presenter = new SiteSearcherPresenter($$(StateManager.class));
+                final SiteSearcherView view = new SiteSearcherPanel(presenter, $(I18nTranslationService.class),
+                        $(WorkspaceSkeleton.class));
+                presenter.init(view);
+                return presenter;
+            }
+        });
+
+        register(Singleton.class, new Factory<I18nTranslator>(I18nTranslator.class) {
+            @Override
+            public I18nTranslator create() {
+                final I18nTranslatorPresenter presenter = new I18nTranslatorPresenter($(Session.class),
+                        $(I18nServiceAsync.class), $(I18nUITranslationService.class));
+                final I18nTranslatorView view = new I18nTranslatorPanel(presenter, $(I18nTranslationService.class),
+                        $(LanguageSelector.class), $(WorkspaceSkeleton.class), $(Images.class));
+                presenter.init(view);
+                return presenter;
+            }
+        });
+
+        register(Singleton.class, new Factory<SignIn>(SignIn.class) {
+            @Override
+            public SignIn create() {
+                final SignInPresenter presenter = new SignInPresenter($(Session.class), $(StateManager.class),
+                        $(I18nUITranslationService.class), $$(UserServiceAsync.class), $$(Register.class));
+                final SignInView panel = new SignInPanel(presenter, $(I18nTranslationService.class),
+                        $(WorkspaceSkeleton.class), $(Images.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(Singleton.class, new Factory<Register>(Register.class) {
+            @Override
+            public Register create() {
+                final RegisterPresenter presenter = new RegisterPresenter($(Session.class), $(StateManager.class),
+                        $(I18nUITranslationService.class), $$(UserServiceAsync.class), $$(SignIn.class));
+                final RegisterView panel = new RegisterPanel(presenter, $(I18nTranslationService.class),
+                        $(WorkspaceSkeleton.class), $(Session.class), $(Images.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(Singleton.class, new Factory<NewGroup>(NewGroup.class) {
+            @Override
+            public NewGroup create() {
+                final NewGroupPresenter presenter = new NewGroupPresenter($(I18nTranslationService.class),
+                        $(Session.class), $(StateManager.class), $$(GroupServiceAsync.class));
+                final NewGroupPanel view = new NewGroupPanel(presenter, $(I18nTranslationService.class),
+                        $$(LicenseWizard.class), $(Images.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,
+                        $(I18nTranslationService.class), $(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,
+                        $(I18nTranslationService.class), $(FileDownloadUtils.class));
+                presenter.init(view);
+                return presenter;
+            }
+        });
+
+        register(Singleton.class, new Factory<ToolSelector>(ToolSelector.class) {
+            @Override
+            public ToolSelector create() {
+                final ToolSelectorPresenter presenter = new ToolSelectorPresenter($(StateManager.class),
+                        $(WsThemePresenter.class));
+                return presenter;
+            }
+        });
+
+        register(Singleton.class, new Factory<TextEditorInsertElement>(TextEditorInsertElement.class) {
+            @Override
+            public TextEditorInsertElement create() {
+                final TextEditorInsertElementPresenter presenter = new TextEditorInsertElementPresenter();
+                final TextEditorInsertElementPanel panel = new TextEditorInsertElementPanel(presenter,
+                        $(WorkspaceSkeleton.class), $(Images.class), $(I18nTranslationService.class),
+                        $(TextEditorInsertElementGroup.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(TextEditorInsertElementGroup.class, new Factory<TextEditorInsertLinkLocal>(
+                TextEditorInsertLinkLocal.class) {
+            @Override
+            public TextEditorInsertLinkLocal create() {
+                final TextEditorInsertLinkLocalPresenter presenter = new TextEditorInsertLinkLocalPresenter(
+                        $(TextEditorInsertElement.class));
+                final TextEditorInsertLinkLocalPanel panel = new TextEditorInsertLinkLocalPanel(presenter,
+                        $(WorkspaceSkeleton.class), $(I18nTranslationService.class), $(FileDownloadUtils.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(TextEditorInsertElementGroup.class,
+                new Factory<TextEditorInsertLinkExt>(TextEditorInsertLinkExt.class) {
+                    @Override
+                    public TextEditorInsertLinkExt create() {
+                        final TextEditorInsertLinkExtPresenter presenter = new TextEditorInsertLinkExtPresenter(
+                                $(TextEditorInsertElement.class));
+                        final TextEditorInsertLinkExtView panel = new TextEditorInsertLinkExtPanel(presenter,
+                                $(I18nTranslationService.class));
+                        presenter.init(panel);
+                        return presenter;
+                    }
+                });
+
+        register(TextEditorInsertElementGroup.class, new Factory<TextEditorInsertLinkEmail>(
+                TextEditorInsertLinkEmail.class) {
+            @Override
+            public TextEditorInsertLinkEmail create() {
+                final TextEditorInsertLinkEmailPresenter presenter = new TextEditorInsertLinkEmailPresenter(
+                        $(TextEditorInsertElement.class));
+                final TextEditorInsertLinkEmailPanel panel = new TextEditorInsertLinkEmailPanel(presenter,
+                        $(I18nTranslationService.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(Singleton.class, new Factory<TextEditor>(TextEditor.class) {
+            @Override
+            public TextEditor create() {
+                final ActionCntCtxToolbarPanel<StateToken> contentNavigatorToolbar = new ActionCntCtxToolbarPanel<StateToken>(
+                        ActionCntCtxToolbarPanel.Position.content, $$(ActionManager.class), $(WorkspaceSkeleton.class));
+                final ActionToolbar<StateToken> toolbar = new ActionToolbarPresenter<StateToken>(
+                        contentNavigatorToolbar);
+
+                final TextEditorPresenter presenter = new TextEditorPresenter(true, toolbar,
+                        $(I18nUITranslationService.class), $(StateManager.class), $(SiteSignOutLink.class),
+                        $(DeferredCommandWrapper.class));
+                final TextEditorPanel panel = new TextEditorPanel(presenter, $(I18nTranslationService.class),
+                        $(WorkspaceSkeleton.class), $(ColorWebSafePalette.class), $(TextEditorInsertElement.class),
+                        false);
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(Singleton.class, new Factory<LanguageSelector>(LanguageSelector.class) {
+            @Override
+            public LanguageSelector create() {
+                final LanguageSelectorPresenter presenter = new LanguageSelectorPresenter($(Session.class));
+                final LanguageSelectorView view = new LanguageSelectorPanel(presenter, $(I18nTranslationService.class));
+                presenter.init(view);
+                return presenter;
+            }
+        });
+
+        // Register of tokens like "signin", "newgroup", "translate" etcetera
+        $(StateManager.class).addSiteToken(SiteToken.signin.toString(), new Listener0() {
+            public void onEvent() {
+                $(SignIn.class).doSignIn();
+            }
+        });
+
+        $(StateManager.class).addSiteToken(SiteToken.register.toString(), new Listener0() {
+            public void onEvent() {
+                $(Register.class).doRegister();
+            }
+        });
+
+        $(StateManager.class).addSiteToken(SiteToken.newgroup.toString(), new Listener0() {
+            public void onEvent() {
+                $(NewGroup.class).doNewGroup();
+            }
+        });
+
+        $(StateManager.class).addSiteToken(SiteToken.translate.toString(), new Listener0() {
+            public void onEvent() {
+                $(I18nTranslator.class).doShowTranslator();
+            }
+        });
+
+        register(NoDecoration.class, new Factory<ActionContentToolbar>(ActionContentToolbar.class) {
+            @Override
+            public ActionContentToolbar create() {
+                final ActionCntCtxToolbarPanel<StateToken> contentNavigatorToolbar = new ActionCntCtxToolbarPanel<StateToken>(
+                        ActionCntCtxToolbarPanel.Position.content, $$(ActionManager.class), $(WorkspaceSkeleton.class));
+                final ActionContentToolbar toolbar = new ActionContentToolbarPresenter(contentNavigatorToolbar);
+                return toolbar;
+            }
+        });
+
+        register(NoDecoration.class, new Factory<ActionContextToolbar>(ActionContextToolbar.class) {
+            @Override
+            public ActionContextToolbar create() {
+                final ActionCntCtxToolbarPanel<StateToken> contentNavigatorToolbar = new ActionCntCtxToolbarPanel<StateToken>(
+                        ActionCntCtxToolbarPanel.Position.context, $$(ActionManager.class), $(WorkspaceSkeleton.class));
+                final ActionContextToolbar toolbar = new ActionContextToolbarPresenter(contentNavigatorToolbar);
+                return toolbar;
+            }
+        });
+
+        register(Singleton.class, new Factory<ContextNavigator>(ContextNavigator.class) {
+            @Override
+            public ContextNavigator create() {
+                final ContextNavigatorPresenter presenter = new ContextNavigatorPresenter($(StateManager.class),
+                        $(Session.class), $(I18nTranslationService.class), $(ContentIconsRegistry.class),
+                        $(ContentCapabilitiesRegistry.class), $(ActionContextToolbar.class),
+                        $(ContextActionRegistry.class), $$(FileDownloadUtils.class), true, $(RenameAction.class));
+                final ContextNavigatorPanel panel = new ContextNavigatorPanel(presenter,
+                        $(I18nTranslationService.class), $(WorkspaceSkeleton.class), $(ActionManager.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(Singleton.class, new Factory<ContextPropEditor>(ContextPropEditor.class) {
+            @Override
+            public ContextPropEditor create() {
+                final ContextPropEditorPresenter presenter = new ContextPropEditorPresenter($(Session.class),
+                        $(StateManager.class), $(ContentCapabilitiesRegistry.class), $$(TagsSummary.class),
+                        $$(ContentServiceAsync.class), $(EntitySubTitle.class));
+                final ContextPropEditorView view = new ContextPropEditorPanel(presenter,
+                        $(I18nUITranslationService.class), $(WorkspaceSkeleton.class), $$(LanguageSelector.class),
+                        $(Images.class));
+                presenter.init(view);
+                return presenter;
+            }
+        });
+    }
+}

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	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -39,13 +39,13 @@
 import org.ourproject.kune.platf.client.dto.StateToken;
 import org.ourproject.kune.platf.client.dto.UserInfoDTO;
 import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
 import org.ourproject.kune.platf.client.ui.KuneUiUtils;
 import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
 import org.ourproject.kune.platf.client.ui.download.ImageSize;
 import org.ourproject.kune.platf.client.ui.upload.FileUploader;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.title.RenameAction;
 
 import com.calclab.suco.client.events.Listener;
@@ -58,7 +58,7 @@
     private ContextNavigatorView view;
     private final StateManager stateManager;
     private final Session session;
-    private final I18nUITranslationService i18n;
+    private final I18nTranslationService i18n;
     private final HashMap<StateToken, ActionItemCollection<StateToken>> actionsByItem;
     private boolean editOnNextStateChange;
     private final ContentIconsRegistry contentIconsRegistry;
@@ -70,7 +70,7 @@
     private final RenameAction renameAction;
 
     public ContextNavigatorPresenter(final StateManager stateManager, final Session session,
-            final I18nUITranslationService i18n, final ContentIconsRegistry contentIconsRegistry,
+            final I18nTranslationService i18n, final ContentIconsRegistry contentIconsRegistry,
             ContentCapabilitiesRegistry capabilitiesRegistry, final ActionToolbar<StateToken> toolbar,
             final ActionRegistry<StateToken> actionRegistry, Provider<FileDownloadUtils> downloadUtilsProvider,
             boolean useGenericImageIcon, RenameAction renameAction) {

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -28,9 +28,9 @@
 import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbar;
 import org.ourproject.kune.platf.client.dto.AccessRolDTO;
 import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.state.StateManager;
 import org.ourproject.kune.platf.client.utils.DeferredCommandWrapper;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignOutLink;
 
 import com.calclab.suco.client.events.Listener;

Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nChangeListener.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nChangeListener.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nChangeListener.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -1,27 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 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 org.ourproject.kune.workspace.client.i18n;
-
-import com.google.gwt.user.client.EventListener;
-
-public interface I18nChangeListener extends EventListener {
-
-    void onI18nLanguageChange();
-}

Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nChangeListenerCollection.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nChangeListenerCollection.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nChangeListenerCollection.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -1,44 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 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 org.ourproject.kune.workspace.client.i18n;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-/**
- * A helper class for implementers of the SourcesI18nChangeEvents interface.
- * This subclass of {@link ArrayList} assumes that all objects added to it will
- * be of type {@link com.google.gwt.user.client.ui.I18nChangeListener}.
- */
-public class I18nChangeListenerCollection extends ArrayList<I18nChangeListener> {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * Fires a locale change event to all listeners.
-     * 
-     */
-    public void fireI18nLanguageChange() {
-        for (Iterator<I18nChangeListener> it = iterator(); it.hasNext();) {
-            I18nChangeListener listener = it.next();
-            listener.onI18nLanguageChange();
-        }
-    }
-}

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorPresenter.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorPresenter.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -22,6 +22,7 @@
 import org.ourproject.kune.platf.client.View;
 import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
 import org.ourproject.kune.platf.client.rpc.I18nServiceAsync;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.workspace.client.site.Site;
 

Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nUITranslationService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nUITranslationService.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nUITranslationService.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -1,227 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 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 org.ourproject.kune.workspace.client.i18n;
-
-import java.util.Date;
-import java.util.HashMap;
-
-import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
-import org.ourproject.kune.platf.client.rpc.I18nServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.ui.Location;
-import org.ourproject.kune.platf.client.ui.TextUtils;
-import org.ourproject.kune.platf.client.ui.WindowUtils;
-
-import com.allen_sauer.gwt.log.client.Log;
-import com.calclab.suco.client.events.Listener0;
-import com.google.gwt.i18n.client.DateTimeFormat;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public class I18nUITranslationService extends I18nTranslationService {
-    private HashMap<String, String> lexicon;
-    private String currentLanguageCode;
-    private I18nChangeListenerCollection i18nChangeListeners;
-    private I18nLanguageDTO currentLang;
-    private I18nServiceAsync i18nService;
-    private Session session;
-
-    /*
-     * If a UI element need to be fired when (for instance) the language changes
-     * use this. Useful if you widget have to take in account text language
-     * direction, for instance.
-     */
-    public void addI18nChangeListener(final I18nChangeListener listener) {
-        if (i18nChangeListeners == null) {
-            i18nChangeListeners = new I18nChangeListenerCollection();
-        }
-        i18nChangeListeners.add(listener);
-    }
-
-    public void changeCurrentLanguage(final String newLanguage) {
-        if (!newLanguage.equals(this.currentLanguageCode)) {
-            setCurrentLanguage(newLanguage);
-            changeLocale(newLanguage);
-        }
-    }
-
-    public String formatDateWithLocale(final Date date) {
-        String dateFormat = currentLang.getDateFormat();
-        final DateTimeFormat fmt;
-        if (dateFormat == null) {
-            fmt = DateTimeFormat.getFormat("M/d/yyyy h:mm a");
-        } else {
-            String abrevMonthInEnglish = DateTimeFormat.getFormat("MMM").format(date);
-            String monthToTranslate = abrevMonthInEnglish + " [%NT abbreviated month]";
-            dateFormat = dateFormat.replaceFirst("MMM", "'" + t(monthToTranslate) + "'");
-            fmt = DateTimeFormat.getFormat(dateFormat + " h:mm a");
-        }
-        String dateFormated = fmt.format(date);
-        return dateFormated;
-    }
-
-    public String getCurrentLanguage() {
-        return currentLanguageCode;
-    }
-
-    public HashMap<String, String> getLexicon() {
-        return lexicon;
-    }
-
-    public void init(final I18nServiceAsync i18nService, final Session session, final Listener0 onReady) {
-        this.i18nService = i18nService;
-        this.session = session;
-        final Location loc = WindowUtils.getLocation();
-        final String locale = loc.getParameter("locale");
-        i18nService.getInitialLanguage(locale, new AsyncCallback<I18nLanguageDTO>() {
-            public void onFailure(final Throwable caught) {
-                Log.error("Workspace adaptation to your language failed");
-            }
-
-            public void onSuccess(final I18nLanguageDTO result) {
-                currentLang = result;
-                currentLanguageCode = currentLang.getCode();
-                session.setCurrentLanguage(currentLang);
-                i18nService.getLexicon(currentLang.getCode(), new AsyncCallback<HashMap<String, String>>() {
-                    public void onFailure(final Throwable caught) {
-                        Log.error("Workspace adaptation to your language failed");
-                    }
-
-                    public void onSuccess(final HashMap<String, String> result) {
-                        lexicon = result;
-                        onReady.onEvent();
-                    }
-                });
-            }
-        });
-    }
-
-    public void removeI18nChangeListener(final I18nChangeListener listener) {
-        if (i18nChangeListeners != null) {
-            i18nChangeListeners.remove(listener);
-        }
-    }
-
-    public void setCurrentLanguage(final String newLanguage) {
-        this.currentLanguageCode = newLanguage;
-    }
-
-    public void setLexicon(final HashMap<String, String> lexicon) {
-        this.lexicon = lexicon;
-        fireI18nLanguageChange();
-    }
-
-    public void setTranslationAfterSave(final String text, final String translation) {
-        lexicon.put(text, translation);
-        fireI18nLanguageChange();
-    }
-
-    /**
-     * In production, this method uses a hashmap. In development, if the text is
-     * not in the hashmap, it makes a server petition (that stores the text
-     * pending for translation in db).
-     * 
-     * Warning: text is escaped as html before insert in the db. Don't use html
-     * here (o user this method with params).
-     * 
-     * @param text
-     * @return text translated in the current language
-     */
-    @Override
-    public String t(final String text) {
-        final String encodeText = TextUtils.escapeHtmlLight(text);
-        String translation = lexicon.get(encodeText);
-        if (lexicon.containsKey(encodeText)) {
-            if (translation == UNTRANSLATED_VALUE) {
-                // Not translated but in db, return text
-                translation = removeNT(encodeText);
-            }
-        } else {
-            // Not translated and not in db, make a petition for translation
-            if (session.isLogged()) {
-                i18nService.getTranslation(session.getUserHash(), currentLanguageCode, text,
-                        new AsyncCallback<String>() {
-                            public void onFailure(final Throwable caught) {
-                            }
-
-                            public void onSuccess(final String result) {
-                            }
-                        });
-                Log.debug("Registering in db '" + text + "' as pending translation");
-                lexicon.put(encodeText, UNTRANSLATED_VALUE);
-            }
-            translation = removeNT(encodeText);
-        }
-        return decodeHtml(translation);
-    }
-
-    /**
-     * 
-     * See in:
-     * http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread
-     * /5e4e25050d3be984/7035ec39354d06aa?lnk=gst&q=get+locale&rnum=23
-     * 
-     * JSNI method to change the locale of the application - it effectively
-     * parses the existing URL and creates a new one for the chosen locale.
-     * 
-     * It additionally launches any JavaScript debugger that might be attached
-     * to the system (Windows only). To disable this functionality just remove
-     * the "debugger" line.
-     * 
-     * @param newLocale
-     *            String value of the new locale to go to.
-     */
-    private native void changeLocale(String newLocale)
-    /*-{
-       // Uncomment the "debugger;" line to see how to set debug statements in JSNI code
-       // When in web mode, if your browser has a JavaScript debugger attached, it will
-       // launch at this point in the code (when the user changes locale through the menu system).
-       // debugger;
-
-       // Get the current location
-       var currLocation = $wnd.location.toString();
-       // Get rid of any GWT History tokens that might be present
-       var noHistoryCurrLocArray = currLocation.split("#");
-       var noHistoryCurrLoc = noHistoryCurrLocArray[0];
-       var currHistory = noHistoryCurrLocArray[1];
-       // Get rid of any locale string
-       var locArray = noHistoryCurrLoc.split("?");
-       // Build the new href location and then send the browser there.
-       // $wnd.location.href = locArray[0]+"?locale="+newLocale+"#"+currHistory;
-       $wnd.location.href = locArray[0]+"?locale="+newLocale
-
-       // extjs part:
-       // commented because the error: "Ext is not defined"
-       // we have to try other way
-       // var head = document.getElementsByTagName("head")[0];
-       // var script = document.createElement('script');
-       // script.id = 'localScript';
-       // script.type = 'text/javascript';
-       // script.src = "js/ext/locale/ext-lang-"+newLocale+".js";
-       // head.appendChild(script);
-       }-*/;
-
-    private void fireI18nLanguageChange() {
-        if (i18nChangeListeners != null) {
-            i18nChangeListeners.fireI18nLanguageChange();
-        }
-    }
-
-}

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -20,6 +20,7 @@
 package org.ourproject.kune.workspace.client.newgroup;
 
 import org.ourproject.kune.platf.client.dto.LicenseDTO;
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
 import org.ourproject.kune.platf.client.services.Images;
 import org.ourproject.kune.platf.client.ui.KuneUiUtils;
 import org.ourproject.kune.platf.client.ui.KuneWindowUtils;
@@ -27,7 +28,6 @@
 import org.ourproject.kune.platf.client.ui.dialogs.DefaultFormUtils;
 import org.ourproject.kune.platf.client.ui.dialogs.MessageToolbar;
 import org.ourproject.kune.workspace.client.WorkspaceMessages;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.licensewizard.LicenseWizard;
 
 import com.calclab.suco.client.events.Listener;
@@ -82,11 +82,11 @@
     private TextField tags;
     private final MessageToolbar messageErrorBar;
     private final Provider<LicenseWizard> licenseWizard;
-    private final I18nUITranslationService i18n;
+    private final I18nTranslationService i18n;
     private Image licenseImage;
     private LicenseDTO license;
 
-    public NewGroupPanel(final NewGroupPresenter presenter, final I18nUITranslationService i18n,
+    public NewGroupPanel(final NewGroupPresenter presenter, final I18nTranslationService i18n,
             final Provider<LicenseWizard> licenseWizard, Images img) {
         super(NEWGROUP_WIZARD, WorkspaceMessages.REGISTER_A_NEW_GROUP_TITLE, true, true, 450, 430, "k-newgroup-icon",
                 i18n.t("Cancel"), CANCEL_BUTTON, i18n.t("Register"), REGISTER_BUTTON, new Listener0() {

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPresenter.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPresenter.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -23,12 +23,12 @@
 import org.ourproject.kune.platf.client.View;
 import org.ourproject.kune.platf.client.dto.GroupDTO;
 import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.rpc.UserServiceAsync;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
 import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
 import org.ourproject.kune.workspace.client.options.EntityOptions;
 import org.ourproject.kune.workspace.client.site.Site;
-import org.ourproject.kune.workspace.client.site.rpc.UserServiceAsync;
 
 import com.calclab.suco.client.events.Listener2;
 import com.calclab.suco.client.ioc.Provider;

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterForm.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterForm.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterForm.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -19,10 +19,10 @@
  \*/
 package org.ourproject.kune.workspace.client.signin;
 
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.ui.dialogs.DefaultForm;
 import org.ourproject.kune.workspace.client.WorkspaceMessages;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 
 import com.gwtext.client.data.SimpleStore;
 import com.gwtext.client.data.Store;
@@ -59,9 +59,9 @@
     private final ComboBox timezoneCombo;
     private final Radio wantPersonalHomePage;
     private final Radio noPersonalHomePage;
-    private final I18nUITranslationService i18n;
+    private final I18nTranslationService i18n;
 
-    public RegisterForm(final I18nUITranslationService i18n, Session session) {
+    public RegisterForm(final I18nTranslationService i18n, Session session) {
         this.i18n = i18n;
         super.addStyleName("kune-Margin-Large-l");
 

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -20,11 +20,11 @@
 package org.ourproject.kune.workspace.client.signin;
 
 import org.ourproject.kune.platf.client.PlatfMessages;
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
 import org.ourproject.kune.platf.client.services.Images;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.ui.KuneUiUtils;
 import org.ourproject.kune.platf.client.ui.dialogs.InfoDialog;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 
 import com.calclab.suco.client.events.Listener0;
@@ -47,7 +47,7 @@
     public static final String WELCOME_DIALOG = "k-regp-wdiag";
     public static final String REGISTER_DIALOG = "k-regp-dialog";
 
-    public RegisterPanel(final RegisterPresenter presenter, I18nUITranslationService i18n, final WorkspaceSkeleton ws,
+    public RegisterPanel(final RegisterPresenter presenter, I18nTranslationService i18n, final WorkspaceSkeleton ws,
             Session session, Images images) {
         super(REGISTER_DIALOG, i18n, i18n.t(PlatfMessages.REGISTER_TITLE), true, true, 390, 450, "",
                 i18n.t(PlatfMessages.REGISTER_TITLE), REGISTER_BUTTON_ID, i18n.tWithNT("Cancel", "used in button"),

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPresenter.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPresenter.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -28,12 +28,12 @@
 import org.ourproject.kune.platf.client.dto.UserInfoDTO;
 import org.ourproject.kune.platf.client.errors.EmailAddressInUseException;
 import org.ourproject.kune.platf.client.errors.GroupNameInUseException;
+import org.ourproject.kune.platf.client.rpc.UserServiceAsync;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.newgroup.SiteErrorType;
 import org.ourproject.kune.workspace.client.site.Site;
-import org.ourproject.kune.workspace.client.site.rpc.UserServiceAsync;
 
 import com.calclab.emiteuimodule.client.SubscriptionMode;
 import com.calclab.suco.client.ioc.Provider;

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPanel.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPanel.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -21,13 +21,12 @@
 
 import java.util.Date;
 
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
 import org.ourproject.kune.platf.client.services.Images;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.ui.dialogs.BasicDialogExtended;
 import org.ourproject.kune.platf.client.ui.dialogs.MessageToolbar;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.newgroup.SiteErrorType;
-import org.ourproject.kune.workspace.client.site.Site;
 
 import com.calclab.suco.client.events.Listener0;
 import com.google.gwt.core.client.GWT;
@@ -36,10 +35,10 @@
 
 public abstract class SignInAbstractPanel extends BasicDialogExtended {
 
-    protected final I18nUITranslationService i18n;
+    protected final I18nTranslationService i18n;
     private final MessageToolbar messageErrorBar;
 
-    public SignInAbstractPanel(String dialogId, I18nUITranslationService i18n, String title, boolean modal,
+    public SignInAbstractPanel(String dialogId, I18nTranslationService i18n, String title, boolean modal,
             boolean autoscroll, int width, int heigth, String icon, String firstButtonTitle, String cancelButtonTitle,
             Listener0 onFirstButtonClick, Listener0 onCancelButtonClick, Images images, String errorLabelId,
             int tabIndexStart) {
@@ -48,7 +47,7 @@
                 tabIndexStart);
     }
 
-    public SignInAbstractPanel(String dialogId, I18nUITranslationService i18n, final String title, final boolean modal,
+    public SignInAbstractPanel(String dialogId, I18nTranslationService i18n, final String title, final boolean modal,
             final boolean autoscroll, final int width, final int heigth, final String icon,
             final String firstButtonTitle, final String firstButtonId, final String cancelButtonTitle,
             final String cancelButtonId, final Listener0 onFirstButtonClick, final Listener0 onCancelButtonClick,
@@ -80,7 +79,7 @@
         // http://code.google.com/p/google-web-toolkit-incubator/wiki/LoginSecurityFAQ
         final long duration = Session.SESSION_DURATION;
         final Date expires = new Date(System.currentTimeMillis() + duration);
-        Cookies.setCookie(Site.USERHASH, userHash, expires, null, "/", false);
+        Cookies.setCookie(Session.USERHASH, userHash, expires, null, "/", false);
         GWT.log("Received hash: " + userHash, null);
     }
 

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPresenter.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPresenter.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -21,9 +21,9 @@
 
 import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
 import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 
 public class SignInAbstractPresenter {
 

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -20,9 +20,9 @@
 package org.ourproject.kune.workspace.client.signin;
 
 import org.ourproject.kune.platf.client.PlatfMessages;
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
 import org.ourproject.kune.platf.client.services.Images;
 import org.ourproject.kune.platf.client.ui.KuneUiUtils;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 
 import com.calclab.suco.client.events.Listener0;
@@ -45,7 +45,7 @@
     static SignInForm signInForm;
     private final SignInPresenter presenter;
 
-    public SignInPanel(final SignInPresenter presenter, I18nUITranslationService i18n, final WorkspaceSkeleton ws,
+    public SignInPanel(final SignInPresenter presenter, I18nTranslationService i18n, final WorkspaceSkeleton ws,
             Images images) {
         super(SIGNIN_DIALOG, i18n, i18n.t(PlatfMessages.SIGN_IN_TITLE), true, true, 340, 240, "",
                 i18n.t(PlatfMessages.SIGN_IN_TITLE), SIGN_IN_BUTTON_ID, i18n.tWithNT("Cancel", "used in button"),

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenter.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenter.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -24,13 +24,13 @@
 import org.ourproject.kune.platf.client.dto.UserDTO;
 import org.ourproject.kune.platf.client.dto.UserInfoDTO;
 import org.ourproject.kune.platf.client.errors.UserAuthException;
+import org.ourproject.kune.platf.client.rpc.UserServiceAsync;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.newgroup.SiteErrorType;
 import org.ourproject.kune.workspace.client.site.Site;
 import org.ourproject.kune.workspace.client.site.SiteToken;
-import org.ourproject.kune.workspace.client.site.rpc.UserServiceAsync;
 
 import com.allen_sauer.gwt.log.client.Log;
 import com.calclab.suco.client.ioc.Provider;
@@ -100,7 +100,7 @@
                                 SiteErrorType.error);
                     } catch (final Throwable e) {
                         view.setErrorMessage("Error in login", SiteErrorType.error);
-                        Log.error("Other kind of exception in LoginFormPresenter/doLogin");
+                        Log.error("Other kind of exception in SignInPresenter/doLogin");
                     }
                 }
 

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/site/Site.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/site/Site.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/site/Site.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -20,19 +20,20 @@
 package org.ourproject.kune.workspace.client.site;
 
 import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.newgroup.SiteErrorType;
 import org.ourproject.kune.workspace.client.site.msg.SiteToastMessage;
 import org.ourproject.kune.workspace.client.sitebar.siteprogress.SiteProgress;
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 
 import com.calclab.suco.client.ioc.Provider;
 
 public class Site {
-    public static final String USERHASH = "userHash";
     public static final String IN_DEVELOPMENT = " (in development)";
     private static I18nTranslationService i18n;
     private static SiteProgress progress;
     private static Provider<SiteToastMessage> siteMessageProvider;
+    private static Provider<WorkspaceSkeleton> ws;
 
     public static void error(final String value) {
         getSiteMessage().showMessage(i18n.t("Error"), value, SiteErrorType.error);
@@ -50,6 +51,10 @@
         getSiteMessage().showMessage(i18n.t("Info"), value, SiteErrorType.info);
     }
 
+    public static void showAlertMessage(String title, String message) {
+        ws.get().showAlertMessage(title, message);
+    }
+
     public static void showProgress(final String text) {
         progress.showProgress(text);
     }
@@ -79,10 +84,10 @@
     }
 
     public Site(final I18nUITranslationService i18n, final SiteProgress progress,
-            final Provider<SiteToastMessage> siteMessageProvider) {
+            final Provider<SiteToastMessage> siteMessageProvider, Provider<WorkspaceSkeleton> ws) {
         Site.i18n = i18n;
         Site.progress = progress;
         Site.siteMessageProvider = siteMessageProvider;
+        Site.ws = ws;
     }
-
 }

Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/site/rpc/UserService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/site/rpc/UserService.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/site/rpc/UserService.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -1,46 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 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 org.ourproject.kune.workspace.client.site.rpc;
-
-import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.platf.client.dto.UserBuddiesVisibilityDTO;
-import org.ourproject.kune.platf.client.dto.UserDTO;
-import org.ourproject.kune.platf.client.dto.UserInfoDTO;
-import org.ourproject.kune.platf.client.errors.DefaultException;
-
-import com.google.gwt.user.client.rpc.RemoteService;
-
-public interface UserService extends RemoteService {
-
-    UserInfoDTO createUser(UserDTO user, boolean wantPersonalHomepage) throws DefaultException;
-
-    String getUserAvatarBaser64(String userHash, StateToken userToken) throws DefaultException;
-
-    UserInfoDTO login(String nickOrEmail, String passwd) throws DefaultException;
-
-    void logout(String userHash) throws DefaultException;
-
-    void onlyCheckSession(String userHash) throws DefaultException;
-
-    UserInfoDTO reloadUserInfo(String userHash) throws DefaultException;
-
-    void setBuddiesVisibility(String userHash, StateToken groupToken, UserBuddiesVisibilityDTO visibility);
-
-}

Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/site/rpc/UserServiceAsync.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/site/rpc/UserServiceAsync.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/site/rpc/UserServiceAsync.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -1,46 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 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 org.ourproject.kune.workspace.client.site.rpc;
-
-import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.platf.client.dto.UserBuddiesVisibilityDTO;
-import org.ourproject.kune.platf.client.dto.UserDTO;
-import org.ourproject.kune.platf.client.dto.UserInfoDTO;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public interface UserServiceAsync {
-
-    void createUser(UserDTO user, boolean wantPersonalHomepage, AsyncCallback<UserInfoDTO> asyncCallback);
-
-    void getUserAvatarBaser64(String userHash, StateToken userToken, AsyncCallback<?> asyncCallback);
-
-    void login(String nickOrEmail, String passwd, AsyncCallback<UserInfoDTO> asyncCallback);
-
-    void logout(String userHash, AsyncCallback<?> asyncCallback);
-
-    void onlyCheckSession(String userHash, AsyncCallback<?> asyncCallback);
-
-    void reloadUserInfo(String userHash, AsyncCallback<UserInfoDTO> asyncCallback);
-
-    void setBuddiesVisibility(String userHash, StateToken groupToken, UserBuddiesVisibilityDTO visibility,
-            AsyncCallback<?> asyncCallback);
-
-}

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitenewgroup/SiteNewGroupLinkPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitenewgroup/SiteNewGroupLinkPanel.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitenewgroup/SiteNewGroupLinkPanel.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -19,7 +19,7 @@
  \*/
 package org.ourproject.kune.workspace.client.sitebar.sitenewgroup;
 
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.site.SiteToken;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPanel.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPanel.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -19,8 +19,8 @@
  \*/
 package org.ourproject.kune.workspace.client.sitebar.siteoptions;
 
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.i18n.I18nTranslator;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 
 import com.calclab.suco.client.ioc.Provider;

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitepublic/SitePublicSpaceLinkPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitepublic/SitePublicSpaceLinkPanel.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitepublic/SitePublicSpaceLinkPanel.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -19,9 +19,9 @@
  \*/
 package org.ourproject.kune.workspace.client.sitebar.sitepublic;
 
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.services.Images;
 import org.ourproject.kune.platf.client.ui.IconLabel;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.skel.SimpleToolbar;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignInLinkPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignInLinkPanel.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignInLinkPanel.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -19,7 +19,7 @@
  \*/
 package org.ourproject.kune.workspace.client.sitebar.sitesign;
 
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.site.SiteToken;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPanel.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPanel.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -19,7 +19,7 @@
  \*/
 package org.ourproject.kune.workspace.client.sitebar.sitesign;
 
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.site.Site;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPresenter.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPresenter.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -27,10 +27,10 @@
 import org.ourproject.kune.platf.client.dto.UserInfoDTO;
 import org.ourproject.kune.platf.client.errors.SessionExpiredException;
 import org.ourproject.kune.platf.client.errors.UserMustBeLoggedException;
+import org.ourproject.kune.platf.client.rpc.UserServiceAsync;
 import org.ourproject.kune.platf.client.services.KuneErrorHandler;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.workspace.client.site.Site;
-import org.ourproject.kune.workspace.client.site.rpc.UserServiceAsync;
 
 import com.calclab.suco.client.events.Listener;
 import com.calclab.suco.client.events.Listener0;
@@ -118,9 +118,9 @@
         // issue:
         // http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/ded86778ee56690/515dc513c7d085eb?lnk=st&q=remove+cookie#515dc513c7d085eb
         // http://code.google.com/p/google-web-toolkit/issues/detail?id=1735&q=removeCookie
-        Cookies.removeCookie(Site.USERHASH);
+        Cookies.removeCookie(Session.USERHASH);
         // Workaround:
-        Cookies.setCookie(Site.USERHASH, null, new Date(0), null, "/", false);
+        Cookies.setCookie(Session.USERHASH, null, new Date(0), null, "/", false);
         session.setUserHash(null);
         session.setCurrentUserInfo(null);
     }

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPanel.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPanel.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -21,8 +21,8 @@
 
 import org.ourproject.kune.platf.client.PlatfMessages;
 import org.ourproject.kune.platf.client.dto.GroupDTO;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.ui.MenuItemCollection;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.skel.SimpleToolbar;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -40,13 +40,13 @@
 import org.ourproject.kune.platf.client.dto.UserSimpleDTO;
 import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
 import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
+import org.ourproject.kune.platf.client.rpc.UserServiceAsync;
 import org.ourproject.kune.platf.client.services.I18nTranslationService;
 import org.ourproject.kune.platf.client.services.ImageUtils;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
 import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
 import org.ourproject.kune.workspace.client.site.Site;
-import org.ourproject.kune.workspace.client.site.rpc.UserServiceAsync;
 
 import com.calclab.suco.client.events.Listener;
 import com.calclab.suco.client.ioc.Provider;

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -25,10 +25,10 @@
 import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarView;
 import org.ourproject.kune.platf.client.dto.GroupDTO;
 import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.ui.gridmenu.GridDragConfiguration;
 import org.ourproject.kune.platf.client.ui.gridmenu.GridItem;
 import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuPanel;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.skel.SimpleToolbar;
 import org.ourproject.kune.workspace.client.skel.SummaryPanel;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -42,6 +42,7 @@
 import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
 import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
 import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.services.ImageDescriptor;
 import org.ourproject.kune.platf.client.services.ImageUtils;
 import org.ourproject.kune.platf.client.state.Session;
@@ -49,7 +50,6 @@
 import org.ourproject.kune.platf.client.ui.MenuItem;
 import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
 import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.search.GroupLiveSearcher;
 import org.ourproject.kune.workspace.client.site.Site;
 import org.ourproject.kune.workspace.client.themes.WsTheme;

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -28,12 +28,12 @@
 import org.ourproject.kune.platf.client.dto.ParticipationDataDTO;
 import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
 import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.services.ImageUtils;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
 import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
 import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.themes.WsTheme;
 import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
 

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePanel.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePanel.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -19,7 +19,7 @@
  \*/
 package org.ourproject.kune.workspace.client.themes;
 
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 
 import com.calclab.suco.client.events.Listener2;

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntitySubTitlePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntitySubTitlePresenter.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntitySubTitlePresenter.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -26,8 +26,8 @@
 import org.ourproject.kune.platf.client.dto.StateContainerDTO;
 import org.ourproject.kune.platf.client.dto.StateContentDTO;
 import org.ourproject.kune.platf.client.registry.AuthorableRegistry;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 
 import com.calclab.suco.client.events.Listener;
 

Modified: trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -9,7 +9,7 @@
 import org.ourproject.kune.platf.client.app.HistoryWrapper;
 import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
 import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.site.Site;
 import org.ourproject.kune.workspace.client.site.SiteToken;
 import org.ourproject.kune.workspace.client.sitebar.siteprogress.SiteProgress;
@@ -49,7 +49,7 @@
         stateManager.onStateChanged(stateChangeListener);
         stateManager.onGroupChanged(groupChangeListener);
         stateManager.onToolChanged(toolChangeListener);
-        new Site(Mockito.mock(I18nUITranslationService.class), Mockito.mock(SiteProgress.class), null);
+        new Site(Mockito.mock(I18nUITranslationService.class), Mockito.mock(SiteProgress.class), null, null);
     }
 
     @Test

Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/IntegrationTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/IntegrationTest.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/IntegrationTest.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -1,9 +1,9 @@
 package org.ourproject.kune.platf.integration;
 
 import org.ourproject.kune.platf.client.errors.DefaultException;
+import org.ourproject.kune.platf.client.rpc.UserService;
 import org.ourproject.kune.platf.server.UserSession;
 import org.ourproject.kune.platf.server.properties.DatabaseProperties;
-import org.ourproject.kune.workspace.client.site.rpc.UserService;
 
 import com.google.inject.Inject;
 

Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceIntegrationTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceIntegrationTest.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceIntegrationTest.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -3,8 +3,8 @@
 import org.ourproject.kune.platf.client.dto.StateContentDTO;
 import org.ourproject.kune.platf.client.dto.StateToken;
 import org.ourproject.kune.platf.client.rpc.ContentService;
+import org.ourproject.kune.platf.client.rpc.UserService;
 import org.ourproject.kune.platf.integration.IntegrationTest;
-import org.ourproject.kune.workspace.client.site.rpc.UserService;
 
 import com.google.inject.Inject;
 

Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -6,11 +6,11 @@
 
 import org.junit.Test;
 import org.ourproject.kune.platf.client.PlatfMessages;
+import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.workspace.client.nohomepage.NoHomePagePanel;
 import org.ourproject.kune.workspace.client.signin.RegisterPanel;
 import org.ourproject.kune.workspace.client.signin.SignInForm;
 import org.ourproject.kune.workspace.client.signin.SignInPanel;
-import org.ourproject.kune.workspace.client.site.Site;
 import org.ourproject.kune.workspace.client.site.SiteToken;
 import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignInLinkPanel;
 import org.ourproject.kune.workspace.client.sitebar.siteusermenu.SiteUserMenuPanel;
@@ -97,7 +97,7 @@
     public void testSignInAndOutRemovingCookie() throws Exception {
         openDefPage();
         signIn();
-        assertNotNull(selenium.getCookieByName(Site.USERHASH));
+        assertNotNull(selenium.getCookieByName(Session.USERHASH));
         verifyLoggedUserShorName("admin");
         signOut();
     }

Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/site/UserServiceTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/site/UserServiceTest.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/site/UserServiceTest.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -17,6 +17,7 @@
 import org.ourproject.kune.platf.client.errors.EmailAddressInUseException;
 import org.ourproject.kune.platf.client.errors.GroupNameInUseException;
 import org.ourproject.kune.platf.client.errors.SessionExpiredException;
+import org.ourproject.kune.platf.client.rpc.UserService;
 import org.ourproject.kune.platf.integration.IntegrationTest;
 import org.ourproject.kune.platf.integration.IntegrationTestHelper;
 import org.ourproject.kune.platf.server.UserSession;
@@ -26,7 +27,6 @@
 import org.ourproject.kune.platf.server.properties.DatabaseProperties;
 import org.ourproject.kune.platf.server.users.UserInfo;
 import org.ourproject.kune.platf.server.users.UserInfoService;
-import org.ourproject.kune.workspace.client.site.rpc.UserService;
 
 import com.calclab.emiteuimodule.client.SubscriptionMode;
 import com.google.inject.Inject;

Modified: trunk/src/test/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenterTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenterTest.java	2009-02-22 16:21:35 UTC (rev 1051)
+++ trunk/src/test/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenterTest.java	2009-02-26 01:46:09 UTC (rev 1052)
@@ -7,9 +7,9 @@
 import org.junit.Test;
 import org.mockito.Mockito;
 import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbar;
+import org.ourproject.kune.platf.client.services.I18nUITranslationService;
 import org.ourproject.kune.platf.client.state.StateManager;
 import org.ourproject.kune.platf.client.utils.DeferredCommandWrapper;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignOutLink;
 
 import com.calclab.suco.client.events.Listener0;




More information about the kune-commits mailing list