[kune-commits] r1073 - in trunk: img/icons script src/main/java/org/ourproject/kune/app/client src/main/java/org/ourproject/kune/blogs/client src/main/java/org/ourproject/kune/docs/client src/main/java/org/ourproject/kune/gallery/client src/main/java/org/ourproject/kune/platf/client/app 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/ui src/main/java/org/ourproject/kune/platf/client/ui/rte/basic src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink src/main/java/org/ourproject/kune/platf/public/images src/main/java/org/ourproject/kune/wiki/client src/main/java/org/ourproject/kune/workspace/client src/main/java/org/ourproject/kune/workspace/client/entityheader src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin src/main/java/org/ourproject/kune/workspace/client/options src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign src/main/java/org/ourproject/kune/workspace/client/skel

vjrj vjrj at ourproject.org
Thu Mar 12 09:05:19 CET 2009


Author: vjrj
Date: 2009-03-12 09:05:10 +0100 (Thu, 12 Mar 2009)
New Revision: 1073

Added:
   trunk/img/icons/arrow_in.png
   trunk/src/main/java/org/ourproject/kune/platf/client/services/CoreModule.java
   trunk/src/main/java/org/ourproject/kune/platf/client/services/ErrorHandler.java
   trunk/src/main/java/org/ourproject/kune/platf/client/services/PlatformModule.java
   trunk/src/main/java/org/ourproject/kune/platf/public/images/arrow_in.png
   trunk/src/main/java/org/ourproject/kune/platf/public/images/arrow_out.png
   trunk/src/main/java/org/ourproject/kune/workspace/client/RegistryModule.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/
   trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspace.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspacePanel.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspacePresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspaceView.java
Removed:
   trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneCoreModule.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/workspace/client/KuneRegistryModule.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/KuneWorkspaceModule.java
Modified:
   trunk/script/generateBasicUIElements.sh
   trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.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/docs/client/DocumentClientActions.java
   trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.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/platf/client/app/ApplicationComponentGroup.java
   trunk/src/main/java/org/ourproject/kune/platf/client/rpc/AsyncCallbackSimple.java
   trunk/src/main/java/org/ourproject/kune/platf/client/services/Images.java
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/IconLabel.java
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/InsertLinkDialog.java
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/InsertLinkDialogPresenter.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/workspace/client/AbstractFoldableContentActions.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderButton.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/skel/Entity.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java
Log:
Incomplete - task Better RTE (Rich Text Editor) support

Added: trunk/img/icons/arrow_in.png
===================================================================
(Binary files differ)


Property changes on: trunk/img/icons/arrow_in.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/script/generateBasicUIElements.sh
===================================================================
--- trunk/script/generateBasicUIElements.sh	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/script/generateBasicUIElements.sh	2009-03-12 08:05:10 UTC (rev 1073)
@@ -84,7 +84,7 @@
 register(Singleton.class, new Factory<${NAME}>(${NAME}.class) {
     public ${NAME} create() {
 	final ${NAME}Presenter presenter = new ${NAME}Presenter();
-	final ${NAME}Panel panel = new ${NAME}Panel(presenter));
+	final ${NAME}Panel panel = new ${NAME}Panel(presenter);
 	presenter.init(panel);
 	return presenter;
     }

Modified: trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -23,11 +23,11 @@
 import org.ourproject.kune.chat.client.ChatClientModule;
 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.KunePlatformModule;
+import org.ourproject.kune.platf.client.services.CoreModule;
+import org.ourproject.kune.platf.client.services.PlatformModule;
 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.RegistryModule;
+import org.ourproject.kune.workspace.client.WorkspaceModule;
 import org.ourproject.kune.workspace.client.hello.HelloWorldModule;
 
 import com.allen_sauer.gwt.log.client.Log;
@@ -63,9 +63,9 @@
     }
 
     public void onModuleLoadCont() {
-        Suco.install(new KuneCoreModule(), new KuneRegistryModule(), new KunePlatformModule(), new EmiteUIModule(),
+        Suco.install(new CoreModule(), new RegistryModule(), new PlatformModule(), new EmiteUIModule(),
                 new DocumentClientModule(), new BlogClientModule(), new WikiClientModule(), new GalleryClientModule(),
-                new ChatClientModule(), new KuneWorkspaceModule());
+                new ChatClientModule(), new WorkspaceModule());
 
         // We install our HelloWorldModule
         Suco.install(new HelloWorldModule());

Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -28,7 +28,7 @@
 import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
 import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
-import org.ourproject.kune.platf.client.services.KuneErrorHandler;
+import org.ourproject.kune.platf.client.services.ErrorHandler;
 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;
@@ -53,7 +53,7 @@
             final Provider<GroupServiceAsync> groupServiceProvider, final Provider<FileUploader> fileUploaderProvider,
             final ContentActionRegistry contentActionRegistry, final ContextActionRegistry contextActionRegistry,
             final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
-            final Provider<ContentEditor> textEditorProvider, final KuneErrorHandler errorHandler,
+            final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
             final BlogViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
             final SitePublicSpaceLink publicLink) {
         super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,

Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -35,7 +35,7 @@
 import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
 import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
 import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
-import org.ourproject.kune.platf.client.services.KuneErrorHandler;
+import org.ourproject.kune.platf.client.services.ErrorHandler;
 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;
@@ -78,7 +78,7 @@
                         $(Session.class), $(StateManager.class), $(DeferredCommandWrapper.class),
                         $$(ContentServiceAsync.class), $$(GroupServiceAsync.class), $$(FileUploader.class),
                         $(ContentActionRegistry.class), $(ContextActionRegistry.class), $$(FileDownloadUtils.class),
-                        $(EntityHeader.class), $$(ContentEditor.class), $(KuneErrorHandler.class), $(BlogViewer.class),
+                        $(EntityHeader.class), $$(ContentEditor.class), $(ErrorHandler.class), $(BlogViewer.class),
                         $$(ContextPropEditor.class), $(SitePublicSpaceLink.class));
             }
         });

Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -28,7 +28,7 @@
 import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
 import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
-import org.ourproject.kune.platf.client.services.KuneErrorHandler;
+import org.ourproject.kune.platf.client.services.ErrorHandler;
 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;
@@ -53,7 +53,7 @@
             final Provider<GroupServiceAsync> groupServiceProvider, final Provider<FileUploader> fileUploaderProvider,
             final ContentActionRegistry contentActionRegistry, final ContextActionRegistry contextActionRegistry,
             final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
-            final Provider<ContentEditor> textEditorProvider, final KuneErrorHandler errorHandler,
+            final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
             final DocumentViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
             final SitePublicSpaceLink publicLink) {
         super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,

Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -35,7 +35,7 @@
 import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
 import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
 import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
-import org.ourproject.kune.platf.client.services.KuneErrorHandler;
+import org.ourproject.kune.platf.client.services.ErrorHandler;
 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;
@@ -78,7 +78,7 @@
                         $(Session.class), $(StateManager.class), $(DeferredCommandWrapper.class),
                         $$(ContentServiceAsync.class), $$(GroupServiceAsync.class), $$(FileUploader.class),
                         $(ContentActionRegistry.class), $(ContextActionRegistry.class), $$(FileDownloadUtils.class),
-                        $(EntityHeader.class), $$(ContentEditor.class), $(KuneErrorHandler.class),
+                        $(EntityHeader.class), $$(ContentEditor.class), $(ErrorHandler.class),
                         $(DocumentViewer.class), $$(ContextPropEditor.class), $(SitePublicSpaceLink.class));
             }
         });

Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -27,7 +27,7 @@
 import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
 import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
-import org.ourproject.kune.platf.client.services.KuneErrorHandler;
+import org.ourproject.kune.platf.client.services.ErrorHandler;
 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;
@@ -52,7 +52,7 @@
             final Provider<GroupServiceAsync> groupServiceProvider, final Provider<FileUploader> fileUploaderProvider,
             final ContentActionRegistry contentActionRegistry, final ContextActionRegistry contextActionRegistry,
             final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
-            final Provider<ContentEditor> textEditorProvider, final KuneErrorHandler errorHandler,
+            final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
             final GalleryViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
             final SitePublicSpaceLink publicLink) {
         super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,

Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -35,7 +35,7 @@
 import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
 import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
 import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
-import org.ourproject.kune.platf.client.services.KuneErrorHandler;
+import org.ourproject.kune.platf.client.services.ErrorHandler;
 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;
@@ -78,7 +78,7 @@
                         $(Session.class), $(StateManager.class), $(DeferredCommandWrapper.class),
                         $$(ContentServiceAsync.class), $$(GroupServiceAsync.class), $$(FileUploader.class),
                         $(ContentActionRegistry.class), $(ContextActionRegistry.class), $$(FileDownloadUtils.class),
-                        $(EntityHeader.class), $$(ContentEditor.class), $(KuneErrorHandler.class),
+                        $(EntityHeader.class), $$(ContentEditor.class), $(ErrorHandler.class),
                         $(GalleryViewer.class), $$(ContextPropEditor.class), $(SitePublicSpaceLink.class));
             }
         });

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationComponentGroup.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationComponentGroup.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationComponentGroup.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -24,6 +24,11 @@
 import com.calclab.suco.client.ioc.decorator.ProviderCollection;
 import com.calclab.suco.client.ioc.decorator.Singleton;
 
+/**
+ * Use this decorator with parts of kune that are needed at start time (like
+ * main widgets in workspace). Them are created automatically when starting.
+ * 
+ */
 public class ApplicationComponentGroup extends ProviderCollection {
 
     public ApplicationComponentGroup(final Container container) {

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/AsyncCallbackSimple.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/AsyncCallbackSimple.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/AsyncCallbackSimple.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -19,15 +19,15 @@
  */
 package org.ourproject.kune.platf.client.rpc;
 
-import org.ourproject.kune.platf.client.services.KuneErrorHandler;
+import org.ourproject.kune.platf.client.services.ErrorHandler;
 
 import com.google.gwt.user.client.rpc.AsyncCallback;
 
 public abstract class AsyncCallbackSimple<T> implements AsyncCallback<T> {
 
-    private static KuneErrorHandler errorHandler;
+    private static ErrorHandler errorHandler;
 
-    public static void init(KuneErrorHandler kuneErrorHandler) {
+    public static void init(ErrorHandler kuneErrorHandler) {
         errorHandler = kuneErrorHandler;
     }
 

Copied: trunk/src/main/java/org/ourproject/kune/platf/client/services/CoreModule.java (from rev 1071, trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneCoreModule.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneCoreModule.java	2009-03-11 14:08:13 UTC (rev 1071)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/CoreModule.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -0,0 +1,40 @@
+/*
+ *
+ * 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.app.ApplicationComponentGroup;
+import org.ourproject.kune.platf.client.app.EntityOptionsGroup;
+import org.ourproject.kune.platf.client.app.ToolGroup;
+import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageGroup;
+import org.ourproject.kune.platf.client.ui.rte.insertlink.InsertLinkGroup;
+
+import com.calclab.suco.client.ioc.module.AbstractModule;
+
+public class CoreModule extends AbstractModule {
+
+    @Override
+    public void onInstall() {
+        registerDecorator(ApplicationComponentGroup.class, new ApplicationComponentGroup(container));
+        registerDecorator(ToolGroup.class, new ToolGroup(container));
+        registerDecorator(EntityOptionsGroup.class, new EntityOptionsGroup(container));
+        registerDecorator(InsertImageGroup.class, new InsertImageGroup(container));
+        registerDecorator(InsertLinkGroup.class, new InsertLinkGroup(container));
+    }
+}

Copied: trunk/src/main/java/org/ourproject/kune/platf/client/services/ErrorHandler.java (from rev 1071, 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-03-11 14:08:13 UTC (rev 1071)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/ErrorHandler.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -0,0 +1,131 @@
+/*
+ *
+ * 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.errors.AccessViolationException;
+import org.ourproject.kune.platf.client.errors.AlreadyGroupMemberException;
+import org.ourproject.kune.platf.client.errors.AlreadyUserMemberException;
+import org.ourproject.kune.platf.client.errors.ContainerNotPermittedException;
+import org.ourproject.kune.platf.client.errors.ContentNotFoundException;
+import org.ourproject.kune.platf.client.errors.ContentNotPermittedException;
+import org.ourproject.kune.platf.client.errors.GroupNotFoundException;
+import org.ourproject.kune.platf.client.errors.LastAdminInGroupException;
+import org.ourproject.kune.platf.client.errors.SessionExpiredException;
+import org.ourproject.kune.platf.client.errors.UserMustBeLoggedException;
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
+
+import com.allen_sauer.gwt.log.client.Log;
+import com.calclab.suco.client.events.Event0;
+import com.calclab.suco.client.events.Listener0;
+import com.calclab.suco.client.ioc.Provider;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException;
+
+public class ErrorHandler {
+    private final Session session;
+    private final I18nTranslationService i18n;
+    private final Event0 onSessionExpired;
+    private final Provider<StateManager> stateManagerProvider;
+
+    public ErrorHandler(final Session session, final I18nTranslationService i18n,
+            final Provider<StateManager> stateManagerProvider) {
+        this.session = session;
+        this.i18n = i18n;
+        this.stateManagerProvider = stateManagerProvider;
+        this.onSessionExpired = new Event0("onSessionExpired");
+    }
+
+    public void doSessionExpired() {
+        onSessionExpired.fire();
+        NotifyUser.info("Your session has expired. Please log in again.");
+    }
+
+    public void onSessionExpired(final Listener0 listener) {
+        onSessionExpired.add(listener);
+    }
+
+    public void process(final Throwable caught) {
+        NotifyUser.hideProgress();
+        try {
+            throw caught;
+        } catch (final AccessViolationException e) {
+            logException(e);
+            NotifyUser.error(i18n.t("You do not have rights to perform that action"));
+        } catch (final SessionExpiredException e) {
+            logException(e);
+            doSessionExpired();
+        } catch (final UserMustBeLoggedException e) {
+            logException(e);
+            if (session.isLogged()) {
+                doSessionExpired();
+            } else {
+                NotifyUser.important(i18n.t("Please sign in or register to collaborate"));
+            }
+        } catch (final GroupNotFoundException e) {
+            logException(e);
+            NotifyUser.veryImportant(i18n.t("Group not found"));
+            stateManagerProvider.get().gotoToken("");
+        } catch (final IncompatibleRemoteServiceException e) {
+            NotifyUser.error(i18n.t("Your browser is outdated with the server software. Please reload this page."));
+        } catch (final ContentNotFoundException e) {
+            logException(e);
+            NotifyUser.veryImportant(i18n.t("Content not found"));
+            stateManagerProvider.get().gotoToken("");
+        } catch (final ContentNotPermittedException e) {
+            logException(e);
+            NotifyUser.error(i18n.t("Action not permitted in this location"));
+            stateManagerProvider.get().gotoToken("");
+        } catch (final ContainerNotPermittedException e) {
+            logException(e);
+            NotifyUser.error(i18n.t("Action not permitted in this location"));
+            stateManagerProvider.get().gotoToken("");
+        } catch (final LastAdminInGroupException e) {
+            logException(e);
+            NotifyUser.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);
+            NotifyUser.error(i18n.t("This group is already a group member"));
+        } catch (final AlreadyUserMemberException e) {
+            logException(e);
+            NotifyUser.error(i18n.t("This user is already a group member"));
+        } catch (final Throwable e) {
+            logException(e, true);
+            NotifyUser.error(i18n.t("Error performing operation"));
+            GWT.log("Other kind of exception in StateManagerDefault/processErrorException", null);
+        }
+    }
+
+    private void logException(final Throwable e) {
+        logException(e, false);
+    }
+
+    private void logException(final Throwable e, final boolean showException) {
+        if (showException) {
+            Log.debug("Exception in KuneErrorHandler", e);
+        } else {
+            Log.debug("Exception in KuneErrorHandler: " + e.getMessage());
+        }
+    }
+
+}

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/Images.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/Images.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/Images.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -60,9 +60,15 @@
     @Resource("org/ourproject/kune/platf/public/images/arrow-down-white.gif")
     AbstractImagePrototype arrowDownWhite();
 
+    @Resource("org/ourproject/kune/platf/public/images/arrow_in.png")
+    AbstractImagePrototype arrowIn();
+
     @Resource("org/ourproject/kune/platf/public/images/arrow-left-green.png")
     AbstractImagePrototype arrowLeftGreen();
 
+    @Resource("org/ourproject/kune/platf/public/images/arrow_out.png")
+    AbstractImagePrototype arrowOut();
+
     @Resource("org/ourproject/kune/platf/public/images/arrow-right-black.gif")
     AbstractImagePrototype arrowRightBlack();
 

Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneCoreModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneCoreModule.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneCoreModule.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -1,40 +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.app.ApplicationComponentGroup;
-import org.ourproject.kune.platf.client.app.EntityOptionsGroup;
-import org.ourproject.kune.platf.client.app.ToolGroup;
-import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageGroup;
-import org.ourproject.kune.platf.client.ui.rte.insertlink.InsertLinkGroup;
-
-import com.calclab.suco.client.ioc.module.AbstractModule;
-
-public class KuneCoreModule extends AbstractModule {
-
-    @Override
-    public void onInstall() {
-        registerDecorator(ApplicationComponentGroup.class, new ApplicationComponentGroup(container));
-        registerDecorator(ToolGroup.class, new ToolGroup(container));
-        registerDecorator(EntityOptionsGroup.class, new EntityOptionsGroup(container));
-        registerDecorator(InsertImageGroup.class, new InsertImageGroup(container));
-        registerDecorator(InsertLinkGroup.class, new InsertLinkGroup(container));
-    }
-}

Deleted: 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-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -1,131 +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.errors.AccessViolationException;
-import org.ourproject.kune.platf.client.errors.AlreadyGroupMemberException;
-import org.ourproject.kune.platf.client.errors.AlreadyUserMemberException;
-import org.ourproject.kune.platf.client.errors.ContainerNotPermittedException;
-import org.ourproject.kune.platf.client.errors.ContentNotFoundException;
-import org.ourproject.kune.platf.client.errors.ContentNotPermittedException;
-import org.ourproject.kune.platf.client.errors.GroupNotFoundException;
-import org.ourproject.kune.platf.client.errors.LastAdminInGroupException;
-import org.ourproject.kune.platf.client.errors.SessionExpiredException;
-import org.ourproject.kune.platf.client.errors.UserMustBeLoggedException;
-import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
-
-import com.allen_sauer.gwt.log.client.Log;
-import com.calclab.suco.client.events.Event0;
-import com.calclab.suco.client.events.Listener0;
-import com.calclab.suco.client.ioc.Provider;
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException;
-
-public class KuneErrorHandler {
-    private final Session session;
-    private final I18nTranslationService i18n;
-    private final Event0 onSessionExpired;
-    private final Provider<StateManager> stateManagerProvider;
-
-    public KuneErrorHandler(final Session session, final I18nTranslationService i18n,
-            final Provider<StateManager> stateManagerProvider) {
-        this.session = session;
-        this.i18n = i18n;
-        this.stateManagerProvider = stateManagerProvider;
-        this.onSessionExpired = new Event0("onSessionExpired");
-    }
-
-    public void doSessionExpired() {
-        onSessionExpired.fire();
-        NotifyUser.info("Your session has expired. Please log in again.");
-    }
-
-    public void onSessionExpired(final Listener0 listener) {
-        onSessionExpired.add(listener);
-    }
-
-    public void process(final Throwable caught) {
-        NotifyUser.hideProgress();
-        try {
-            throw caught;
-        } catch (final AccessViolationException e) {
-            logException(e);
-            NotifyUser.error(i18n.t("You do not have rights to perform that action"));
-        } catch (final SessionExpiredException e) {
-            logException(e);
-            doSessionExpired();
-        } catch (final UserMustBeLoggedException e) {
-            logException(e);
-            if (session.isLogged()) {
-                doSessionExpired();
-            } else {
-                NotifyUser.important(i18n.t("Please sign in or register to collaborate"));
-            }
-        } catch (final GroupNotFoundException e) {
-            logException(e);
-            NotifyUser.veryImportant(i18n.t("Group not found"));
-            stateManagerProvider.get().gotoToken("");
-        } catch (final IncompatibleRemoteServiceException e) {
-            NotifyUser.error(i18n.t("Your browser is outdated with the server software. Please reload this page."));
-        } catch (final ContentNotFoundException e) {
-            logException(e);
-            NotifyUser.veryImportant(i18n.t("Content not found"));
-            stateManagerProvider.get().gotoToken("");
-        } catch (final ContentNotPermittedException e) {
-            logException(e);
-            NotifyUser.error(i18n.t("Action not permitted in this location"));
-            stateManagerProvider.get().gotoToken("");
-        } catch (final ContainerNotPermittedException e) {
-            logException(e);
-            NotifyUser.error(i18n.t("Action not permitted in this location"));
-            stateManagerProvider.get().gotoToken("");
-        } catch (final LastAdminInGroupException e) {
-            logException(e);
-            NotifyUser.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);
-            NotifyUser.error(i18n.t("This group is already a group member"));
-        } catch (final AlreadyUserMemberException e) {
-            logException(e);
-            NotifyUser.error(i18n.t("This user is already a group member"));
-        } catch (final Throwable e) {
-            logException(e, true);
-            NotifyUser.error(i18n.t("Error performing operation"));
-            GWT.log("Other kind of exception in StateManagerDefault/processErrorException", null);
-        }
-    }
-
-    private void logException(final Throwable e) {
-        logException(e, false);
-    }
-
-    private void logException(final Throwable e, final boolean showException) {
-        if (showException) {
-            Log.debug("Exception in KuneErrorHandler", e);
-        } else {
-            Log.debug("Exception in KuneErrorHandler: " + e.getMessage());
-        }
-    }
-
-}

Deleted: 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-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KunePlatformModule.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -1,419 +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.toolbar.ActionToolbarPanel;
-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.i18n.I18nTranslationService;
-import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
-import org.ourproject.kune.platf.client.i18n.Resources;
-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.noti.NotifyUser;
-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.TestRTEDialog;
-import org.ourproject.kune.platf.client.ui.rte.basic.RTEActionSndToolbar;
-import org.ourproject.kune.platf.client.ui.rte.basic.RTEActionTopToolbar;
-import org.ourproject.kune.platf.client.ui.rte.basic.RTEditor;
-import org.ourproject.kune.platf.client.ui.rte.basic.RTEditorPanel;
-import org.ourproject.kune.platf.client.ui.rte.basic.RTEditorPresenter;
-import org.ourproject.kune.platf.client.ui.rte.edithtml.EditHtmlDialog;
-import org.ourproject.kune.platf.client.ui.rte.edithtml.EditHtmlGroup;
-import org.ourproject.kune.platf.client.ui.rte.edithtml.EditHtmlDialogPanel;
-import org.ourproject.kune.platf.client.ui.rte.edithtml.EditHtmlDialogPresenter;
-import org.ourproject.kune.platf.client.ui.rte.edithtml.editor.EditHtmlEditor;
-import org.ourproject.kune.platf.client.ui.rte.edithtml.editor.EditHtmlEditorPanel;
-import org.ourproject.kune.platf.client.ui.rte.edithtml.editor.EditHtmlEditorPresenter;
-import org.ourproject.kune.platf.client.ui.rte.edithtml.preview.EditHtmlPreview;
-import org.ourproject.kune.platf.client.ui.rte.edithtml.preview.EditHtmlPreviewPanel;
-import org.ourproject.kune.platf.client.ui.rte.edithtml.preview.EditHtmlPreviewPresenter;
-import org.ourproject.kune.platf.client.ui.rte.img.RTEImgResources;
-import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageDialog;
-import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageGroup;
-import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageDialogPanel;
-import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageDialogPresenter;
-import org.ourproject.kune.platf.client.ui.rte.insertimg.ext.InsertImageExt;
-import org.ourproject.kune.platf.client.ui.rte.insertimg.ext.InsertImageExtPanel;
-import org.ourproject.kune.platf.client.ui.rte.insertimg.ext.InsertImageExtPresenter;
-import org.ourproject.kune.platf.client.ui.rte.insertlink.InsertLinkDialog;
-import org.ourproject.kune.platf.client.ui.rte.insertlink.InsertLinkGroup;
-import org.ourproject.kune.platf.client.ui.rte.insertlink.InsertLinkDialogPanel;
-import org.ourproject.kune.platf.client.ui.rte.insertlink.InsertLinkDialogPresenter;
-import org.ourproject.kune.platf.client.ui.rte.insertlink.email.InsertLinkEmail;
-import org.ourproject.kune.platf.client.ui.rte.insertlink.email.InsertLinkEmailPanel;
-import org.ourproject.kune.platf.client.ui.rte.insertlink.email.InsertLinkEmailPresenter;
-import org.ourproject.kune.platf.client.ui.rte.insertlink.ext.InsertLinkExt;
-import org.ourproject.kune.platf.client.ui.rte.insertlink.ext.InsertLinkExtPanel;
-import org.ourproject.kune.platf.client.ui.rte.insertlink.ext.InsertLinkExtPresenter;
-import org.ourproject.kune.platf.client.ui.rte.insertlink.ext.InsertLinkExtView;
-import org.ourproject.kune.platf.client.ui.rte.saving.RTESavingEditor;
-import org.ourproject.kune.platf.client.ui.rte.saving.RTESavingEditorPanel;
-import org.ourproject.kune.platf.client.ui.rte.saving.RTESavingEditorPresenter;
-import org.ourproject.kune.platf.client.utils.DeferredCommandWrapper;
-import org.ourproject.kune.platf.client.utils.TimerWrapper;
-
-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.libideas.client.StyleInjector;
-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<Session>(Session.class) {
-            @Override
-            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<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<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<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<Resources>(Resources.class) {
-            @Override
-            public Resources create() {
-                return new Resources(i18n);
-            }
-        });
-
-        $(Resources.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(NoDecoration.class, new Factory<RTEActionTopToolbar>(RTEActionTopToolbar.class) {
-            @Override
-            public RTEActionTopToolbar create() {
-                final ActionToolbarPanel<Object> panel = new ActionToolbarPanel<Object>($$(ActionManager.class));
-                final RTEActionTopToolbar toolbar = new RTEActionTopToolbar(panel);
-                return toolbar;
-            }
-        }, new Factory<RTEActionSndToolbar>(RTEActionSndToolbar.class) {
-            @Override
-            public RTEActionSndToolbar create() {
-                final ActionToolbarPanel<Object> panel = new ActionToolbarPanel<Object>($$(ActionManager.class), true);
-                final RTEActionSndToolbar toolbar = new RTEActionSndToolbar(panel);
-                return toolbar;
-            }
-        });
-
-        register(Singleton.class, new Factory<TimerWrapper>(TimerWrapper.class) {
-            @Override
-            public TimerWrapper create() {
-                return new TimerWrapper();
-            }
-        });
-
-        register(NoDecoration.class, new Factory<RTEditor>(RTEditor.class) {
-            @Override
-            public RTEditor create() {
-                RTEActionTopToolbar topBar = $(RTEActionTopToolbar.class);
-                RTEActionSndToolbar sndBar = $(RTEActionSndToolbar.class);
-                final RTEditorPresenter presenter = new RTEditorPresenter($(I18nTranslationService.class),
-                        $(Session.class), topBar, sndBar, $(RTEImgResources.class), $(InsertLinkDialog.class),
-                        $(ColorWebSafePalette.class), $$(EditHtmlDialog.class), $$(InsertImageDialog.class),
-                        $(DeferredCommandWrapper.class));
-                final RTEditorPanel panel = new RTEditorPanel(presenter, $(I18nUITranslationService.class),
-                        $(ActionManager.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        }, new Factory<RTESavingEditor>(RTESavingEditor.class) {
-            @Override
-            public RTESavingEditor create() {
-                RTESavingEditorPresenter presenter = new RTESavingEditorPresenter($(RTEditor.class), true,
-                        $(I18nTranslationService.class), $(StateManager.class), $(DeferredCommandWrapper.class),
-                        $(RTEImgResources.class), $(TimerWrapper.class));
-                RTESavingEditorPanel panel = new RTESavingEditorPanel();
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(NoDecoration.class, new Factory<TestRTEDialog>(TestRTEDialog.class) {
-            @Override
-            public TestRTEDialog create() {
-                return new TestRTEDialog($(RTESavingEditor.class));
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<NotifyUser>(NotifyUser.class) {
-            @Override
-            public NotifyUser create() {
-                return new NotifyUser($(I18nTranslationService.class), $(Images.class));
-            }
-        });
-
-        register(Singleton.class, new Factory<RTEImgResources>(RTEImgResources.class) {
-            @Override
-            public RTEImgResources create() {
-                RTEImgResources instance = GWT.create(RTEImgResources.class);
-                StyleInjector.injectStylesheet(instance.css().getText());
-                return instance;
-            }
-        });
-
-        registerDecorator(EditHtmlGroup.class, new EditHtmlGroup(container));
-
-        register(Singleton.class, new Factory<EditHtmlDialog>(EditHtmlDialog.class) {
-            @Override
-            public EditHtmlDialog create() {
-                final EditHtmlDialogPresenter presenter = new EditHtmlDialogPresenter();
-                final EditHtmlDialogPanel panel = new EditHtmlDialogPanel(presenter, $(I18nTranslationService.class),
-                        $(RTEImgResources.class), $(Images.class), $(EditHtmlGroup.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(EditHtmlGroup.class, new Factory<EditHtmlEditor>(EditHtmlEditor.class) {
-            @Override
-            public EditHtmlEditor create() {
-                final EditHtmlEditorPresenter presenter = new EditHtmlEditorPresenter($(EditHtmlDialog.class));
-                final EditHtmlEditorPanel panel = new EditHtmlEditorPanel(i18n, presenter);
-                presenter.init(panel);
-                return presenter;
-            }
-        }, new Factory<EditHtmlPreview>(EditHtmlPreview.class) {
-            @Override
-            public EditHtmlPreview create() {
-                final EditHtmlPreviewPresenter presenter = new EditHtmlPreviewPresenter($(EditHtmlDialog.class));
-                final EditHtmlPreviewPanel panel = new EditHtmlPreviewPanel(i18n, presenter);
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<InsertImageDialog>(InsertImageDialog.class) {
-            @Override
-            public InsertImageDialog create() {
-                final InsertImageDialogPresenter presenter = new InsertImageDialogPresenter();
-                final InsertImageDialogPanel panel = new InsertImageDialogPanel(presenter, $(I18nTranslationService.class),
-                        $(Images.class), $(InsertImageGroup.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(InsertImageGroup.class, new Factory<InsertImageExt>(InsertImageExt.class) {
-            @Override
-            public InsertImageExt create() {
-                final InsertImageExtPresenter presenter = new InsertImageExtPresenter($(InsertImageDialog.class));
-                final InsertImageExtPanel panel = new InsertImageExtPanel(presenter, i18n);
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(Singleton.class, new Factory<InsertLinkDialog>(InsertLinkDialog.class) {
-            @Override
-            public InsertLinkDialog create() {
-                final InsertLinkDialogPresenter presenter = new InsertLinkDialogPresenter();
-                final InsertLinkDialogPanel panel = new InsertLinkDialogPanel(presenter, $(Images.class),
-                        $(I18nTranslationService.class), $(InsertLinkGroup.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(InsertLinkGroup.class,
-                new Factory<InsertLinkExt>(InsertLinkExt.class) {
-                    @Override
-                    public InsertLinkExt create() {
-                        final InsertLinkExtPresenter presenter = new InsertLinkExtPresenter(
-                                $(InsertLinkDialog.class));
-                        final InsertLinkExtView panel = new InsertLinkExtPanel(presenter,
-                                $(I18nTranslationService.class));
-                        presenter.init(panel);
-                        return presenter;
-                    }
-                });
-
-        register(InsertLinkGroup.class, new Factory<InsertLinkEmail>(
-                InsertLinkEmail.class) {
-            @Override
-            public InsertLinkEmail create() {
-                final InsertLinkEmailPresenter presenter = new InsertLinkEmailPresenter(
-                        $(InsertLinkDialog.class));
-                final InsertLinkEmailPanel panel = new InsertLinkEmailPanel(presenter,
-                        $(I18nTranslationService.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        $(ApplicationComponentGroup.class).createAll();
-        $(ToolGroup.class).createAll();
-        $(Application.class).start();
-        // $(HelloWorld.class);
-    }
-}
\ No newline at end of file

Copied: trunk/src/main/java/org/ourproject/kune/platf/client/services/PlatformModule.java (from rev 1071, 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-03-11 14:08:13 UTC (rev 1071)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/PlatformModule.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -0,0 +1,419 @@
+/*
+ *
+ * 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.toolbar.ActionToolbarPanel;
+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.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.platf.client.i18n.Resources;
+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.noti.NotifyUser;
+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.TestRTEDialog;
+import org.ourproject.kune.platf.client.ui.rte.basic.RTEActionSndToolbar;
+import org.ourproject.kune.platf.client.ui.rte.basic.RTEActionTopToolbar;
+import org.ourproject.kune.platf.client.ui.rte.basic.RTEditor;
+import org.ourproject.kune.platf.client.ui.rte.basic.RTEditorPanel;
+import org.ourproject.kune.platf.client.ui.rte.basic.RTEditorPresenter;
+import org.ourproject.kune.platf.client.ui.rte.edithtml.EditHtmlDialog;
+import org.ourproject.kune.platf.client.ui.rte.edithtml.EditHtmlGroup;
+import org.ourproject.kune.platf.client.ui.rte.edithtml.EditHtmlDialogPanel;
+import org.ourproject.kune.platf.client.ui.rte.edithtml.EditHtmlDialogPresenter;
+import org.ourproject.kune.platf.client.ui.rte.edithtml.editor.EditHtmlEditor;
+import org.ourproject.kune.platf.client.ui.rte.edithtml.editor.EditHtmlEditorPanel;
+import org.ourproject.kune.platf.client.ui.rte.edithtml.editor.EditHtmlEditorPresenter;
+import org.ourproject.kune.platf.client.ui.rte.edithtml.preview.EditHtmlPreview;
+import org.ourproject.kune.platf.client.ui.rte.edithtml.preview.EditHtmlPreviewPanel;
+import org.ourproject.kune.platf.client.ui.rte.edithtml.preview.EditHtmlPreviewPresenter;
+import org.ourproject.kune.platf.client.ui.rte.img.RTEImgResources;
+import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageDialog;
+import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageGroup;
+import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageDialogPanel;
+import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageDialogPresenter;
+import org.ourproject.kune.platf.client.ui.rte.insertimg.ext.InsertImageExt;
+import org.ourproject.kune.platf.client.ui.rte.insertimg.ext.InsertImageExtPanel;
+import org.ourproject.kune.platf.client.ui.rte.insertimg.ext.InsertImageExtPresenter;
+import org.ourproject.kune.platf.client.ui.rte.insertlink.InsertLinkDialog;
+import org.ourproject.kune.platf.client.ui.rte.insertlink.InsertLinkGroup;
+import org.ourproject.kune.platf.client.ui.rte.insertlink.InsertLinkDialogPanel;
+import org.ourproject.kune.platf.client.ui.rte.insertlink.InsertLinkDialogPresenter;
+import org.ourproject.kune.platf.client.ui.rte.insertlink.email.InsertLinkEmail;
+import org.ourproject.kune.platf.client.ui.rte.insertlink.email.InsertLinkEmailPanel;
+import org.ourproject.kune.platf.client.ui.rte.insertlink.email.InsertLinkEmailPresenter;
+import org.ourproject.kune.platf.client.ui.rte.insertlink.ext.InsertLinkExt;
+import org.ourproject.kune.platf.client.ui.rte.insertlink.ext.InsertLinkExtPanel;
+import org.ourproject.kune.platf.client.ui.rte.insertlink.ext.InsertLinkExtPresenter;
+import org.ourproject.kune.platf.client.ui.rte.insertlink.ext.InsertLinkExtView;
+import org.ourproject.kune.platf.client.ui.rte.saving.RTESavingEditor;
+import org.ourproject.kune.platf.client.ui.rte.saving.RTESavingEditorPanel;
+import org.ourproject.kune.platf.client.ui.rte.saving.RTESavingEditorPresenter;
+import org.ourproject.kune.platf.client.utils.DeferredCommandWrapper;
+import org.ourproject.kune.platf.client.utils.TimerWrapper;
+
+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.libideas.client.StyleInjector;
+import com.google.gwt.user.client.Cookies;
+import com.google.gwt.user.client.History;
+import com.google.gwt.user.client.rpc.ServiceDefTarget;
+
+public class PlatformModule extends AbstractModule {
+
+    @Override
+    protected void onInstall() {
+
+        register(Singleton.class, new Factory<Session>(Session.class) {
+            @Override
+            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<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<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<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<Resources>(Resources.class) {
+            @Override
+            public Resources create() {
+                return new Resources(i18n);
+            }
+        });
+
+        $(Resources.class);
+
+        register(Singleton.class, new Factory<I18nTranslationService>(I18nTranslationService.class) {
+            @Override
+            public I18nTranslationService create() {
+                return i18n;
+            }
+        });
+
+        register(Singleton.class, new Factory<ErrorHandler>(ErrorHandler.class) {
+            @Override
+            public ErrorHandler create() {
+                return new ErrorHandler($(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($(ErrorHandler.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(NoDecoration.class, new Factory<RTEActionTopToolbar>(RTEActionTopToolbar.class) {
+            @Override
+            public RTEActionTopToolbar create() {
+                final ActionToolbarPanel<Object> panel = new ActionToolbarPanel<Object>($$(ActionManager.class));
+                final RTEActionTopToolbar toolbar = new RTEActionTopToolbar(panel);
+                return toolbar;
+            }
+        }, new Factory<RTEActionSndToolbar>(RTEActionSndToolbar.class) {
+            @Override
+            public RTEActionSndToolbar create() {
+                final ActionToolbarPanel<Object> panel = new ActionToolbarPanel<Object>($$(ActionManager.class), true);
+                final RTEActionSndToolbar toolbar = new RTEActionSndToolbar(panel);
+                return toolbar;
+            }
+        });
+
+        register(Singleton.class, new Factory<TimerWrapper>(TimerWrapper.class) {
+            @Override
+            public TimerWrapper create() {
+                return new TimerWrapper();
+            }
+        });
+
+        register(NoDecoration.class, new Factory<RTEditor>(RTEditor.class) {
+            @Override
+            public RTEditor create() {
+                RTEActionTopToolbar topBar = $(RTEActionTopToolbar.class);
+                RTEActionSndToolbar sndBar = $(RTEActionSndToolbar.class);
+                final RTEditorPresenter presenter = new RTEditorPresenter($(I18nTranslationService.class),
+                        $(Session.class), topBar, sndBar, $(RTEImgResources.class), $(InsertLinkDialog.class),
+                        $(ColorWebSafePalette.class), $$(EditHtmlDialog.class), $$(InsertImageDialog.class),
+                        $(DeferredCommandWrapper.class));
+                final RTEditorPanel panel = new RTEditorPanel(presenter, $(I18nUITranslationService.class),
+                        $(ActionManager.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        }, new Factory<RTESavingEditor>(RTESavingEditor.class) {
+            @Override
+            public RTESavingEditor create() {
+                RTESavingEditorPresenter presenter = new RTESavingEditorPresenter($(RTEditor.class), true,
+                        $(I18nTranslationService.class), $(StateManager.class), $(DeferredCommandWrapper.class),
+                        $(RTEImgResources.class), $(TimerWrapper.class));
+                RTESavingEditorPanel panel = new RTESavingEditorPanel();
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(NoDecoration.class, new Factory<TestRTEDialog>(TestRTEDialog.class) {
+            @Override
+            public TestRTEDialog create() {
+                return new TestRTEDialog($(RTESavingEditor.class));
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<NotifyUser>(NotifyUser.class) {
+            @Override
+            public NotifyUser create() {
+                return new NotifyUser($(I18nTranslationService.class), $(Images.class));
+            }
+        });
+
+        register(Singleton.class, new Factory<RTEImgResources>(RTEImgResources.class) {
+            @Override
+            public RTEImgResources create() {
+                RTEImgResources instance = GWT.create(RTEImgResources.class);
+                StyleInjector.injectStylesheet(instance.css().getText());
+                return instance;
+            }
+        });
+
+        registerDecorator(EditHtmlGroup.class, new EditHtmlGroup(container));
+
+        register(Singleton.class, new Factory<EditHtmlDialog>(EditHtmlDialog.class) {
+            @Override
+            public EditHtmlDialog create() {
+                final EditHtmlDialogPresenter presenter = new EditHtmlDialogPresenter();
+                final EditHtmlDialogPanel panel = new EditHtmlDialogPanel(presenter, $(I18nTranslationService.class),
+                        $(RTEImgResources.class), $(Images.class), $(EditHtmlGroup.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(EditHtmlGroup.class, new Factory<EditHtmlEditor>(EditHtmlEditor.class) {
+            @Override
+            public EditHtmlEditor create() {
+                final EditHtmlEditorPresenter presenter = new EditHtmlEditorPresenter($(EditHtmlDialog.class));
+                final EditHtmlEditorPanel panel = new EditHtmlEditorPanel(i18n, presenter);
+                presenter.init(panel);
+                return presenter;
+            }
+        }, new Factory<EditHtmlPreview>(EditHtmlPreview.class) {
+            @Override
+            public EditHtmlPreview create() {
+                final EditHtmlPreviewPresenter presenter = new EditHtmlPreviewPresenter($(EditHtmlDialog.class));
+                final EditHtmlPreviewPanel panel = new EditHtmlPreviewPanel(i18n, presenter);
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(Singleton.class, new Factory<InsertImageDialog>(InsertImageDialog.class) {
+            @Override
+            public InsertImageDialog create() {
+                final InsertImageDialogPresenter presenter = new InsertImageDialogPresenter();
+                final InsertImageDialogPanel panel = new InsertImageDialogPanel(presenter, $(I18nTranslationService.class),
+                        $(Images.class), $(InsertImageGroup.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(InsertImageGroup.class, new Factory<InsertImageExt>(InsertImageExt.class) {
+            @Override
+            public InsertImageExt create() {
+                final InsertImageExtPresenter presenter = new InsertImageExtPresenter($(InsertImageDialog.class));
+                final InsertImageExtPanel panel = new InsertImageExtPanel(presenter, i18n);
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(Singleton.class, new Factory<InsertLinkDialog>(InsertLinkDialog.class) {
+            @Override
+            public InsertLinkDialog create() {
+                final InsertLinkDialogPresenter presenter = new InsertLinkDialogPresenter();
+                final InsertLinkDialogPanel panel = new InsertLinkDialogPanel(presenter, $(Images.class),
+                        $(I18nTranslationService.class), $(InsertLinkGroup.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(InsertLinkGroup.class,
+                new Factory<InsertLinkExt>(InsertLinkExt.class) {
+                    @Override
+                    public InsertLinkExt create() {
+                        final InsertLinkExtPresenter presenter = new InsertLinkExtPresenter(
+                                $(InsertLinkDialog.class));
+                        final InsertLinkExtView panel = new InsertLinkExtPanel(presenter,
+                                $(I18nTranslationService.class));
+                        presenter.init(panel);
+                        return presenter;
+                    }
+                });
+
+        register(InsertLinkGroup.class, new Factory<InsertLinkEmail>(
+                InsertLinkEmail.class) {
+            @Override
+            public InsertLinkEmail create() {
+                final InsertLinkEmailPresenter presenter = new InsertLinkEmailPresenter(
+                        $(InsertLinkDialog.class));
+                final InsertLinkEmailPanel panel = new InsertLinkEmailPanel(presenter,
+                        $(I18nTranslationService.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        $(ApplicationComponentGroup.class).createAll();
+        $(ToolGroup.class).createAll();
+        $(Application.class).start();
+        // $(HelloWorld.class);
+    }
+}
\ No newline at end of file

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/IconLabel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/IconLabel.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/IconLabel.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -55,7 +55,7 @@
     private HorizontalAlignmentConstant horzAlign;
     private MouseListenerCollection mouseListeners;
     private MouseWheelListenerCollection mouseWheelListeners;
-    private final Element icon;
+    private Element icon;
     private final Element textLabel;
 
     /**
@@ -123,7 +123,7 @@
     private IconLabel(final AbstractImagePrototype image, final boolean leftIcon) {
         setElement(DOM.createDiv());
         sinkEvents(Event.ONCLICK | Event.MOUSEEVENTS | Event.ONMOUSEWHEEL | Event.ONDBLCLICK);
-        icon = image.createImage().getElement();
+        setIcon(image);
         textLabel = DOM.createSpan();
         if (leftIcon) {
             setStyleName("kune-IconLabel-l");
@@ -164,10 +164,6 @@
         mouseWheelListeners.add(listener);
     }
 
-    public void setStyleNameToText(final String styleName) {
-        DOM.setElementProperty(textLabel.<com.google.gwt.user.client.Element> cast(), "className", styleName);
-    }
-
     public HorizontalAlignmentConstant getHorizontalAlignment() {
         return horzAlign;
     }
@@ -244,6 +240,14 @@
         DOM.setStyleAttribute(textLabel, "textAlign", align.getTextAlignString());
     }
 
+    public void setIcon(AbstractImagePrototype image) {
+        icon = getImageElement(image);
+    }
+
+    public void setStyleNameToText(final String styleName) {
+        DOM.setElementProperty(textLabel.<com.google.gwt.user.client.Element> cast(), "className", styleName);
+    }
+
     public void setText(final String text) {
         DOM.setInnerText(textLabel, text);
     }
@@ -258,4 +262,8 @@
         DOM.setStyleAttribute(textLabel, "whiteSpace", wrap ? "normal" : "nowrap");
     }
 
+    private Element getImageElement(final AbstractImagePrototype image) {
+        return image.createImage().getElement();
+    }
+
 }
\ No newline at end of file

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -68,8 +68,8 @@
 
     public RTEditorPresenter(I18nTranslationService i18n, Session session, RTEActionTopToolbar topBar,
             RTEActionSndToolbar sndBar, RTEImgResources imgResources, InsertLinkDialog textEditorInsertElement,
-            ColorWebSafePalette palette, Provider<EditHtmlDialog> editHtmlDialog, Provider<InsertImageDialog> insertImageDialog,
-            DeferredCommandWrapper deferred) {
+            ColorWebSafePalette palette, Provider<EditHtmlDialog> editHtmlDialog,
+            Provider<InsertImageDialog> insertImageDialog, DeferredCommandWrapper deferred) {
         this.i18n = i18n;
         this.session = session;
         this.topBar = topBar;
@@ -535,6 +535,12 @@
                     public void onEvent() {
                         deferred.addCommand(new Listener0() {
                             public void onEvent() {
+                                insertElement.setOnCreateLink(new Listener2<String, String>() {
+                                    public void onEvent(String name, String url) {
+                                        view.createLink(url);
+                                        fireOnEdit();
+                                    }
+                                });
                                 insertElement.show();
                             }
                         });
@@ -544,12 +550,6 @@
         createLink.setToolTip(i18n.t("Create Link"));
         createLink.setShortcut(new ActionShortcut(true, 'K'));
         createLink.setAddCondition(canBeExtended);
-        insertElement.addOnCreateLink(new Listener2<String, String>() {
-            public void onEvent(String name, String url) {
-                view.createLink(url);
-                fireOnEdit();
-            }
-        });
 
         ActionToolbarButtonDescriptor<Object> removeLink = new ActionToolbarButtonDescriptor<Object>(accessRol, sndbar,
                 new Listener0() {

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/InsertLinkDialog.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/InsertLinkDialog.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/InsertLinkDialog.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -25,10 +25,8 @@
 
 public interface InsertLinkDialog extends AbstractTabbedDialog {
 
-    @Deprecated
-    void addOnCreateLink(Listener2<String, String> slot);
-
-    @Deprecated
     void fireOnCreateLink(String name, String link);
 
+    void setOnCreateLink(Listener2<String, String> listener);
+
 }

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/InsertLinkDialogPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/InsertLinkDialogPresenter.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/InsertLinkDialogPresenter.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -21,32 +21,27 @@
 
 import org.ourproject.kune.platf.client.ui.dialogs.tabbed.AbstractTabbedDialogPresenter;
 
-import com.calclab.suco.client.events.Event2;
 import com.calclab.suco.client.events.Listener2;
 
 public class InsertLinkDialogPresenter extends AbstractTabbedDialogPresenter implements InsertLinkDialog {
 
-    private final Event2<String, String> onCreateLink;
+    private Listener2<String, String> onCreateListener;
 
     public InsertLinkDialogPresenter() {
-        this.onCreateLink = new Event2<String, String>("onCreateLink");
     }
 
-    @Deprecated
-    public void addOnCreateLink(final Listener2<String, String> slot) {
-        onCreateLink.add(slot);
-    }
-
-    @Deprecated
     public void fireOnCreateLink(String name, String link) {
-        onCreateLink.fire(name, link);
+        onCreateListener.onEvent(name, link);
         super.hide();
     }
 
-    @Deprecated
     public void fireOnInsertHtml(String name, String link) {
-        onCreateLink.fire(name, link);
+        onCreateListener.onEvent(name, link);
         super.hide();
     }
 
+    public void setOnCreateLink(final Listener2<String, String> listener) {
+        this.onCreateListener = listener;
+    }
+
 }
\ No newline at end of file

Added: trunk/src/main/java/org/ourproject/kune/platf/public/images/arrow_in.png
===================================================================
(Binary files differ)


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

Added: trunk/src/main/java/org/ourproject/kune/platf/public/images/arrow_out.png
===================================================================
(Binary files differ)


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

Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -27,7 +27,7 @@
 import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
 import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
 import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
-import org.ourproject.kune.platf.client.services.KuneErrorHandler;
+import org.ourproject.kune.platf.client.services.ErrorHandler;
 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;
@@ -53,7 +53,7 @@
             final Provider<GroupServiceAsync> groupServiceProvider, final Provider<FileUploader> fileUploaderProvider,
             final ContentActionRegistry contentActionRegistry, final ContextActionRegistry contextActionRegistry,
             final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
-            final Provider<ContentEditor> textEditorProvider, final KuneErrorHandler errorHandler,
+            final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
             final WikiViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
             final SitePublicSpaceLink publicLink) {
         super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,

Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -25,7 +25,7 @@
 import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
 import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
 import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
-import org.ourproject.kune.platf.client.services.KuneErrorHandler;
+import org.ourproject.kune.platf.client.services.ErrorHandler;
 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;
@@ -78,7 +78,7 @@
                         $(Session.class), $(StateManager.class), $(DeferredCommandWrapper.class),
                         $$(ContentServiceAsync.class), $$(GroupServiceAsync.class), $$(FileUploader.class),
                         $(ContentActionRegistry.class), $(ContextActionRegistry.class), $$(FileDownloadUtils.class),
-                        $(EntityHeader.class), $$(ContentEditor.class), $(KuneErrorHandler.class), $(WikiViewer.class),
+                        $(EntityHeader.class), $$(ContentEditor.class), $(ErrorHandler.class), $(WikiViewer.class),
                         $$(ContextPropEditor.class), $(SitePublicSpaceLink.class));
             }
         });

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -46,7 +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.KuneErrorHandler;
+import org.ourproject.kune.platf.client.services.ErrorHandler;
 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;
@@ -86,7 +86,7 @@
     protected final Provider<ContentServiceAsync> contentServiceProvider;
     protected final Provider<FileUploader> fileUploaderProvider;
     protected final ContextNavigator contextNavigator;
-    protected final KuneErrorHandler errorHandler;
+    protected final ErrorHandler errorHandler;
     protected final Provider<GroupServiceAsync> groupServiceProvider;
     protected final ContentActionRegistry contentActionRegistry;
     protected final ContextActionRegistry contextActionRegistry;
@@ -99,7 +99,7 @@
     private final SitePublicSpaceLink publicLink;
 
     public AbstractFoldableContentActions(Session session, StateManager stateManager, I18nUITranslationService i18n,
-            KuneErrorHandler errorHandler, DeferredCommandWrapper deferredCommandWrapper,
+            ErrorHandler errorHandler, DeferredCommandWrapper deferredCommandWrapper,
             Provider<GroupServiceAsync> groupServiceProvider, Provider<ContentServiceAsync> contentServiceProvider,
             Provider<FileUploader> fileUploaderProvider, ContextNavigator contextNavigator,
             ContentActionRegistry contentActionRegistry, ContextActionRegistry contextActionRegistry,

Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/KuneRegistryModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/KuneRegistryModule.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/KuneRegistryModule.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -1,212 +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;
-
-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 org.ourproject.kune.workspace.client.cnt.ContentActionRegistry;
-import org.ourproject.kune.workspace.client.cnt.ContentIconsRegistry;
-import org.ourproject.kune.workspace.client.cxt.ContextActionRegistry;
-import org.ourproject.kune.workspace.client.socialnet.GroupActionRegistry;
-import org.ourproject.kune.workspace.client.socialnet.UserActionRegistry;
-
-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<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/workspace/client/KuneWorkspaceModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/KuneWorkspaceModule.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/KuneWorkspaceModule.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -1,940 +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;
-
-import org.ourproject.kune.chat.client.ChatEngine;
-import org.ourproject.kune.platf.client.actions.ActionManager;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPanel;
-import org.ourproject.kune.platf.client.app.ApplicationComponentGroup;
-import org.ourproject.kune.platf.client.app.EntityOptionsGroup;
-import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.platf.client.dto.UserSimpleDTO;
-import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
-import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
-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.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.ui.download.FileDownloadUtils;
-import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
-import org.ourproject.kune.platf.client.ui.rte.TestRTEDialog;
-import org.ourproject.kune.platf.client.ui.rte.basic.RTEditor;
-import org.ourproject.kune.platf.client.ui.rte.img.RTEImgResources;
-import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageDialog;
-import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageGroup;
-import org.ourproject.kune.platf.client.ui.rte.insertlink.InsertLinkDialog;
-import org.ourproject.kune.platf.client.ui.rte.insertlink.InsertLinkGroup;
-import org.ourproject.kune.platf.client.ui.rte.saving.RTESavingEditorPanel;
-import org.ourproject.kune.platf.client.utils.DeferredCommandWrapper;
-import org.ourproject.kune.platf.client.utils.TimerWrapper;
-import org.ourproject.kune.workspace.client.cnt.ActionContentToolbar;
-import org.ourproject.kune.workspace.client.cnt.ActionContentToolbarPresenter;
-import org.ourproject.kune.workspace.client.cnt.ContentIconsRegistry;
-import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
-import org.ourproject.kune.workspace.client.ctxnav.ContextNavigatorPanel;
-import org.ourproject.kune.workspace.client.ctxnav.ContextNavigatorPresenter;
-import org.ourproject.kune.workspace.client.cxt.ActionContextBottomToolbar;
-import org.ourproject.kune.workspace.client.cxt.ActionContextTopToolbar;
-import org.ourproject.kune.workspace.client.cxt.ContextActionRegistry;
-import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
-import org.ourproject.kune.workspace.client.cxt.ContextPropEditorPanel;
-import org.ourproject.kune.workspace.client.cxt.ContextPropEditorPresenter;
-import org.ourproject.kune.workspace.client.cxt.ContextPropEditorView;
-import org.ourproject.kune.workspace.client.editor.ContentEditor;
-import org.ourproject.kune.workspace.client.editor.insertlocalimg.InsertImageLocal;
-import org.ourproject.kune.workspace.client.editor.insertlocalimg.InsertImageLocalPanel;
-import org.ourproject.kune.workspace.client.editor.insertlocalimg.InsertImageLocalPresenter;
-import org.ourproject.kune.workspace.client.editor.insertlocallink.InsertLinkLocal;
-import org.ourproject.kune.workspace.client.editor.insertlocallink.InsertLinkLocalPanel;
-import org.ourproject.kune.workspace.client.editor.insertlocallink.InsertLinkLocalPresenter;
-import org.ourproject.kune.workspace.client.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.rate.RateIt;
-import org.ourproject.kune.workspace.client.rate.RateItPanel;
-import org.ourproject.kune.workspace.client.rate.RateItPresenter;
-import org.ourproject.kune.workspace.client.rate.RatePanel;
-import org.ourproject.kune.workspace.client.rate.RatePresenter;
-import org.ourproject.kune.workspace.client.search.EntityLiveSearcherView;
-import org.ourproject.kune.workspace.client.search.GroupLiveSearchPanel;
-import org.ourproject.kune.workspace.client.search.GroupLiveSearcher;
-import org.ourproject.kune.workspace.client.search.GroupLiveSearcherPresenter;
-import org.ourproject.kune.workspace.client.search.SiteSearcher;
-import org.ourproject.kune.workspace.client.search.SiteSearcherPanel;
-import org.ourproject.kune.workspace.client.search.SiteSearcherPresenter;
-import org.ourproject.kune.workspace.client.search.SiteSearcherView;
-import org.ourproject.kune.workspace.client.search.UserLiveSearcher;
-import org.ourproject.kune.workspace.client.search.UserLiveSearcherPanel;
-import org.ourproject.kune.workspace.client.search.UserLiveSearcherPresenter;
-import org.ourproject.kune.workspace.client.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.SiteToken;
-import org.ourproject.kune.workspace.client.site.WorkspaceNotifyUser;
-import org.ourproject.kune.workspace.client.site.msg.ToastMessage;
-import org.ourproject.kune.workspace.client.site.msg.ToastMessagePanel;
-import org.ourproject.kune.workspace.client.site.msg.ToastMessagePresenter;
-import org.ourproject.kune.workspace.client.sitebar.sitelogo.SiteLogo;
-import org.ourproject.kune.workspace.client.sitebar.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.ActionCntCtxToolbarPanel;
-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.GroupActionRegistry;
-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.UserActionRegistry;
-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.socialnet.toolbar.ActionBuddiesSummaryToolbar;
-import org.ourproject.kune.workspace.client.socialnet.toolbar.ActionBuddiesSummaryToolbarPresenter;
-import org.ourproject.kune.workspace.client.socialnet.toolbar.ActionGroupSummaryToolbar;
-import org.ourproject.kune.workspace.client.socialnet.toolbar.ActionGroupSummaryToolbarPresenter;
-import org.ourproject.kune.workspace.client.socialnet.toolbar.ActionParticipationSummaryToolbarPresenter;
-import org.ourproject.kune.workspace.client.socialnet.toolbar.ActionParticipationToolbar;
-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 org.ourproject.kune.workspace.client.tool.ToolSelector;
-import org.ourproject.kune.workspace.client.tool.ToolSelectorPresenter;
-import org.ourproject.kune.workspace.client.upload.FileUploader;
-import org.ourproject.kune.workspace.client.upload.FileUploaderDialog;
-import org.ourproject.kune.workspace.client.upload.FileUploaderPresenter;
-
-import 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<WorkspaceNotifyUser>(WorkspaceNotifyUser.class) {
-            @Override
-            public WorkspaceNotifyUser create() {
-                return new WorkspaceNotifyUser($(NotifyUser.class), $(I18nUITranslationService.class),
-                        $(SiteProgress.class), $$(ToastMessage.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<ToastMessage>(ToastMessage.class) {
-            @Override
-            public ToastMessage create() {
-                final ToastMessagePresenter presenter = new ToastMessagePresenter();
-                final ToastMessagePanel panel = new ToastMessagePanel();
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<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), $$(TestRTEDialog.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();
-            }
-        });
-
-        register(Singleton.class, new Factory<ActionGroupSummaryToolbar>(ActionGroupSummaryToolbar.class) {
-            @Override
-            public ActionGroupSummaryToolbar create() {
-                final ActionToolbarPanel<StateToken> panel = new ActionToolbarPanel<StateToken>($$(ActionManager.class));
-                final ActionGroupSummaryToolbarPresenter toolbar = new ActionGroupSummaryToolbarPresenter(panel);
-                return toolbar;
-            }
-        }, new Factory<ActionParticipationToolbar>(ActionParticipationToolbar.class) {
-            @Override
-            public ActionParticipationToolbar create() {
-                final ActionToolbarPanel<StateToken> panel = new ActionToolbarPanel<StateToken>($$(ActionManager.class));
-                final ActionParticipationSummaryToolbarPresenter toolbar = new ActionParticipationSummaryToolbarPresenter(
-                        panel);
-                return toolbar;
-            }
-        }, new Factory<ActionBuddiesSummaryToolbar>(ActionBuddiesSummaryToolbar.class) {
-            @Override
-            public ActionBuddiesSummaryToolbar create() {
-                final ActionToolbarPanel<UserSimpleDTO> panel = new ActionToolbarPanel<UserSimpleDTO>(
-                        $$(ActionManager.class));
-                final ActionBuddiesSummaryToolbarPresenter toolbar = new ActionBuddiesSummaryToolbarPresenter(panel);
-                return toolbar;
-            }
-        });
-
-        register(ApplicationComponentGroup.class, new Factory<GroupMembersSummary>(GroupMembersSummary.class) {
-            @Override
-            public GroupMembersSummary create() {
-                final GroupMembersSummaryPresenter presenter = new GroupMembersSummaryPresenter(
-                        $(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<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(InsertLinkGroup.class, new Factory<InsertLinkLocal>(
-                InsertLinkLocal.class) {
-            @Override
-            public InsertLinkLocal create() {
-                final InsertLinkLocalPresenter presenter = new InsertLinkLocalPresenter(
-                        $(InsertLinkDialog.class));
-                final InsertLinkLocalPanel panel = new InsertLinkLocalPanel(presenter,
-                        $(WorkspaceSkeleton.class), $(I18nTranslationService.class), $(FileDownloadUtils.class));
-                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> tbar = new ActionCntCtxToolbarPanel<StateToken>(
-                        AbstractFoldableContentActions.CONTENT_TOPBAR, $$(ActionManager.class),
-                        $(WorkspaceSkeleton.class));
-                final ActionContentToolbar toolbar = new ActionContentToolbarPresenter(tbar);
-                return toolbar;
-            }
-        });
-
-        register(Singleton.class, new Factory<ContentEditor>(ContentEditor.class) {
-            @Override
-            public ContentEditor create() {
-                return new ContentEditor($(RTEditor.class), true, $(I18nTranslationService.class),
-                        $(StateManager.class), $(SiteSignOutLink.class), $(DeferredCommandWrapper.class),
-                        $(RTEImgResources.class), $(WorkspaceSkeleton.class), $(TimerWrapper.class),
-                        new RTESavingEditorPanel());
-            }
-        });
-        register(NoDecoration.class, new Factory<ActionContextTopToolbar>(ActionContextTopToolbar.class) {
-            @Override
-            public ActionContextTopToolbar create() {
-                final ActionCntCtxToolbarPanel<StateToken> panel = new ActionCntCtxToolbarPanel<StateToken>(
-                        AbstractFoldableContentActions.CONTEXT_TOPBAR, $$(ActionManager.class),
-                        $(WorkspaceSkeleton.class));
-                final ActionContextTopToolbar toolbar = new ActionContextTopToolbar(panel);
-                return toolbar;
-            }
-        });
-
-        register(NoDecoration.class, new Factory<ActionContextBottomToolbar>(ActionContextBottomToolbar.class) {
-            @Override
-            public ActionContextBottomToolbar create() {
-                final ActionCntCtxToolbarPanel<StateToken> panel = new ActionCntCtxToolbarPanel<StateToken>(
-                        AbstractFoldableContentActions.CONTEXT_BOTTOMBAR, $$(ActionManager.class),
-                        $(WorkspaceSkeleton.class));
-                final ActionContextBottomToolbar toolbar = new ActionContextBottomToolbar(panel);
-                return toolbar;
-            }
-        });
-
-        register(Singleton.class, new Factory<ContextNavigator>(ContextNavigator.class) {
-            @Override
-            public ContextNavigator create() {
-                final ContextNavigatorPresenter presenter = new ContextNavigatorPresenter($(StateManager.class),
-                        $(Session.class), $(I18nTranslationService.class), $(ContentIconsRegistry.class),
-                        $(ContentCapabilitiesRegistry.class), $(ActionContextTopToolbar.class),
-                        $(ActionContextBottomToolbar.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;
-            }
-        });
-
-        register(InsertImageGroup.class, new Factory<InsertImageLocal>(InsertImageLocal.class) {
-            @Override
-            public InsertImageLocal create() {
-                final InsertImageLocalPresenter presenter = new InsertImageLocalPresenter($(InsertImageDialog.class));
-                final InsertImageLocalPanel panel = new InsertImageLocalPanel(presenter,
-                        $(I18nTranslationService.class));
-                presenter.init(panel);
-                return presenter;
-            }
-        });
-
-    }
-}

Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/RegistryModule.java (from rev 1071, trunk/src/main/java/org/ourproject/kune/workspace/client/KuneRegistryModule.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/KuneRegistryModule.java	2009-03-11 14:08:13 UTC (rev 1071)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/RegistryModule.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -0,0 +1,212 @@
+/*
+ *
+ * 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.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 org.ourproject.kune.workspace.client.cnt.ContentActionRegistry;
+import org.ourproject.kune.workspace.client.cnt.ContentIconsRegistry;
+import org.ourproject.kune.workspace.client.cxt.ContextActionRegistry;
+import org.ourproject.kune.workspace.client.socialnet.GroupActionRegistry;
+import org.ourproject.kune.workspace.client.socialnet.UserActionRegistry;
+
+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 RegistryModule 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<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/WorkspaceModule.java (from rev 1071, trunk/src/main/java/org/ourproject/kune/workspace/client/KuneWorkspaceModule.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/KuneWorkspaceModule.java	2009-03-11 14:08:13 UTC (rev 1071)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -0,0 +1,952 @@
+/*
+ *
+ * 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.toolbar.ActionToolbarPanel;
+import org.ourproject.kune.platf.client.app.ApplicationComponentGroup;
+import org.ourproject.kune.platf.client.app.EntityOptionsGroup;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.dto.UserSimpleDTO;
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
+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.ErrorHandler;
+import org.ourproject.kune.platf.client.services.ImageUtils;
+import org.ourproject.kune.platf.client.services.Images;
+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.noti.NotifyUser;
+import org.ourproject.kune.platf.client.ui.rte.TestRTEDialog;
+import org.ourproject.kune.platf.client.ui.rte.basic.RTEditor;
+import org.ourproject.kune.platf.client.ui.rte.img.RTEImgResources;
+import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageDialog;
+import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageGroup;
+import org.ourproject.kune.platf.client.ui.rte.insertlink.InsertLinkDialog;
+import org.ourproject.kune.platf.client.ui.rte.insertlink.InsertLinkGroup;
+import org.ourproject.kune.platf.client.ui.rte.saving.RTESavingEditorPanel;
+import org.ourproject.kune.platf.client.utils.DeferredCommandWrapper;
+import org.ourproject.kune.platf.client.utils.TimerWrapper;
+import org.ourproject.kune.workspace.client.cnt.ActionContentToolbar;
+import org.ourproject.kune.workspace.client.cnt.ActionContentToolbarPresenter;
+import org.ourproject.kune.workspace.client.cnt.ContentIconsRegistry;
+import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
+import org.ourproject.kune.workspace.client.ctxnav.ContextNavigatorPanel;
+import org.ourproject.kune.workspace.client.ctxnav.ContextNavigatorPresenter;
+import org.ourproject.kune.workspace.client.cxt.ActionContextBottomToolbar;
+import org.ourproject.kune.workspace.client.cxt.ActionContextTopToolbar;
+import org.ourproject.kune.workspace.client.cxt.ContextActionRegistry;
+import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
+import org.ourproject.kune.workspace.client.cxt.ContextPropEditorPanel;
+import org.ourproject.kune.workspace.client.cxt.ContextPropEditorPresenter;
+import org.ourproject.kune.workspace.client.cxt.ContextPropEditorView;
+import org.ourproject.kune.workspace.client.editor.ContentEditor;
+import org.ourproject.kune.workspace.client.editor.insertlocalimg.InsertImageLocal;
+import org.ourproject.kune.workspace.client.editor.insertlocalimg.InsertImageLocalPanel;
+import org.ourproject.kune.workspace.client.editor.insertlocalimg.InsertImageLocalPresenter;
+import org.ourproject.kune.workspace.client.editor.insertlocallink.InsertLinkLocal;
+import org.ourproject.kune.workspace.client.editor.insertlocallink.InsertLinkLocalPanel;
+import org.ourproject.kune.workspace.client.editor.insertlocallink.InsertLinkLocalPresenter;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeaderPanel;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeaderPresenter;
+import org.ourproject.kune.workspace.client.entityheader.maxmin.MaxMinWorkspace;
+import org.ourproject.kune.workspace.client.entityheader.maxmin.MaxMinWorkspacePanel;
+import org.ourproject.kune.workspace.client.entityheader.maxmin.MaxMinWorkspacePresenter;
+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.rate.RateIt;
+import org.ourproject.kune.workspace.client.rate.RateItPanel;
+import org.ourproject.kune.workspace.client.rate.RateItPresenter;
+import org.ourproject.kune.workspace.client.rate.RatePanel;
+import org.ourproject.kune.workspace.client.rate.RatePresenter;
+import org.ourproject.kune.workspace.client.search.EntityLiveSearcherView;
+import org.ourproject.kune.workspace.client.search.GroupLiveSearchPanel;
+import org.ourproject.kune.workspace.client.search.GroupLiveSearcher;
+import org.ourproject.kune.workspace.client.search.GroupLiveSearcherPresenter;
+import org.ourproject.kune.workspace.client.search.SiteSearcher;
+import org.ourproject.kune.workspace.client.search.SiteSearcherPanel;
+import org.ourproject.kune.workspace.client.search.SiteSearcherPresenter;
+import org.ourproject.kune.workspace.client.search.SiteSearcherView;
+import org.ourproject.kune.workspace.client.search.UserLiveSearcher;
+import org.ourproject.kune.workspace.client.search.UserLiveSearcherPanel;
+import org.ourproject.kune.workspace.client.search.UserLiveSearcherPresenter;
+import org.ourproject.kune.workspace.client.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.SiteToken;
+import org.ourproject.kune.workspace.client.site.WorkspaceNotifyUser;
+import org.ourproject.kune.workspace.client.site.msg.ToastMessage;
+import org.ourproject.kune.workspace.client.site.msg.ToastMessagePanel;
+import org.ourproject.kune.workspace.client.site.msg.ToastMessagePresenter;
+import org.ourproject.kune.workspace.client.sitebar.sitelogo.SiteLogo;
+import org.ourproject.kune.workspace.client.sitebar.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.ActionCntCtxToolbarPanel;
+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.GroupActionRegistry;
+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.UserActionRegistry;
+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.socialnet.toolbar.ActionBuddiesSummaryToolbar;
+import org.ourproject.kune.workspace.client.socialnet.toolbar.ActionBuddiesSummaryToolbarPresenter;
+import org.ourproject.kune.workspace.client.socialnet.toolbar.ActionGroupSummaryToolbar;
+import org.ourproject.kune.workspace.client.socialnet.toolbar.ActionGroupSummaryToolbarPresenter;
+import org.ourproject.kune.workspace.client.socialnet.toolbar.ActionParticipationSummaryToolbarPresenter;
+import org.ourproject.kune.workspace.client.socialnet.toolbar.ActionParticipationToolbar;
+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 org.ourproject.kune.workspace.client.tool.ToolSelector;
+import org.ourproject.kune.workspace.client.tool.ToolSelectorPresenter;
+import org.ourproject.kune.workspace.client.upload.FileUploader;
+import org.ourproject.kune.workspace.client.upload.FileUploaderDialog;
+import org.ourproject.kune.workspace.client.upload.FileUploaderPresenter;
+
+import 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 WorkspaceModule 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<WorkspaceNotifyUser>(WorkspaceNotifyUser.class) {
+            @Override
+            public WorkspaceNotifyUser create() {
+                return new WorkspaceNotifyUser($(NotifyUser.class), $(I18nUITranslationService.class),
+                        $(SiteProgress.class), $$(ToastMessage.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<ToastMessage>(ToastMessage.class) {
+            @Override
+            public ToastMessage create() {
+                final ToastMessagePresenter presenter = new ToastMessagePresenter();
+                final ToastMessagePanel panel = new ToastMessagePanel();
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<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), $$(ErrorHandler.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), $$(TestRTEDialog.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();
+            }
+        });
+
+        register(Singleton.class, new Factory<ActionGroupSummaryToolbar>(ActionGroupSummaryToolbar.class) {
+            @Override
+            public ActionGroupSummaryToolbar create() {
+                final ActionToolbarPanel<StateToken> panel = new ActionToolbarPanel<StateToken>($$(ActionManager.class));
+                final ActionGroupSummaryToolbarPresenter toolbar = new ActionGroupSummaryToolbarPresenter(panel);
+                return toolbar;
+            }
+        }, new Factory<ActionParticipationToolbar>(ActionParticipationToolbar.class) {
+            @Override
+            public ActionParticipationToolbar create() {
+                final ActionToolbarPanel<StateToken> panel = new ActionToolbarPanel<StateToken>($$(ActionManager.class));
+                final ActionParticipationSummaryToolbarPresenter toolbar = new ActionParticipationSummaryToolbarPresenter(
+                        panel);
+                return toolbar;
+            }
+        }, new Factory<ActionBuddiesSummaryToolbar>(ActionBuddiesSummaryToolbar.class) {
+            @Override
+            public ActionBuddiesSummaryToolbar create() {
+                final ActionToolbarPanel<UserSimpleDTO> panel = new ActionToolbarPanel<UserSimpleDTO>(
+                        $$(ActionManager.class));
+                final ActionBuddiesSummaryToolbarPresenter toolbar = new ActionBuddiesSummaryToolbarPresenter(panel);
+                return toolbar;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<GroupMembersSummary>(GroupMembersSummary.class) {
+            @Override
+            public GroupMembersSummary create() {
+                final GroupMembersSummaryPresenter presenter = new GroupMembersSummaryPresenter(
+                        $(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<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(InsertLinkGroup.class, new Factory<InsertLinkLocal>(InsertLinkLocal.class) {
+            @Override
+            public InsertLinkLocal create() {
+                final InsertLinkLocalPresenter presenter = new InsertLinkLocalPresenter($(InsertLinkDialog.class));
+                final InsertLinkLocalPanel panel = new InsertLinkLocalPanel(presenter, $(WorkspaceSkeleton.class),
+                        $(I18nTranslationService.class), $(FileDownloadUtils.class));
+                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> tbar = new ActionCntCtxToolbarPanel<StateToken>(
+                        AbstractFoldableContentActions.CONTENT_TOPBAR, $$(ActionManager.class),
+                        $(WorkspaceSkeleton.class));
+                final ActionContentToolbar toolbar = new ActionContentToolbarPresenter(tbar);
+                return toolbar;
+            }
+        });
+
+        register(Singleton.class, new Factory<ContentEditor>(ContentEditor.class) {
+            @Override
+            public ContentEditor create() {
+                return new ContentEditor($(RTEditor.class), true, $(I18nTranslationService.class),
+                        $(StateManager.class), $(SiteSignOutLink.class), $(DeferredCommandWrapper.class),
+                        $(RTEImgResources.class), $(WorkspaceSkeleton.class), $(TimerWrapper.class),
+                        new RTESavingEditorPanel());
+            }
+        });
+        register(NoDecoration.class, new Factory<ActionContextTopToolbar>(ActionContextTopToolbar.class) {
+            @Override
+            public ActionContextTopToolbar create() {
+                final ActionCntCtxToolbarPanel<StateToken> panel = new ActionCntCtxToolbarPanel<StateToken>(
+                        AbstractFoldableContentActions.CONTEXT_TOPBAR, $$(ActionManager.class),
+                        $(WorkspaceSkeleton.class));
+                final ActionContextTopToolbar toolbar = new ActionContextTopToolbar(panel);
+                return toolbar;
+            }
+        });
+
+        register(NoDecoration.class, new Factory<ActionContextBottomToolbar>(ActionContextBottomToolbar.class) {
+            @Override
+            public ActionContextBottomToolbar create() {
+                final ActionCntCtxToolbarPanel<StateToken> panel = new ActionCntCtxToolbarPanel<StateToken>(
+                        AbstractFoldableContentActions.CONTEXT_BOTTOMBAR, $$(ActionManager.class),
+                        $(WorkspaceSkeleton.class));
+                final ActionContextBottomToolbar toolbar = new ActionContextBottomToolbar(panel);
+                return toolbar;
+            }
+        });
+
+        register(Singleton.class, new Factory<ContextNavigator>(ContextNavigator.class) {
+            @Override
+            public ContextNavigator create() {
+                final ContextNavigatorPresenter presenter = new ContextNavigatorPresenter($(StateManager.class),
+                        $(Session.class), $(I18nTranslationService.class), $(ContentIconsRegistry.class),
+                        $(ContentCapabilitiesRegistry.class), $(ActionContextTopToolbar.class),
+                        $(ActionContextBottomToolbar.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;
+            }
+        });
+
+        register(InsertImageGroup.class, new Factory<InsertImageLocal>(InsertImageLocal.class) {
+            @Override
+            public InsertImageLocal create() {
+                final InsertImageLocalPresenter presenter = new InsertImageLocalPresenter($(InsertImageDialog.class));
+                final InsertImageLocalPanel panel = new InsertImageLocalPanel(presenter,
+                        $(I18nTranslationService.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+        register(ApplicationComponentGroup.class, new Factory<MaxMinWorkspace>(MaxMinWorkspace.class) {
+            @Override
+            public MaxMinWorkspace create() {
+                final MaxMinWorkspacePresenter presenter = new MaxMinWorkspacePresenter();
+                final MaxMinWorkspacePanel panel = new MaxMinWorkspacePanel(presenter, $(WorkspaceSkeleton.class),
+                        $(Images.class), $(EntityHeader.class), $(I18nTranslationService.class));
+                presenter.init(panel);
+                return presenter;
+            }
+        });
+
+    }
+}

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderButton.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderButton.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderButton.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -8,9 +8,17 @@
 public class EntityHeaderButton extends IconLabel implements View {
     public EntityHeaderButton(AbstractImagePrototype icon, String text) {
         super(icon, text, false);
+        setDefStyle();
     }
 
     public EntityHeaderButton(String text, AbstractImagePrototype icon) {
         super(text, icon, false);
+        setDefStyle();
     }
+
+    private void setDefStyle() {
+        addStyleName("kune-Margin-Medium-t");
+        addStyleName("kune-pointer");
+    }
+
 }
\ No newline at end of file

Added: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspace.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspace.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspace.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -0,0 +1,5 @@
+package org.ourproject.kune.workspace.client.entityheader.maxmin;
+
+public interface MaxMinWorkspace {
+
+}

Added: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspacePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspacePanel.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspacePanel.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -0,0 +1,53 @@
+package org.ourproject.kune.workspace.client.entityheader.maxmin;
+
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.services.Images;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeaderButton;
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.Widget;
+
+public class MaxMinWorkspacePanel implements MaxMinWorkspaceView {
+
+    public static final String MIN_ICON = "mmwp-min_bt";
+    public static final String MAX_ICON = "mmwp-max_bt";
+    private final WorkspaceSkeleton ws;
+    private final EntityHeaderButton maxBtn;
+    private final EntityHeaderButton minBtn;
+
+    public MaxMinWorkspacePanel(final MaxMinWorkspacePresenter presenter, WorkspaceSkeleton ws, Images images,
+            final EntityHeader entityHeader, I18nTranslationService i18n) {
+        this.ws = ws;
+        maxBtn = new EntityHeaderButton("", images.arrowOut());
+        minBtn = new EntityHeaderButton("", images.arrowIn());
+        maxBtn.setTitle(i18n.t("Maximize the workspace"));
+        minBtn.setTitle(i18n.t("Minimize the workspace"));
+        maxBtn.addClickListener(new ClickListener() {
+            public void onClick(Widget arg0) {
+                presenter.onMaximize();
+            }
+        });
+        minBtn.addClickListener(new ClickListener() {
+            public void onClick(Widget arg0) {
+                presenter.onMinimize();
+            }
+        });
+        minBtn.setVisible(false);
+        minBtn.ensureDebugId(MIN_ICON);
+        maxBtn.ensureDebugId(MAX_ICON);
+        entityHeader.addWidget(maxBtn);
+        entityHeader.addWidget(minBtn);
+    }
+
+    public void setMaximized(boolean maximized) {
+        ws.setMaximized(maximized);
+    }
+
+    public void showMaxButton(boolean showMax) {
+        maxBtn.setVisible(showMax);
+        minBtn.setVisible(!showMax);
+    }
+
+}

Added: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspacePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspacePresenter.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspacePresenter.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -0,0 +1,32 @@
+package org.ourproject.kune.workspace.client.entityheader.maxmin;
+
+import org.ourproject.kune.platf.client.View;
+
+public class MaxMinWorkspacePresenter implements MaxMinWorkspace {
+
+    private MaxMinWorkspaceView view;
+
+    public MaxMinWorkspacePresenter() {
+    }
+
+    public View getView() {
+        return view;
+    }
+
+    public void init(MaxMinWorkspaceView view) {
+        this.view = view;
+    }
+
+    public void onMaximize() {
+        showMaximized(true);
+    }
+
+    public void onMinimize() {
+        showMaximized(false);
+    }
+
+    private void showMaximized(boolean maximized) {
+        view.setMaximized(maximized);
+        view.showMaxButton(!maximized);
+    }
+}

Added: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspaceView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspaceView.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspaceView.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -0,0 +1,10 @@
+package org.ourproject.kune.workspace.client.entityheader.maxmin;
+
+import org.ourproject.kune.platf.client.View;
+
+public interface MaxMinWorkspaceView extends View {
+
+    void setMaximized(boolean maximized);
+
+    void showMaxButton(boolean showMax);
+}

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -82,9 +82,6 @@
             }
         });
         optionsButton.ensureDebugId(GROUP_OPTIONS_ICON);
-        optionsButton.addStyleName("kune-Margin-Medium-t");
-        optionsButton.addStyleName("kune-pointer");
-
         entityHeader.addWidget(optionsButton);
     }
 }

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-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPresenter.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -28,7 +28,7 @@
 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.services.ErrorHandler;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
 
@@ -47,7 +47,7 @@
     private final BeforeActionCollection beforeSignOutCollection;
 
     public SiteSignOutLinkPresenter(final Session session, final Provider<UserServiceAsync> userServiceProvider,
-            final Provider<KuneErrorHandler> kuneErrorHandlerProvider) {
+            final Provider<ErrorHandler> kuneErrorHandlerProvider) {
         this.session = session;
         this.userServiceProvider = userServiceProvider;
         session.onUserSignIn(new Listener<UserInfoDTO>() {

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/Entity.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/Entity.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/Entity.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -111,6 +111,11 @@
         entitySummary.doLayoutIfNeeded();
     }
 
+    public void setMaximized(boolean maximized) {
+        entityWorkspace.setMaximized(maximized);
+        entitySummary.setMaximized(maximized);
+    }
+
     public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
         if (oldTheme != null) {
             entityFitPanel.removeClass("k-entity-" + oldTheme);

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -156,4 +156,13 @@
         return trayBar;
     }
 
+    public void setMaximized(boolean maximized) {
+        entitySummary.setVisible(!maximized);
+        if (maximized) {
+            mainFitPanel.collapse();
+        } else {
+            mainFitPanel.expand();
+        }
+    }
+
 }

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -55,6 +55,7 @@
     private final Panel cntCtxBorderLayout;
     private final Panel mainFitPanel;
     private final Panel bottomPanel;
+    private final Panel contextWrap;
 
     public EntityWorkspace() {
         mainFitPanel = new Panel();
@@ -97,7 +98,7 @@
         bottomPanel.setHeight(WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT);
 
         final Panel contentWrap = new Panel();
-        final Panel contextWrap = new Panel();
+        contextWrap = new Panel();
         contentWrap.setLayout(new BorderLayout());
         contextWrap.setLayout(new BorderLayout());
         contentWrap.setBorder(true);
@@ -220,6 +221,14 @@
         setPanel(context, widget);
     }
 
+    public void setMaximized(boolean maximized) {
+        if (maximized) {
+            contextWrap.collapse();
+        } else {
+            contextWrap.expand();
+        }
+    }
+
     public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
         final String themeS = newTheme.toString();
         if (oldTheme != null) {

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java	2009-03-11 14:24:39 UTC (rev 1072)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java	2009-03-12 08:05:10 UTC (rev 1073)
@@ -136,6 +136,10 @@
         entity.refreshSummary();
     }
 
+    public void setMaximized(boolean maximized) {
+        entity.setMaximized(maximized);
+    }
+
     public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
         entity.setTheme(oldTheme, newTheme);
     }




More information about the kune-commits mailing list