[kune-commits] r942 - in trunk: . src/main/java/org/ourproject/kune/chat/client src/main/java/org/ourproject/kune/chat/client/cnt src/main/java/org/ourproject/kune/chat/client/cnt/room src/main/java/org/ourproject/kune/docs/client src/main/java/org/ourproject/kune/docs/client/cnt src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer src/main/java/org/ourproject/kune/platf/client/actions/toolbar src/main/java/org/ourproject/kune/platf/client/services src/main/java/org/ourproject/kune/platf/client/state src/main/java/org/ourproject/kune/workspace/client src/main/java/org/ourproject/kune/workspace/client/cnt

vjrj vjrj at ourproject.org
Thu Nov 6 22:03:55 CET 2008


Author: vjrj
Date: 2008-11-06 22:03:52 +0100 (Thu, 06 Nov 2008)
New Revision: 942

Added:
   trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/DocFolderContent.java
   trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/DocFolderContentPanel.java
   trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/DocFolderContentPresenter.java
   trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/DocFolderContentView.java
   trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionContentToolbar.java
   trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionContentToolbarPresenter.java
   trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionContextToolbar.java
   trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionContextToolbarPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/
   trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentPanel.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentView.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java
Removed:
   trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatContent.java
   trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatContentPresenter.java
   trunk/src/main/java/org/ourproject/kune/chat/client/cnt/info/
   trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewer.java
   trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewerPanel.java
   trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewerPresenter.java
   trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewerView.java
Modified:
   trunk/CREDITS
   trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java
   trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoom.java
   trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomPanel.java
   trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomPresenter.java
   trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomView.java
   trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
   trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java
   trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java
   trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
   trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java
Log:
Incomplete - task UI tools & workspace refactorization 


Modified: trunk/CREDITS
===================================================================
--- trunk/CREDITS	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/CREDITS	2008-11-06 21:03:52 UTC (rev 942)
@@ -10,7 +10,12 @@
 Contributors
 --------------------------------------------------------------------------------
 
+* Thanks to Samer Hassan for all the feedback and ideas.
+* Antonio Martins, Jéferson Assumção, Moacir Gadotti and the Instituto Paulo 
+Freire staff.
+* Daniel Jiménez for the initial help
+* Javier de la Cueva and Leovigildo García-Bobadilla for the legal support
 * Thanks to David Trigo and http://www.esperanto-es.net/ for suggest the name of 
 'kune' for our initiative:
   http://ourproject.org/forum/forum.php?thread_id=500&forum_id=469
-
+* and ourproject.org and xsto.info for sharing whit us their resources

Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -18,10 +18,6 @@
  *
  */package org.ourproject.kune.chat.client;
 
-import org.ourproject.kune.chat.client.cnt.ChatContent;
-import org.ourproject.kune.chat.client.cnt.ChatContentPresenter;
-import org.ourproject.kune.chat.client.cnt.info.ChatInfo;
-import org.ourproject.kune.chat.client.cnt.info.ChatInfoPanel;
 import org.ourproject.kune.chat.client.cnt.room.ChatRoom;
 import org.ourproject.kune.chat.client.cnt.room.ChatRoomPanel;
 import org.ourproject.kune.chat.client.cnt.room.ChatRoomPresenter;
@@ -33,6 +29,7 @@
 import org.ourproject.kune.platf.client.actions.ContentIconsRegistry;
 import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
 import org.ourproject.kune.platf.client.actions.DragDropContentRegistry;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
 import org.ourproject.kune.platf.client.app.Application;
 import org.ourproject.kune.platf.client.app.ToolGroup;
 import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
@@ -71,22 +68,6 @@
             }
         });
 
-        register(Singleton.class, new Factory<ChatInfo>(ChatInfo.class) {
-            @Override
-            public ChatInfo create() {
-                return new ChatInfoPanel();
-            }
-        });
-
-        register(Singleton.class, new Factory<ChatContent>(ChatContent.class) {
-            @Override
-            public ChatContent create() {
-                final ChatContentPresenter presenter = new ChatContentPresenter($(EmiteUIDialog.class),
-                        $$(ChatInfo.class), $$(ChatRoom.class));
-                return presenter;
-            }
-        });
-
         register(Singleton.class, new Factory<ChatContext>(ChatContext.class) {
             @Override
             public ChatContext create() {
@@ -95,7 +76,7 @@
             }
         });
 
-        register(Singleton.class, new Factory<ChatEngine>(ChatEngine.class) {
+        register(ToolGroup.class, new Factory<ChatEngine>(ChatEngine.class) {
             @Override
             public ChatEngine create() {
                 return new ChatEngineDefault($(I18nUITranslationService.class), $(WorkspaceSkeleton.class),
@@ -103,11 +84,14 @@
             }
         });
 
-        register(Singleton.class, new Factory<ChatRoom>(ChatRoom.class) {
+        register(ToolGroup.class, new Factory<ChatRoom>(ChatRoom.class) {
             @Override
             public ChatRoom create() {
+                final ChatRoomPresenter presenter = new ChatRoomPresenter($(StateManager.class), $(Session.class),
+                        $(I18nUITranslationService.class), $(ActionContentToolbar.class),
+                        $(ContentActionRegistry.class));
                 final ChatRoomPanel panel = new ChatRoomPanel($(WorkspaceSkeleton.class));
-                final ChatRoomPresenter presenter = new ChatRoomPresenter(panel);
+                presenter.init(panel);
                 return presenter;
             }
         });

Deleted: trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatContent.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatContent.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatContent.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -1,28 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 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.chat.client.cnt;
-
-import org.ourproject.kune.platf.client.dto.StateContainerDTO;
-
-public interface ChatContent {
-
-    void setState(StateContainerDTO state);
-
-}

Deleted: trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatContentPresenter.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatContentPresenter.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -1,62 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 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.chat.client.cnt;
-
-import org.ourproject.kune.chat.client.ChatClientTool;
-import org.ourproject.kune.chat.client.cnt.info.ChatInfo;
-import org.ourproject.kune.chat.client.cnt.room.ChatRoom;
-import org.ourproject.kune.platf.client.dto.StateContainerDTO;
-
-import com.allen_sauer.gwt.log.client.Log;
-import com.calclab.emite.core.client.xmpp.stanzas.XmppURI;
-import com.calclab.emiteuimodule.client.EmiteUIDialog;
-import com.calclab.suco.client.ioc.Provider;
-
-public class ChatContentPresenter implements ChatContent {
-
-    private StateContainerDTO state;
-    private final EmiteUIDialog emiteUIDialog;
-    private final Provider<ChatInfo> chatInfoProvider;
-    private final Provider<ChatRoom> chatRoomProvider;
-
-    public ChatContentPresenter(final EmiteUIDialog emiteUIDialog, final Provider<ChatInfo> chatInfoProvider,
-            final Provider<ChatRoom> chatRoomProvider) {
-        this.emiteUIDialog = emiteUIDialog;
-        this.chatInfoProvider = chatInfoProvider;
-        this.chatRoomProvider = chatRoomProvider;
-    }
-
-    public void onEnterRoom() {
-        final String roomName = state.getContainer().getName();
-        emiteUIDialog.joinRoom(XmppURI.uri(roomName));
-    }
-
-    public void setState(final StateContainerDTO state) {
-        this.state = state;
-        final String typeId = state.getTypeId();
-        if (typeId.equals(ChatClientTool.TYPE_ROOT)) {
-            chatInfoProvider.get().show();
-        } else if (typeId.equals(ChatClientTool.TYPE_ROOM)) {
-            chatRoomProvider.get().show();
-        } else {
-            Log.error("Programming error: unknown component!! please contact kune-devel at lists-ourproject.org");
-        }
-    }
-}

Modified: trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoom.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoom.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoom.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -20,6 +20,4 @@
 package org.ourproject.kune.chat.client.cnt.room;
 
 public interface ChatRoom {
-
-    void show();
 }

Modified: trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomPanel.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomPanel.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -19,15 +19,24 @@
  */
 package org.ourproject.kune.chat.client.cnt.room;
 
-import org.ourproject.kune.workspace.client.site.Site;
+import org.ourproject.kune.workspace.client.cnt.AbstractContentPanel;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 
 import com.google.gwt.user.client.ui.Label;
 
-public class ChatRoomPanel implements ChatRoomView {
+public class ChatRoomPanel extends AbstractContentPanel implements ChatRoomView {
 
+    private final Label label;
+
     public ChatRoomPanel(final WorkspaceSkeleton ws) {
-        ws.getEntityWorkspace().setContent(new Label("History of room conversations." + Site.IN_DEVELOPMENT));
+        super(ws);
+        label = new Label();
+        label.setStyleName("kune-Content-Main");
+        label.addStyleName("kune-Margin-7-trbl");
+        initWidget(label);
     }
 
+    public void setInfo(String info) {
+        label.setText(info);
+    }
 }

Modified: trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomPresenter.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomPresenter.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -19,21 +19,44 @@
  */
 package org.ourproject.kune.chat.client.cnt.room;
 
-import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.chat.client.ChatClientTool;
+import org.ourproject.kune.platf.client.actions.ActionRegistry;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
+import org.ourproject.kune.platf.client.dto.StateContainerDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.cnt.FoldableContentPresenter;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.site.Site;
 
-public class ChatRoomPresenter implements ChatRoom {
+public class ChatRoomPresenter extends FoldableContentPresenter implements ChatRoom {
 
-    private final ChatRoomView view;
+    private ChatRoomView view;
+    private final I18nUITranslationService i18n;
 
-    public ChatRoomPresenter(final ChatRoomView view) {
-        this.view = view;
+    public ChatRoomPresenter(StateManager stateManager, Session session, I18nUITranslationService i18n,
+            ActionContentToolbar toolbar, final ActionRegistry<StateToken> actionRegistry) {
+        super(ChatClientTool.NAME, stateManager, session, toolbar, actionRegistry);
+        this.i18n = i18n;
     }
 
-    public View getView() {
-        return view;
+    public void init(final ChatRoomView view) {
+        super.init(view);
+        this.view = view;
     }
 
-    public void show() {
+    @Override
+    protected void setState(StateContainerDTO state) {
+        if (state.getTypeId().equals(ChatClientTool.TYPE_ROOT)) {
+            if (state.getRootContainer().getChilds().size() == 0) {
+                view.setInfo(i18n.t("This group has no chat rooms."));
+            } else {
+                view.setInfo("");
+            }
+        } else {
+            view.setInfo("History of room conversations ..." + Site.IN_DEVELOPMENT);
+        }
+        super.setState(state);
     }
-
 }

Modified: trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomView.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomView.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -19,8 +19,9 @@
  */
 package org.ourproject.kune.chat.client.cnt.room;
 
-import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.workspace.client.cnt.AbstractContentView;
 
-public interface ChatRoomView extends View {
+public interface ChatRoomView extends AbstractContentView {
 
+    void setInfo(String info);
 }

Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -21,10 +21,10 @@
 import org.ourproject.kune.docs.client.cnt.DocumentContent;
 import org.ourproject.kune.docs.client.cnt.DocumentContentPanel;
 import org.ourproject.kune.docs.client.cnt.DocumentContentPresenter;
-import org.ourproject.kune.docs.client.cnt.folder.viewer.FolderViewer;
-import org.ourproject.kune.docs.client.cnt.folder.viewer.FolderViewerPanel;
-import org.ourproject.kune.docs.client.cnt.folder.viewer.FolderViewerPresenter;
-import org.ourproject.kune.docs.client.cnt.folder.viewer.FolderViewerView;
+import org.ourproject.kune.docs.client.cnt.folder.viewer.DocFolderContent;
+import org.ourproject.kune.docs.client.cnt.folder.viewer.DocFolderContentPanel;
+import org.ourproject.kune.docs.client.cnt.folder.viewer.DocFolderContentPresenter;
+import org.ourproject.kune.docs.client.cnt.folder.viewer.DocFolderContentView;
 import org.ourproject.kune.docs.client.cnt.viewer.DocumentViewer;
 import org.ourproject.kune.docs.client.cnt.viewer.DocumentViewerPanel;
 import org.ourproject.kune.docs.client.cnt.viewer.DocumentViewerPresenter;
@@ -35,16 +35,12 @@
 import org.ourproject.kune.docs.client.ctx.admin.DocContextEditorPanel;
 import org.ourproject.kune.docs.client.ctx.admin.DocContextEditorPresenter;
 import org.ourproject.kune.docs.client.ctx.admin.DocContextEditorView;
-import org.ourproject.kune.platf.client.actions.ActionManager;
 import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
 import org.ourproject.kune.platf.client.actions.ContentIconsRegistry;
 import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
 import org.ourproject.kune.platf.client.actions.DragDropContentRegistry;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbar;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPanel;
-import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPresenter;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
 import org.ourproject.kune.platf.client.app.ToolGroup;
-import org.ourproject.kune.platf.client.dto.StateToken;
 import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
 import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
 import org.ourproject.kune.platf.client.services.I18nTranslationService;
@@ -98,14 +94,9 @@
         register(ToolGroup.class, new Factory<DocumentContent>(DocumentContent.class) {
             @Override
             public DocumentContent create() {
-                final ActionToolbarPanel<StateToken> contentNavigatorToolbar = new ActionToolbarPanel<StateToken>(
-                        ActionToolbarPanel.Position.content, $$(ActionManager.class), $(WorkspaceSkeleton.class));
-                final ActionToolbar<StateToken> toolbar = new ActionToolbarPresenter<StateToken>(
-                        contentNavigatorToolbar);
-
                 final DocumentContentPresenter presenter = new DocumentContentPresenter($(StateManager.class),
-                        $(Session.class), $$(DocumentViewer.class), $$(TextEditor.class), $$(FolderViewer.class),
-                        toolbar, $(ContentActionRegistry.class));
+                        $(Session.class), $$(DocumentViewer.class), $$(TextEditor.class),
+                        $(ActionContentToolbar.class), $(ContentActionRegistry.class));
                 final DocumentContentPanel panel = new DocumentContentPanel($(WorkspaceSkeleton.class));
                 presenter.init(panel);
                 return presenter;
@@ -118,8 +109,8 @@
                 final DocContextEditorPresenter presenter = new DocContextEditorPresenter($(Session.class),
                         $(StateManager.class), $$(TagsSummary.class), $$(ContentServiceAsync.class),
                         $(EntityTitle.class), $(EntitySubTitle.class));
-                final DocContextEditorView view = new DocContextEditorPanel(presenter, $(I18nUITranslationService.class),
-                        $(WorkspaceSkeleton.class));
+                final DocContextEditorView view = new DocContextEditorPanel(presenter,
+                        $(I18nUITranslationService.class), $(WorkspaceSkeleton.class));
                 presenter.init(view);
                 return presenter;
             }
@@ -144,11 +135,13 @@
             }
         });
 
-        register(Singleton.class, new Factory<FolderViewer>(FolderViewer.class) {
+        register(ToolGroup.class, new Factory<DocFolderContent>(DocFolderContent.class) {
             @Override
-            public FolderViewer create() {
-                final FolderViewerView view = new FolderViewerPanel();
-                final FolderViewerPresenter presenter = new FolderViewerPresenter(view);
+            public DocFolderContent create() {
+                final DocFolderContentPresenter presenter = new DocFolderContentPresenter($(StateManager.class),
+                        $(Session.class), $(ActionContentToolbar.class), $(ContentActionRegistry.class));
+                final DocFolderContentView view = new DocFolderContentPanel($(WorkspaceSkeleton.class));
+                presenter.init(view);
                 return presenter;
             }
         });

Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -20,7 +20,6 @@
 package org.ourproject.kune.docs.client.cnt;
 
 import org.ourproject.kune.docs.client.DocumentClientTool;
-import org.ourproject.kune.docs.client.cnt.folder.viewer.FolderViewer;
 import org.ourproject.kune.docs.client.cnt.viewer.DocumentViewer;
 import org.ourproject.kune.platf.client.actions.ActionItemCollection;
 import org.ourproject.kune.platf.client.actions.ActionRegistry;
@@ -42,18 +41,15 @@
     private final Session session;
     private final Provider<DocumentViewer> docReaderProvider;
     private final Provider<TextEditor> textEditorProvider;
-    private final Provider<FolderViewer> folderViewerProvider;
     private final ActionToolbar<StateToken> toolbar;
     private final ActionRegistry<StateToken> actionRegistry;
 
     public DocumentContentPresenter(final StateManager stateManager, final Session session,
             final Provider<DocumentViewer> docReaderProvider, final Provider<TextEditor> textEditorProvider,
-            final Provider<FolderViewer> folderViewerProvider, final ActionToolbar<StateToken> toolbar,
-            final ActionRegistry<StateToken> actionRegistry) {
+            final ActionToolbar<StateToken> toolbar, final ActionRegistry<StateToken> actionRegistry) {
         this.session = session;
         this.docReaderProvider = docReaderProvider;
         this.textEditorProvider = textEditorProvider;
-        this.folderViewerProvider = folderViewerProvider;
         this.toolbar = toolbar;
         this.actionRegistry = actionRegistry;
         stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
@@ -94,21 +90,12 @@
                 if (stateCntCtx instanceof StateContentDTO) {
                     setState((StateContentDTO) stateCntCtx);
                 } else if (stateCntCtx instanceof StateContainerDTO) {
-                    setState(stateCntCtx);
+                    // FIXME setState(stateCntCtx);
                 }
             }
         }
     }
 
-    private void setState(final StateContainerDTO state) {
-        ActionItemCollection<StateToken> collection = actionRegistry.getCurrentActions(state.getStateToken(),
-                state.getTypeId(), session.isLogged(), state.getContainerRights(), true);
-        setToolbar(collection);
-        final FolderViewer viewer = folderViewerProvider.get();
-        viewer.setFolder(state.getContainer());
-        view.setContent(viewer.getView());
-    }
-
     private void setState(final StateContentDTO state) {
         ActionItemCollection<StateToken> collection = actionRegistry.getCurrentActions(state.getStateToken(),
                 state.getTypeId(), session.isLogged(), state.getContentRights(), true);

Copied: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/DocFolderContent.java (from rev 939, trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewer.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewer.java	2008-11-04 15:07:14 UTC (rev 939)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/DocFolderContent.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -0,0 +1,23 @@
+/*
+ *
+ * Copyright (C) 2007-2008 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.docs.client.cnt.folder.viewer;
+
+public interface DocFolderContent {
+}


Property changes on: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/DocFolderContent.java
___________________________________________________________________
Name: svn:mergeinfo
   + 

Copied: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/DocFolderContentPanel.java (from rev 939, trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewerPanel.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewerPanel.java	2008-11-04 15:07:14 UTC (rev 939)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/DocFolderContentPanel.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -0,0 +1,37 @@
+/*
+ *
+ * Copyright (C) 2007-2008 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.docs.client.cnt.folder.viewer;
+
+import org.ourproject.kune.workspace.client.cnt.AbstractContentPanel;
+import org.ourproject.kune.workspace.client.site.Site;
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+
+import com.google.gwt.user.client.ui.Label;
+
+public class DocFolderContentPanel extends AbstractContentPanel implements DocFolderContentView {
+
+    public DocFolderContentPanel(WorkspaceSkeleton ws) {
+        super(ws);
+        Label label = new Label("Folder properties, translations ..." + Site.IN_DEVELOPMENT);
+        label.setStyleName("kune-Content-Main");
+        label.addStyleName("kune-Margin-7-trbl");
+        initWidget(label);
+    }
+}

Copied: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/DocFolderContentPresenter.java (from rev 939, trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewerPresenter.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewerPresenter.java	2008-11-04 15:07:14 UTC (rev 939)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/DocFolderContentPresenter.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -0,0 +1,40 @@
+/*
+ *
+ * Copyright (C) 2007-2008 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.docs.client.cnt.folder.viewer;
+
+import org.ourproject.kune.docs.client.DocumentClientTool;
+import org.ourproject.kune.platf.client.actions.ActionRegistry;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.cnt.FoldableContentPresenter;
+
+public class DocFolderContentPresenter extends FoldableContentPresenter implements DocFolderContent {
+
+    public DocFolderContentPresenter(StateManager stateManager, Session session, ActionContentToolbar toolbar,
+            final ActionRegistry<StateToken> actionRegistry) {
+        super(DocumentClientTool.NAME, stateManager, session, toolbar, actionRegistry);
+    }
+
+    public void init(final DocFolderContentView view) {
+        super.init(view);
+    }
+}


Property changes on: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/DocFolderContentPresenter.java
___________________________________________________________________
Name: svn:mergeinfo
   + 

Copied: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/DocFolderContentView.java (from rev 939, trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewerView.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewerView.java	2008-11-04 15:07:14 UTC (rev 939)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/DocFolderContentView.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -0,0 +1,25 @@
+/*
+ *
+ * Copyright (C) 2007-2008 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.docs.client.cnt.folder.viewer;
+
+import org.ourproject.kune.workspace.client.cnt.AbstractContentView;
+
+public interface DocFolderContentView extends AbstractContentView {
+}


Property changes on: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/DocFolderContentView.java
___________________________________________________________________
Name: svn:mergeinfo
   + 

Deleted: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewer.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewer.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewer.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -1,29 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 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.docs.client.cnt.folder.viewer;
-
-import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.dto.ContainerDTO;
-
-public interface FolderViewer {
-    void setFolder(ContainerDTO folder);
-
-    View getView();
-}

Deleted: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewerPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewerPanel.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewerPanel.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -1,33 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 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.docs.client.cnt.folder.viewer;
-
-import org.ourproject.kune.workspace.client.site.Site;
-
-import com.google.gwt.user.client.ui.Label;
-
-public class FolderViewerPanel extends Label implements FolderViewerView {
-
-    public FolderViewerPanel() {
-        super("Folder properties, translations ..." + Site.IN_DEVELOPMENT);
-        super.setStyleName("kune-Content-Main");
-        super.addStyleName("kune-Margin-7-trbl");
-    }
-}

Deleted: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewerPresenter.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewerPresenter.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -1,39 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 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.docs.client.cnt.folder.viewer;
-
-import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.dto.ContainerDTO;
-
-public class FolderViewerPresenter implements FolderViewer {
-
-    private final FolderViewerView view;
-
-    public FolderViewerPresenter(final FolderViewerView view) {
-        this.view = view;
-    }
-
-    public View getView() {
-        return view;
-    }
-
-    public void setFolder(final ContainerDTO folder) {
-    }
-}

Deleted: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewerView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewerView.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/folder/viewer/FolderViewerView.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -1,26 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 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.docs.client.cnt.folder.viewer;
-
-import org.ourproject.kune.platf.client.View;
-
-public interface FolderViewerView extends View {
-
-}

Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionContentToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionContentToolbar.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionContentToolbar.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -0,0 +1,7 @@
+package org.ourproject.kune.platf.client.actions.toolbar;
+
+import org.ourproject.kune.platf.client.dto.StateToken;
+
+public interface ActionContentToolbar extends ActionToolbar<StateToken> {
+
+}

Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionContentToolbarPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionContentToolbarPresenter.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionContentToolbarPresenter.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -0,0 +1,11 @@
+package org.ourproject.kune.platf.client.actions.toolbar;
+
+import org.ourproject.kune.platf.client.dto.StateToken;
+
+public class ActionContentToolbarPresenter extends ActionToolbarPresenter<StateToken> implements ActionContentToolbar {
+
+    public ActionContentToolbarPresenter(ActionToolbarView<StateToken> toolbar) {
+        super(toolbar);
+    }
+
+}

Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionContextToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionContextToolbar.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionContextToolbar.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -0,0 +1,7 @@
+package org.ourproject.kune.platf.client.actions.toolbar;
+
+import org.ourproject.kune.platf.client.dto.StateToken;
+
+public interface ActionContextToolbar extends ActionToolbar<StateToken> {
+
+}

Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionContextToolbarPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionContextToolbarPresenter.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionContextToolbarPresenter.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -0,0 +1,11 @@
+package org.ourproject.kune.platf.client.actions.toolbar;
+
+import org.ourproject.kune.platf.client.dto.StateToken;
+
+public class ActionContextToolbarPresenter extends ActionToolbarPresenter<StateToken> implements ActionContextToolbar {
+
+    public ActionContextToolbarPresenter(ActionToolbarView<StateToken> toolbar) {
+        super(toolbar);
+    }
+
+}

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -126,11 +126,13 @@
         if (!topbar.isAttached()) {
             switch (position) {
             case content:
+                ws.getEntityWorkspace().getContentTopBar().removeAll();
                 ws.getEntityWorkspace().getContentTopBar().add(topbar);
                 ws.getEntityWorkspace().getContentBottomBar().add(bottombar);
                 break;
             case context:
             default:
+                ws.getEntityWorkspace().getContextTopBar().removeAll();
                 ws.getEntityWorkspace().getContextTopBar().add(topbar);
                 ws.getEntityWorkspace().getContextBottomBar().add(bottombar);
             }

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -25,6 +25,10 @@
 import org.ourproject.kune.platf.client.actions.DragDropContentRegistry;
 import org.ourproject.kune.platf.client.actions.GroupActionRegistry;
 import org.ourproject.kune.platf.client.actions.UserActionRegistry;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbarPresenter;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContextToolbar;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContextToolbarPresenter;
 import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbar;
 import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPanel;
 import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPresenter;
@@ -107,6 +111,7 @@
 import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
 import org.ourproject.kune.workspace.client.title.EntityTitle;
 
+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;
@@ -416,17 +421,32 @@
             }
         });
 
+        register(NoDecoration.class, new Factory<ActionContentToolbar>(ActionContentToolbar.class) {
+            @Override
+            public ActionContentToolbar create() {
+                final ActionToolbarPanel<StateToken> contentNavigatorToolbar = new ActionToolbarPanel<StateToken>(
+                        ActionToolbarPanel.Position.content, $$(ActionManager.class), $(WorkspaceSkeleton.class));
+                final ActionContentToolbar toolbar = new ActionContentToolbarPresenter(contentNavigatorToolbar);
+                return toolbar;
+            }
+        });
+
+        register(NoDecoration.class, new Factory<ActionContextToolbar>(ActionContextToolbar.class) {
+            @Override
+            public ActionContextToolbar create() {
+                final ActionToolbarPanel<StateToken> contentNavigatorToolbar = new ActionToolbarPanel<StateToken>(
+                        ActionToolbarPanel.Position.context, $$(ActionManager.class), $(WorkspaceSkeleton.class));
+                final ActionContextToolbar toolbar = new ActionContextToolbarPresenter(contentNavigatorToolbar);
+                return toolbar;
+            }
+        });
+
         register(Singleton.class, new Factory<ContextNavigator>(ContextNavigator.class) {
             @Override
             public ContextNavigator create() {
-                final ActionToolbarPanel<StateToken> contextNavigatorToolbar = new ActionToolbarPanel<StateToken>(
-                        ActionToolbarPanel.Position.context, $$(ActionManager.class), $(WorkspaceSkeleton.class));
-                final ActionToolbar<StateToken> toolbar = new ActionToolbarPresenter<StateToken>(
-                        contextNavigatorToolbar);
-
                 final ContextNavigatorPresenter presenter = new ContextNavigatorPresenter($(StateManager.class),
                         $(Session.class), $$(ContentServiceAsync.class), i18n, $(EntityTitle.class),
-                        $(ContentIconsRegistry.class), $(DragDropContentRegistry.class), toolbar,
+                        $(ContentIconsRegistry.class), $(DragDropContentRegistry.class), $(ActionContextToolbar.class),
                         $(ContextActionRegistry.class), $$(FileDownloadUtils.class), true);
                 final ContextNavigatorPanel panel = new ContextNavigatorPanel(presenter, i18n,
                         $(WorkspaceSkeleton.class), $(ActionManager.class));

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -204,9 +204,6 @@
     private void checkGroupAndToolChange(final StateAbstractDTO newState) {
         final String previousGroup = previousToken == null ? "" : previousToken.getGroup();
         final String newGroup = newState.getStateToken().getGroup();
-        if (previousToken == null || !previousGroup.equals(newGroup)) {
-            onGroupChanged.fire(previousGroup, newGroup);
-        }
         String previousTokenTool = previousToken == null ? "" : previousToken.getTool();
         String newTokenTool = newState.getStateToken().getTool();
         String previousToolName = previousTokenTool == null ? "" : previousTokenTool;
@@ -215,6 +212,9 @@
         if (previousToken == null || previousToolName == null || !previousToolName.equals(newToolName)) {
             onToolChanged.fire(previousToolName, newToolName);
         }
+        if (previousToken == null || !previousGroup.equals(newGroup)) {
+            onGroupChanged.fire(previousGroup, newGroup);
+        }
     }
 
     private void clearResumedToken() {

Added: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentPanel.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentPanel.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -0,0 +1,30 @@
+package org.ourproject.kune.workspace.client.cnt;
+
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+
+import com.google.gwt.user.client.ui.Widget;
+
+public class AbstractContentPanel {
+    private final WorkspaceSkeleton ws;
+    private Widget widget;
+
+    public AbstractContentPanel(final WorkspaceSkeleton ws) {
+        this.ws = ws;
+    }
+
+    public void attach() {
+        if (!widget.isAttached()) {
+            ws.getEntityWorkspace().setContent(widget);
+        }
+    }
+
+    public void detach() {
+        if (widget.isAttached()) {
+            widget.removeFromParent();
+        }
+    }
+
+    public void initWidget(Widget widget) {
+        this.widget = widget;
+    }
+}

Added: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentPresenter.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentPresenter.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -0,0 +1,22 @@
+package org.ourproject.kune.workspace.client.cnt;
+
+public abstract class AbstractContentPresenter {
+
+    private AbstractContentView view;
+
+    public AbstractContentPresenter() {
+    }
+
+    public void attach() {
+        view.attach();
+    }
+
+    public void detach() {
+        view.detach();
+    }
+
+    public void init(final AbstractContentView view) {
+        this.view = view;
+    }
+
+}

Added: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentView.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentView.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -0,0 +1,9 @@
+package org.ourproject.kune.workspace.client.cnt;
+
+public interface AbstractContentView {
+
+    void attach();
+
+    void detach();
+
+}

Added: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java	2008-11-06 00:35:01 UTC (rev 941)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java	2008-11-06 21:03:52 UTC (rev 942)
@@ -0,0 +1,70 @@
+package org.ourproject.kune.workspace.client.cnt;
+
+import org.ourproject.kune.platf.client.actions.ActionItemCollection;
+import org.ourproject.kune.platf.client.actions.ActionRegistry;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
+import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
+import org.ourproject.kune.platf.client.dto.StateContainerDTO;
+import org.ourproject.kune.platf.client.dto.StateContentDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+
+import com.calclab.suco.client.listener.Listener;
+
+public class FoldableContentPresenter extends AbstractContentPresenter {
+
+    private final String toolName;
+    private final ActionRegistry<StateToken> actionRegistry;
+    private final Session session;
+    private final ActionContentToolbar toolbar;
+
+    public FoldableContentPresenter(final String toolName, StateManager stateManager, Session session,
+            final ActionContentToolbar toolbar, ActionRegistry<StateToken> actionRegistry) {
+        this.toolName = toolName;
+        this.session = session;
+        this.toolbar = toolbar;
+        this.actionRegistry = actionRegistry;
+        stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
+            public void onEvent(final StateAbstractDTO state) {
+                setState(state);
+            }
+        });
+    }
+
+    public String getToolName() {
+        return toolName;
+    }
+
+    protected void setState(StateAbstractDTO state) {
+        toolbar.detach();
+        if (state instanceof StateContainerDTO) {
+            StateContainerDTO stateCntCtx = (StateContainerDTO) state;
+            if (stateCntCtx.getToolName().equals(toolName)) {
+                // This tool
+                if (stateCntCtx instanceof StateContentDTO) {
+                    setState((StateContentDTO) stateCntCtx);
+                } else if (stateCntCtx instanceof StateContainerDTO) {
+                    setState(stateCntCtx);
+                }
+            }
+        }
+    }
+
+    protected void setState(StateContainerDTO state) {
+        ActionItemCollection<StateToken> collection = actionRegistry.getCurrentActions(state.getStateToken(),
+                state.getTypeId(), session.isLogged(), state.getContainerRights(), true);
+        setToolbar(collection);
+        attach();
+    }
+
+    protected void setState(StateContentDTO state) {
+    }
+
+    private void setToolbar(ActionItemCollection<StateToken> collection) {
+        toolbar.disableMenusAndClearButtons();
+        toolbar.setActions(collection);
+        toolbar.attach();
+    }
+
+}




More information about the kune-commits mailing list