r940 - in trunk/src: main/java/org/ourproject/kune/app/public/css/img main/java/org/ourproject/kune/chat/client main/java/org/ourproject/kune/chat/client/cnt main/java/org/ourproject/kune/chat/client/cnt/info main/java/org/ourproject/kune/chat/client/cnt/room main/java/org/ourproject/kune/chat/client/ctx main/java/org/ourproject/kune/chat/client/ctx/room main/java/org/ourproject/kune/docs/client main/java/org/ourproject/kune/docs/client/cnt main/java/org/ourproject/kune/docs/client/cnt/viewer
Author: vjrj Date: 2008-11-05 23:07:07 +0100 (Wed, 05 Nov 2008) New Revision: 940 Added: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room/ trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room/RoomAdmin.java trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room/RoomAdminPresenter.java trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentViewer.java trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentViewerPanel.java trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentViewerPresenter.java trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentViewerView.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/BeforeActionCollection.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/BeforeActionListener.java trunk/src/main/java/org/ourproject/kune/platf/client/tool/FoldableAbstractClientTool.java Removed: trunk/src/main/java/org/ourproject/kune/app/public/css/img/chat.gif trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java trunk/src/main/java/org/ourproject/kune/chat/client/cnt/RoomViewListener.java trunk/src/main/java/org/ourproject/kune/chat/client/cnt/RoomViewPanel.java trunk/src/main/java/org/ourproject/kune/chat/client/cnt/info/ui/ trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomControl.java trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomControlPanel.java trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomControlPresenter.java trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomControlView.java trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ui/ trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room/RoomsAdmin.java trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room/RoomsAdminPresenter.java trunk/src/main/java/org/ourproject/kune/chat/client/ctx/rooms/ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/reader/ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentReader.java trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentReaderPresenter.java trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentReaderView.java trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/ui/ trunk/src/main/java/org/ourproject/kune/platf/client/state/BeforeActionListener.java trunk/src/main/java/org/ourproject/kune/platf/client/state/BeforeStateChangeCollection.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/gwtcustom/ trunk/src/main/java/org/ourproject/kune/platf/public/images/chat.png Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngine.java trunk/src/main/java/org/ourproject/kune/chat/client/ctx/ChatContextPresenter.java trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java trunk/src/main/java/org/ourproject/kune/platf/client/services/ImageDescriptor.java trunk/src/main/java/org/ourproject/kune/platf/client/services/ImageUtils.java trunk/src/main/java/org/ourproject/kune/platf/client/services/Images.java trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLink.java trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntitySubTitlePresenter.java trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java trunk/src/test/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenterTest.java Log: Complete - task ChatEngine/Tool refactorization Incomplete - task UI tools & workspace refactorization Complete - task Implements beforeSignOut (to prevent unsaved docs or chat opened) Deleted: trunk/src/main/java/org/ourproject/kune/app/public/css/img/chat.gif =================================================================== (Binary files differ) Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java 2008-11-05 22:07:07 UTC (rev 940) @@ -35,15 +35,19 @@ public class ChatClientActions { private final Session session; - private final Provider<ChatClientTool> chatClientToolProvider; + private final Provider<ChatEngine> chatEngineProvider; private final ContentActionRegistry contentActionRegistry; + private final I18nUITranslationService i18n; + private final ContextActionRegistry contextActionRegistry; public ChatClientActions(final I18nUITranslationService i18n, final Session session, final ContentActionRegistry contentActionRegistry, final ContextActionRegistry contextActionRegistry, - final Provider<ChatClientTool> chatClientToolProvider) { + final Provider<ChatEngine> chatEngine) { + this.i18n = i18n; this.session = session; this.contentActionRegistry = contentActionRegistry; - this.chatClientToolProvider = chatClientToolProvider; + this.contextActionRegistry = contextActionRegistry; + this.chatEngineProvider = chatEngine; createActions(); } @@ -51,9 +55,9 @@ final ActionToolbarButtonDescriptor<StateToken> chatAbout = new ActionToolbarButtonDescriptor<StateToken>( AccessRolDTO.Viewer, ActionToolbarPosition.topbar, new Listener<StateToken>() { public void onEvent(final StateToken token) { - chatClientToolProvider.get().getChat().joinRoom(token.toString().replaceAll("\\.", "-"), + chatEngineProvider.get().joinRoom(token.toString().replaceAll("\\.", "-"), session.getCurrentUserInfo().getShortName()); - chatClientToolProvider.get().getChat().show(); + chatEngineProvider.get().show(); } }); // chatAbout.setTextDescription(i18n.t("Chat about")); @@ -61,10 +65,33 @@ chatAbout.setToolTip("Chat and comment this"); chatAbout.setLeftSeparator(ActionToolbarButtonSeparator.fill); + ActionToolbarButtonDescriptor<StateToken> joinRoom = new ActionToolbarButtonDescriptor<StateToken>( + AccessRolDTO.Viewer, ActionToolbarPosition.topbar, new Listener<StateToken>() { + public void onEvent(StateToken token) { + chatEngineProvider.get().joinRoom(session.getContainerState().getContainer().getName(), + session.getCurrentUserInfo().getShortName()); + } + }); + joinRoom.setTextDescription(i18n.t("Enter room")); + joinRoom.setToolTip(i18n.t("Enter in this chat room")); + joinRoom.setMustBeAuthenticated(true); + + ActionToolbarButtonDescriptor<StateToken> addRoom = new ActionToolbarButtonDescriptor<StateToken>( + AccessRolDTO.Administrator, ActionToolbarPosition.topbar, new Listener<StateToken>() { + public void onEvent(StateToken token) { + + } + }); + addRoom.setTextDescription(i18n.t("New room")); + addRoom.setToolTip(i18n.t("Create a new chat room")); + addRoom.setMustBeAuthenticated(true); + contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_DOCUMENT); contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_GALLERY); contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_WIKIPAGE); contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_POST); contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_UPLOADEDFILE); + + contextActionRegistry.addAction(joinRoom, ChatClientTool.TYPE_ROOT); } } 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-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java 2008-11-05 22:07:07 UTC (rev 940) @@ -23,17 +23,16 @@ 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.ChatRoomControl; -import org.ourproject.kune.chat.client.cnt.room.ChatRoomControlPanel; -import org.ourproject.kune.chat.client.cnt.room.ChatRoomControlPresenter; import org.ourproject.kune.chat.client.cnt.room.ChatRoomPanel; import org.ourproject.kune.chat.client.cnt.room.ChatRoomPresenter; import org.ourproject.kune.chat.client.ctx.ChatContext; import org.ourproject.kune.chat.client.ctx.ChatContextPresenter; -import org.ourproject.kune.chat.client.ctx.rooms.RoomsAdmin; -import org.ourproject.kune.chat.client.ctx.rooms.RoomsAdminPresenter; +import org.ourproject.kune.chat.client.ctx.room.RoomAdmin; +import org.ourproject.kune.chat.client.ctx.room.RoomAdminPresenter; 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.app.Application; import org.ourproject.kune.platf.client.app.ToolGroup; import org.ourproject.kune.platf.client.rpc.ContentServiceAsync; @@ -43,7 +42,6 @@ import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator; import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; -import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummary; import org.ourproject.kune.workspace.client.themes.WsThemePresenter; import com.calclab.emiteuimodule.client.EmiteUIDialog; @@ -60,16 +58,16 @@ @Override public ChatClientActions create() { return new ChatClientActions($(I18nUITranslationService.class), $(Session.class), - $(ContentActionRegistry.class), $(ContextActionRegistry.class), $$(ChatClientTool.class)); + $(ContentActionRegistry.class), $(ContextActionRegistry.class), $$(ChatEngine.class)); } }); register(ToolGroup.class, new Factory<ChatClientTool>(ChatClientTool.class) { @Override public ChatClientTool create() { - return new ChatClientTool($(Session.class), $(Application.class), $(I18nUITranslationService.class), - $(EmiteUIDialog.class), $(WorkspaceSkeleton.class), $$(GroupMembersSummary.class), - $(ToolSelector.class), $(WsThemePresenter.class), $$(ChatContent.class), $$(ChatContext.class)); + return new ChatClientTool($(I18nUITranslationService.class), $(WorkspaceSkeleton.class), + $(ToolSelector.class), $(WsThemePresenter.class), $(ContentIconsRegistry.class), + $(DragDropContentRegistry.class)); } }); @@ -92,19 +90,16 @@ register(Singleton.class, new Factory<ChatContext>(ChatContext.class) { @Override public ChatContext create() { - final ChatContextPresenter presenter = new ChatContextPresenter($$(RoomsAdmin.class)); + final ChatContextPresenter presenter = new ChatContextPresenter($$(RoomAdmin.class)); return presenter; } }); - register(Singleton.class, new Factory<ChatRoomControl>(ChatRoomControl.class) { + register(Singleton.class, new Factory<ChatEngine>(ChatEngine.class) { @Override - public ChatRoomControl create() { - final ChatRoomControlPresenter presenter = new ChatRoomControlPresenter(); - final ChatRoomControlPanel panel = new ChatRoomControlPanel($(I18nUITranslationService.class), - presenter); - presenter.init(panel); - return presenter; + public ChatEngine create() { + return new ChatEngineDefault($(I18nUITranslationService.class), $(WorkspaceSkeleton.class), + $(Application.class), $(Session.class), $$(EmiteUIDialog.class)); } }); @@ -117,10 +112,10 @@ } }); - register(Singleton.class, new Factory<RoomsAdmin>(RoomsAdmin.class) { + register(Singleton.class, new Factory<RoomAdmin>(RoomAdmin.class) { @Override - public RoomsAdmin create() { - final RoomsAdminPresenter presenter = new RoomsAdminPresenter($(ContextNavigator.class), + public RoomAdmin create() { + final RoomAdminPresenter presenter = new RoomAdminPresenter($(ContextNavigator.class), $(I18nUITranslationService.class), $$(StateManager.class), $(Session.class), $$(ContentServiceAsync.class)); return presenter; Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java 2008-11-05 22:07:07 UTC (rev 940) @@ -19,109 +19,33 @@ */ package org.ourproject.kune.chat.client; -import org.ourproject.kune.chat.client.cnt.ChatContent; -import org.ourproject.kune.chat.client.ctx.ChatContext; -import org.ourproject.kune.platf.client.app.Application; -import org.ourproject.kune.platf.client.dto.GroupDTO; -import org.ourproject.kune.platf.client.dto.InitDataDTO; -import org.ourproject.kune.platf.client.dto.StateContainerDTO; -import org.ourproject.kune.platf.client.dto.UserInfoDTO; +import org.ourproject.kune.platf.client.actions.ContentIconsRegistry; +import org.ourproject.kune.platf.client.actions.DragDropContentRegistry; import org.ourproject.kune.platf.client.services.I18nTranslationService; -import org.ourproject.kune.platf.client.state.Session; -import org.ourproject.kune.platf.client.tool.AbstractClientTool; +import org.ourproject.kune.platf.client.tool.FoldableAbstractClientTool; import org.ourproject.kune.platf.client.tool.ToolSelector; -import org.ourproject.kune.platf.client.ui.MenuItem; -import org.ourproject.kune.platf.client.ui.WindowUtils; import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; -import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummary; import org.ourproject.kune.workspace.client.themes.WsThemePresenter; -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; -import com.calclab.suco.client.listener.Listener; -import com.calclab.suco.client.listener.Listener0; - -public class ChatClientTool extends AbstractClientTool { +public class ChatClientTool extends FoldableAbstractClientTool { public static final String NAME = "chats"; public static final String TYPE_ROOT = "chat.root"; public static final String TYPE_ROOM = "chat.room"; public static final String TYPE_CHAT = "chat.chat"; - private ChatEngine chat; - private final Provider<ChatContext> chatContextProvider; - private final Provider<ChatContent> chatContentProvider; - public ChatClientTool(final Session session, final Application application, final I18nTranslationService i18n, - final EmiteUIDialog emiteUIDialog, final WorkspaceSkeleton ws, - final Provider<GroupMembersSummary> groupMembersSummaryProvider, final ToolSelector toolSelector, - final WsThemePresenter wsThemePresenter, final Provider<ChatContent> chatContentProvider, - final Provider<ChatContext> chatContextProvider) { - super(NAME, i18n.t("chat rooms"), toolSelector, wsThemePresenter, ws); - this.chatContentProvider = chatContentProvider; - this.chatContextProvider = chatContextProvider; - session.onInitDataReceived(new Listener<InitDataDTO>() { - public void onEvent(final InitDataDTO initData) { - checkChatDomain(initData.getChatDomain()); - final ChatConnectionOptions chatOptions = new ChatConnectionOptions(initData.getChatHttpBase(), - initData.getChatDomain(), initData.getChatRoomHost()); - chat = new ChatEngineXmpp(emiteUIDialog, chatOptions, i18n, ws); - groupMembersSummaryProvider.get().addUserOperation( - new MenuItem<GroupDTO>("images/new-chat.gif", i18n.t("Start a chat with this member"), - new Listener<GroupDTO>() { - public void onEvent(final GroupDTO group) { - emiteUIDialog.show(); - if (emiteUIDialog.isLoggedIn()) { - emiteUIDialog.chat(XmppURI.jid(group.getShortName() + "@" - + initData.getChatDomain())); - } else { - ws.showAlertMessage(i18n.t("Error"), - i18n.t("To start a chat you need to be 'online'.")); - } - } - }), true); - } - - private void checkChatDomain(final String chatDomain) { - final String httpDomain = WindowUtils.getLocation().getHostName(); - if (!chatDomain.equals(httpDomain)) { - Log.error("Your http domain (" + httpDomain + ") is different from the chat domain (" + chatDomain - + "). This will produce problems with the chat functionality. " - + "Check kune.properties on the server."); - } - } - }); - application.onApplicationStop(new Listener0() { - public void onEvent() { - chat.stop(); - } - }); - session.onUserSignOut(new Listener0() { - public void onEvent() { - chat.logout(); - } - }); - session.onUserSignIn(new Listener<UserInfoDTO>() { - public void onEvent(final UserInfoDTO user) { - chat.login(user.getChatName(), user.getChatPassword()); - } - }); + public ChatClientTool(final I18nTranslationService i18n, final WorkspaceSkeleton ws, + final ToolSelector toolSelector, final WsThemePresenter wsThemePresenter, + final ContentIconsRegistry contentIconsRegistry, final DragDropContentRegistry dragDropContentRegistry) { + super(NAME, i18n.t("chat rooms"), toolSelector, wsThemePresenter, ws, contentIconsRegistry, + dragDropContentRegistry); } - public ChatEngine getChat() { - return chat; - } - public String getName() { return NAME; } - public void setContent(final StateContainerDTO state) { - chatContentProvider.get().setState(state); + @Override + protected void registerIcons() { + contentIconsRegistry.registerContentTypeIcon(TYPE_ROOM, "public/images/emite-room.png"); } - - public void setContext(final StateContainerDTO state) { - chatContextProvider.get().setState(state); - } - } Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngine.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngine.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngine.java 2008-11-05 22:07:07 UTC (rev 940) @@ -19,11 +19,18 @@ */ package org.ourproject.kune.chat.client; +import com.calclab.emite.core.client.xmpp.stanzas.XmppURI; + public interface ChatEngine { + void addNewBuddie(String shortName); + void chat(XmppURI jid); + ChatConnectionOptions getChatOptions(); + boolean isLoggedIn(); + void joinRoom(String roomName, String userAlias); void login(String jid, String passwd); @@ -33,4 +40,5 @@ void show(); void stop(); + } Copied: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java (from rev 939, trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java) =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java 2008-11-05 22:07:07 UTC (rev 940) @@ -0,0 +1,207 @@ +/* + * + * 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; + +import java.util.Date; + +import org.ourproject.kune.platf.client.app.Application; +import org.ourproject.kune.platf.client.dto.InitDataDTO; +import org.ourproject.kune.platf.client.dto.UserInfoDTO; +import org.ourproject.kune.platf.client.services.I18nTranslationService; +import org.ourproject.kune.platf.client.state.Session; +import org.ourproject.kune.platf.client.ui.WindowUtils; +import org.ourproject.kune.workspace.client.site.Site; +import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; + +import com.allen_sauer.gwt.log.client.Log; +import com.calclab.emite.core.client.xmpp.stanzas.XmppURI; +import com.calclab.emiteuimodule.client.EmiteUIDialog; +import com.calclab.emiteuimodule.client.SubscriptionMode; +import com.calclab.emiteuimodule.client.UserChatOptions; +import com.calclab.emiteuimodule.client.params.AvatarProvider; +import com.calclab.emiteuimodule.client.status.OwnPresence.OwnStatus; +import com.calclab.suco.client.ioc.Provider; +import com.calclab.suco.client.listener.Listener; +import com.calclab.suco.client.listener.Listener0; +import com.google.gwt.user.client.Window; +import com.gwtext.client.core.EventObject; +import com.gwtext.client.widgets.Button; +import com.gwtext.client.widgets.ToolbarButton; +import com.gwtext.client.widgets.event.ButtonListenerAdapter; + +class ChatEngineDefault implements ChatEngine { + private ChatConnectionOptions chatOptions; + private final I18nTranslationService i18n; + private final WorkspaceSkeleton ws; + private ToolbarButton traybarButton; + private final Provider<EmiteUIDialog> emiteUIProvider; + + public ChatEngineDefault(final I18nTranslationService i18n, final WorkspaceSkeleton ws, Application application, + Session session, final Provider<EmiteUIDialog> emiteUIProvider) { + this.i18n = i18n; + this.ws = ws; + this.emiteUIProvider = emiteUIProvider; + session.onInitDataReceived(new Listener<InitDataDTO>() { + public void onEvent(final InitDataDTO initData) { + checkChatDomain(initData.getChatDomain()); + chatOptions = new ChatConnectionOptions(initData.getChatHttpBase(), initData.getChatDomain(), + initData.getChatRoomHost()); + } + + private void checkChatDomain(final String chatDomain) { + final String httpDomain = WindowUtils.getLocation().getHostName(); + if (!chatDomain.equals(httpDomain)) { + Log.error("Your http domain (" + httpDomain + ") is different from the chat domain (" + chatDomain + + "). This will produce problems with the chat functionality. " + + "Check kune.properties on the server."); + } + } + }); + session.onUserSignOut(new Listener0() { + public void onEvent() { + logout(); + } + }); + session.onUserSignIn(new Listener<UserInfoDTO>() { + public void onEvent(final UserInfoDTO user) { + login(user.getChatName(), user.getChatPassword()); + } + }); + application.onApplicationStop(new Listener0() { + public void onEvent() { + stop(); + } + }); + } + + public void addNewBuddie(String shortName) { + Site.important("In development (emite)"); + } + + public void chat(XmppURI jid) { + emiteUIProvider.get().chat(jid); + } + + public ChatConnectionOptions getChatOptions() { + return chatOptions; + } + + public boolean isLoggedIn() { + return emiteUIProvider.get().isLoggedIn(); + } + + public void joinRoom(final String roomName, final String userAlias) { + if (emiteUIProvider.get().isLoggedIn()) { + final XmppURI roomURI = XmppURI.uri(roomName + "@" + chatOptions.roomHost + "/" + + chatOptions.userOptions.getUserJid().getNode()); + emiteUIProvider.get().joinRoom(roomURI); + } else { + ws.showAlertMessage(i18n.t("Error"), i18n.t("To join a chatroom you need to be 'online'.")); + } + } + + public void login(final String jid, final String passwd) { + final UserChatOptions userChatOptions = getUserChatOptions(jid, passwd); + // FIXME: Avatar provider + final AvatarProvider avatarProvider = new AvatarProvider() { + public String getAvatarURL(XmppURI userURI) { + return "images/person-def.gif"; + } + }; + final String initialWindowTitle = Window.getTitle(); + chatOptions.userOptions = userChatOptions; + if (emiteUIProvider.get().isDialogNotStarted()) { + emiteUIProvider.get().start(userChatOptions, chatOptions.httpBase, chatOptions.roomHost, + initialWindowTitle, avatarProvider, i18n.t("Chat")); + } else { + emiteUIProvider.get().setEnableStatusUI(true); + emiteUIProvider.get().refreshUserInfo(chatOptions.userOptions); + } + emiteUIProvider.get().show(OwnStatus.online); + if (traybarButton == null) { + traybarButton = new ToolbarButton(); + traybarButton.setTooltip(i18n.t("Show/hide the chat window")); + // traybarButton.setIcon("images/emite-chat.gif"); + traybarButton.setIcon("images/e-icon.gif"); + traybarButton.addListener(new ButtonListenerAdapter() { + @Override + public void onClick(final Button button, final EventObject e) { + if (emiteUIProvider.get().isVisible()) { + emiteUIProvider.get().hide(); + } else { + emiteUIProvider.get().show(); + } + } + }); + ws.getSiteTraybar().addButton(traybarButton); + emiteUIProvider.get().onChatAttended(new Listener<String>() { + public void onEvent(final String parameter) { + traybarButton.setIcon("images/e-icon.gif"); + } + }); + emiteUIProvider.get().onChatUnattendedWithActivity(new Listener<String>() { + public void onEvent(final String parameter) { + traybarButton.setIcon("images/e-icon-a.gif"); + } + }); + } + emiteUIProvider.get().hide(); + emiteUIProvider.get().onChatAttended(new Listener<String>() { + public void onEvent(final String parameter) { + Window.setTitle(initialWindowTitle); + } + }); + emiteUIProvider.get().onChatUnattendedWithActivity(new Listener<String>() { + public void onEvent(final String chatTitle) { + Window.setTitle("(* " + chatTitle + ") " + initialWindowTitle); + } + }); + } + + public void logout() { + if (!emiteUIProvider.get().isDialogNotStarted()) { + emiteUIProvider.get().setOwnPresence(OwnStatus.offline); + chatOptions.userOptions = getUserChatOptions("[email protected]", ""); + emiteUIProvider.get().refreshUserInfo(chatOptions.userOptions); + emiteUIProvider.get().setEnableStatusUI(false); + } + } + + public void show() { + emiteUIProvider.get().show(); + } + + public void stop() { + if (!emiteUIProvider.get().isDialogNotStarted()) { + emiteUIProvider.get().destroy(); + } + if (emiteUIProvider.get().getSession().isLoggedIn()) { + emiteUIProvider.get().getSession().logout(); + } + } + + private UserChatOptions getUserChatOptions(final String jid, final String passwd) { + final String resource = "emiteui-" + new Date().getTime() + "-kune"; // + + // getGwtMetaProperty(GWT_PROPERTY_RELEASE); + // FIXME, get this from user profile + return new UserChatOptions(jid + "@" + chatOptions.domain, passwd, resource, "blue", + SubscriptionMode.autoAcceptAll, true); + } +} Property changes on: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java ___________________________________________________________________ Name: svn:mergeinfo + Deleted: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java 2008-11-05 22:07:07 UTC (rev 940) @@ -1,161 +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; - -import java.util.Date; - -import org.ourproject.kune.platf.client.services.I18nTranslationService; -import org.ourproject.kune.workspace.client.site.Site; -import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; - -import com.calclab.emite.core.client.xmpp.stanzas.XmppURI; -import com.calclab.emiteuimodule.client.EmiteUIDialog; -import com.calclab.emiteuimodule.client.SubscriptionMode; -import com.calclab.emiteuimodule.client.UserChatOptions; -import com.calclab.emiteuimodule.client.params.AvatarProvider; -import com.calclab.emiteuimodule.client.status.OwnPresence.OwnStatus; -import com.calclab.suco.client.listener.Listener; -import com.google.gwt.user.client.Window; -import com.gwtext.client.core.EventObject; -import com.gwtext.client.widgets.Button; -import com.gwtext.client.widgets.ToolbarButton; -import com.gwtext.client.widgets.event.ButtonListenerAdapter; - -class ChatEngineXmpp implements ChatEngine { - private final ChatConnectionOptions chatOptions; - private final EmiteUIDialog emiteDialog; - private final I18nTranslationService i18n; - private final WorkspaceSkeleton ws; - private ToolbarButton traybarButton; - - public ChatEngineXmpp(final EmiteUIDialog emiteUIDialog, final ChatConnectionOptions chatOptions, - final I18nTranslationService i18n, final WorkspaceSkeleton ws) { - this.emiteDialog = emiteUIDialog; - this.chatOptions = chatOptions; - this.i18n = i18n; - this.ws = ws; - } - - public void addNewBuddie(String shortName) { - Site.important("In development (emite)"); - } - - public ChatConnectionOptions getChatOptions() { - return chatOptions; - } - - public void joinRoom(final String roomName, final String userAlias) { - if (emiteDialog.isLoggedIn()) { - final XmppURI roomURI = XmppURI.uri(roomName + "@" + chatOptions.roomHost + "/" - + chatOptions.userOptions.getUserJid().getNode()); - emiteDialog.joinRoom(roomURI); - } else { - ws.showAlertMessage(i18n.t("Error"), i18n.t("To join a chatroom you need to be 'online'.")); - } - } - - public void login(final String jid, final String passwd) { - final UserChatOptions userChatOptions = getUserChatOptions(jid, passwd); - // FIXME: Avatar provider - final AvatarProvider avatarProvider = new AvatarProvider() { - public String getAvatarURL(XmppURI userURI) { - return "images/person-def.gif"; - } - }; - final String initialWindowTitle = Window.getTitle(); - chatOptions.userOptions = userChatOptions; - if (emiteDialog.isDialogNotStarted()) { - emiteDialog.start(userChatOptions, chatOptions.httpBase, chatOptions.roomHost, initialWindowTitle, - avatarProvider, i18n.t("Chat")); - } else { - emiteDialog.setEnableStatusUI(true); - emiteDialog.refreshUserInfo(chatOptions.userOptions); - } - emiteDialog.show(OwnStatus.online); - if (traybarButton == null) { - traybarButton = new ToolbarButton(); - traybarButton.setTooltip(i18n.t("Show/hide the chat window")); - // traybarButton.setIcon("images/emite-chat.gif"); - traybarButton.setIcon("images/e-icon.gif"); - traybarButton.addListener(new ButtonListenerAdapter() { - @Override - public void onClick(final Button button, final EventObject e) { - if (emiteDialog.isVisible()) { - emiteDialog.hide(); - } else { - emiteDialog.show(); - } - } - }); - ws.getSiteTraybar().addButton(traybarButton); - emiteDialog.onChatAttended(new Listener<String>() { - public void onEvent(final String parameter) { - traybarButton.setIcon("images/e-icon.gif"); - } - }); - emiteDialog.onChatUnattendedWithActivity(new Listener<String>() { - public void onEvent(final String parameter) { - traybarButton.setIcon("images/e-icon-a.gif"); - } - }); - } - emiteDialog.hide(); - emiteDialog.onChatAttended(new Listener<String>() { - public void onEvent(final String parameter) { - Window.setTitle(initialWindowTitle); - } - }); - emiteDialog.onChatUnattendedWithActivity(new Listener<String>() { - public void onEvent(final String chatTitle) { - Window.setTitle("(* " + chatTitle + ") " + initialWindowTitle); - } - }); - } - - public void logout() { - if (!emiteDialog.isDialogNotStarted()) { - emiteDialog.setOwnPresence(OwnStatus.offline); - chatOptions.userOptions = getUserChatOptions("[email protected]", ""); - emiteDialog.refreshUserInfo(chatOptions.userOptions); - emiteDialog.setEnableStatusUI(false); - } - } - - public void show() { - emiteDialog.show(); - } - - public void stop() { - if (!emiteDialog.isDialogNotStarted()) { - emiteDialog.destroy(); - } - if (emiteDialog.getSession().isLoggedIn()) { - emiteDialog.getSession().logout(); - } - } - - private UserChatOptions getUserChatOptions(final String jid, final String passwd) { - final String resource = "emiteui-" + new Date().getTime() + "-kune"; // + - // getGwtMetaProperty(GWT_PROPERTY_RELEASE); - // FIXME, get this from user profile - return new UserChatOptions(jid + "@" + chatOptions.domain, passwd, resource, "blue", - SubscriptionMode.autoAcceptAll, true); - } -} Deleted: trunk/src/main/java/org/ourproject/kune/chat/client/cnt/RoomViewListener.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/cnt/RoomViewListener.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/chat/client/cnt/RoomViewListener.java 2008-11-05 22:07:07 UTC (rev 940) @@ -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.chat.client.cnt; - -public interface RoomViewListener { - - void onEnterRoom(); - -} Deleted: trunk/src/main/java/org/ourproject/kune/chat/client/cnt/RoomViewPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/cnt/RoomViewPanel.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/chat/client/cnt/RoomViewPanel.java 2008-11-05 22:07:07 UTC (rev 940) @@ -1,46 +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.View; - -import com.google.gwt.user.client.ui.Button; -import com.google.gwt.user.client.ui.ClickListener; -import com.google.gwt.user.client.ui.FlowPanel; -import com.google.gwt.user.client.ui.Label; -import com.google.gwt.user.client.ui.VerticalPanel; -import com.google.gwt.user.client.ui.Widget; - -public class RoomViewPanel extends VerticalPanel implements View { - - public RoomViewPanel(final RoomViewListener listener) { - FlowPanel flow = new FlowPanel(); - Button btnEnter = new Button("entrar", new ClickListener() { - public void onClick(Widget arg0) { - listener.onEnterRoom(); - } - }); - flow.add(btnEnter); - Label label = new Label("panel del chat: contenido por defecto"); - - add(flow); - add(label); - } -} Deleted: trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomControl.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomControl.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomControl.java 2008-11-05 22:07:07 UTC (rev 940) @@ -1,24 +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.room; - -public interface ChatRoomControl { - -} Deleted: trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomControlPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomControlPanel.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomControlPanel.java 2008-11-05 22:07:07 UTC (rev 940) @@ -1,46 +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.room; - -import org.ourproject.kune.platf.client.services.I18nTranslationService; -import org.ourproject.kune.platf.client.ui.CustomPushButton; - -import com.google.gwt.user.client.ui.ClickListener; -import com.google.gwt.user.client.ui.HorizontalPanel; -import com.google.gwt.user.client.ui.Widget; - -public class ChatRoomControlPanel extends HorizontalPanel implements ChatRoomControlView { - private final CustomPushButton enterRoomBtn; - - public ChatRoomControlPanel(final I18nTranslationService i18n, final ChatRoomControlPresenter presenter) { - enterRoomBtn = new CustomPushButton(i18n.t("Enter room"), new ClickListener() { - public void onClick(final Widget sender) { - presenter.onEnterRoom(); - } - }); - add(enterRoomBtn); - setEnterRoomEnabled(true); - } - - public void setEnterRoomEnabled(final boolean isEnabled) { - enterRoomBtn.setEnabled(isEnabled); - } - -} \ No newline at end of file Deleted: trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomControlPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomControlPresenter.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomControlPresenter.java 2008-11-05 22:07:07 UTC (rev 940) @@ -1,41 +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.room; - -import org.ourproject.kune.platf.client.View; - -public class ChatRoomControlPresenter implements ChatRoomControl { - - private ChatRoomControlView view; - - public View getView() { - return view; - } - - public void init(final ChatRoomControlView view) { - this.view = view; - } - - public void onEnterRoom() { - // TODO Auto-generated method stub - - } - -} Deleted: trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomControlView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomControlView.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/chat/client/cnt/room/ChatRoomControlView.java 2008-11-05 22:07:07 UTC (rev 940) @@ -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.chat.client.cnt.room; - -import org.ourproject.kune.platf.client.View; - -public interface ChatRoomControlView extends View { - -} Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ctx/ChatContextPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/ctx/ChatContextPresenter.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/chat/client/ctx/ChatContextPresenter.java 2008-11-05 22:07:07 UTC (rev 940) @@ -19,21 +19,21 @@ */ package org.ourproject.kune.chat.client.ctx; -import org.ourproject.kune.chat.client.ctx.rooms.RoomsAdmin; +import org.ourproject.kune.chat.client.ctx.room.RoomAdmin; import org.ourproject.kune.platf.client.dto.StateContainerDTO; import com.calclab.suco.client.ioc.Provider; public class ChatContextPresenter implements ChatContext { - private final Provider<RoomsAdmin> roomAdminsProvider; + private final Provider<RoomAdmin> roomAdminsProvider; - public ChatContextPresenter(final Provider<RoomsAdmin> roomAdminsProvider) { + public ChatContextPresenter(final Provider<RoomAdmin> roomAdminsProvider) { this.roomAdminsProvider = roomAdminsProvider; } public void setState(final StateContainerDTO state) { - final RoomsAdmin rooms = roomAdminsProvider.get(); + final RoomAdmin rooms = roomAdminsProvider.get(); rooms.showRoom(state.getStateToken(), state.getContainer(), state.getContainerRights()); } } Copied: trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room (from rev 934, trunk/src/main/java/org/ourproject/kune/chat/client/ctx/rooms) Property changes on: trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room ___________________________________________________________________ Name: svn:mergeinfo + Copied: trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room/RoomAdmin.java (from rev 934, trunk/src/main/java/org/ourproject/kune/chat/client/ctx/rooms/RoomsAdmin.java) =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/ctx/rooms/RoomsAdmin.java 2008-10-28 15:40:27 UTC (rev 934) +++ trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room/RoomAdmin.java 2008-11-05 22:07:07 UTC (rev 940) @@ -0,0 +1,28 @@ +/* + * + * 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.ctx.room; + +import org.ourproject.kune.platf.client.dto.AccessRightsDTO; +import org.ourproject.kune.platf.client.dto.ContainerDTO; +import org.ourproject.kune.platf.client.dto.StateToken; + +public interface RoomAdmin { + void showRoom(final StateToken token, final ContainerDTO container, final AccessRightsDTO rights); +} Property changes on: trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room/RoomAdmin.java ___________________________________________________________________ Name: svn:mergeinfo + Copied: trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room/RoomAdminPresenter.java (from rev 934, trunk/src/main/java/org/ourproject/kune/chat/client/ctx/rooms/RoomsAdminPresenter.java) =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/ctx/rooms/RoomsAdminPresenter.java 2008-10-28 15:40:27 UTC (rev 934) +++ trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room/RoomAdminPresenter.java 2008-11-05 22:07:07 UTC (rev 940) @@ -0,0 +1,77 @@ +/* + * + * 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.ctx.room; + +import org.ourproject.kune.platf.client.dto.AccessRightsDTO; +import org.ourproject.kune.platf.client.dto.ContainerDTO; +import org.ourproject.kune.platf.client.dto.StateToken; +import org.ourproject.kune.platf.client.rpc.ContentServiceAsync; +import org.ourproject.kune.platf.client.services.I18nTranslationService; +import org.ourproject.kune.platf.client.state.Session; +import org.ourproject.kune.platf.client.state.StateManager; +import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator; + +import com.calclab.suco.client.ioc.Provider; + +public class RoomAdminPresenter implements RoomAdmin { + private final ContextNavigator contextNavigator; + + public RoomAdminPresenter(final ContextNavigator contextNavigator, final I18nTranslationService i18n, + final Provider<StateManager> stateManagerProvider, final Session session, + final Provider<ContentServiceAsync> contentServiceProvider) { + this.contextNavigator = contextNavigator; + // final ContextNavigatorImages images = + // ContextNavigatorImages.App.getInstance(); + // contextNavigator.registerType(ChatClientTool.TYPE_CHAT, + // images.page()); + // contextNavigator.registerType(ChatClientTool.TYPE_ROOM, + // images.chatGreen()); + // contextNavigator.canCreate(i18n.t("New chat room"), i18n.t("Add a + // chat room"), new Listener<String>() { + // public void onEvent(final String name) { + // Site.showProgressProcessing(); + // final String groupShortName = + // session.getCurrentState().getGroup().getShortName(); + // final Long containerId = + // session.getCurrentState().getFolder().getId(); + // contentServiceProvider.get().addRoom(session.getUserHash(), + // groupShortName, containerId, + // groupShortName + "-" + name, new AsyncCallbackSimple<StateDTO>() { + // public void onSuccess(final StateDTO state) { + // final StateManager stateManager = stateManagerProvider.get(); + // stateManager.setRetrievedState(state); + // // FIXME: Isn't using cache (same in Add folder) + // stateManager.reloadContextAndTitles(); + // Site.hideProgress(); + // } + // }); + // } + // }); + } + + public void showRoom(final StateToken token, final ContainerDTO container, final AccessRightsDTO rights) { + // contextNavigator.showContainer(token, container, rights); + // final String type = container.getTypeId(); + // if (type.equals(ChatClientTool.TYPE_ROOM)) { + // contextNavigator.setControlsVisible(false); + // } + } + +} Property changes on: trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room/RoomAdminPresenter.java ___________________________________________________________________ Name: svn:mergeinfo + Deleted: trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room/RoomsAdmin.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/ctx/rooms/RoomsAdmin.java 2008-10-28 15:40:27 UTC (rev 934) +++ trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room/RoomsAdmin.java 2008-11-05 22:07:07 UTC (rev 940) @@ -1,31 +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.ctx.rooms; - -import org.ourproject.kune.platf.client.View; -import org.ourproject.kune.platf.client.dto.AccessRightsDTO; -import org.ourproject.kune.platf.client.dto.ContainerDTO; -import org.ourproject.kune.platf.client.dto.StateToken; - -public interface RoomsAdmin { - View getView(); - - void showRoom(final StateToken token, final ContainerDTO container, final AccessRightsDTO rights); -} Deleted: trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room/RoomsAdminPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/ctx/rooms/RoomsAdminPresenter.java 2008-10-28 15:40:27 UTC (rev 934) +++ trunk/src/main/java/org/ourproject/kune/chat/client/ctx/room/RoomsAdminPresenter.java 2008-11-05 22:07:07 UTC (rev 940) @@ -1,82 +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.ctx.rooms; - -import org.ourproject.kune.platf.client.View; -import org.ourproject.kune.platf.client.dto.AccessRightsDTO; -import org.ourproject.kune.platf.client.dto.ContainerDTO; -import org.ourproject.kune.platf.client.dto.StateToken; -import org.ourproject.kune.platf.client.rpc.ContentServiceAsync; -import org.ourproject.kune.platf.client.services.I18nTranslationService; -import org.ourproject.kune.platf.client.state.Session; -import org.ourproject.kune.platf.client.state.StateManager; -import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator; - -import com.calclab.suco.client.ioc.Provider; - -public class RoomsAdminPresenter implements RoomsAdmin { - private final ContextNavigator contextNavigator; - - public RoomsAdminPresenter(final ContextNavigator contextNavigator, final I18nTranslationService i18n, - final Provider<StateManager> stateManagerProvider, final Session session, - final Provider<ContentServiceAsync> contentServiceProvider) { - this.contextNavigator = contextNavigator; - // final ContextNavigatorImages images = - // ContextNavigatorImages.App.getInstance(); - // contextNavigator.registerType(ChatClientTool.TYPE_CHAT, - // images.page()); - // contextNavigator.registerType(ChatClientTool.TYPE_ROOM, - // images.chatGreen()); - // contextNavigator.canCreate(i18n.t("New chat room"), i18n.t("Add a - // chat room"), new Listener<String>() { - // public void onEvent(final String name) { - // Site.showProgressProcessing(); - // final String groupShortName = - // session.getCurrentState().getGroup().getShortName(); - // final Long containerId = - // session.getCurrentState().getFolder().getId(); - // contentServiceProvider.get().addRoom(session.getUserHash(), - // groupShortName, containerId, - // groupShortName + "-" + name, new AsyncCallbackSimple<StateDTO>() { - // public void onSuccess(final StateDTO state) { - // final StateManager stateManager = stateManagerProvider.get(); - // stateManager.setRetrievedState(state); - // // FIXME: Isn't using cache (same in Add folder) - // stateManager.reloadContextAndTitles(); - // Site.hideProgress(); - // } - // }); - // } - // }); - } - - public View getView() { - return contextNavigator.getView(); - } - - public void showRoom(final StateToken token, final ContainerDTO container, final AccessRightsDTO rights) { - // contextNavigator.showContainer(token, container, rights); - // final String type = container.getTypeId(); - // if (type.equals(ChatClientTool.TYPE_ROOM)) { - // contextNavigator.setControlsVisible(false); - // } - } - -} 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-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2008-11-05 22:07:07 UTC (rev 940) @@ -25,10 +25,10 @@ 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.reader.DocumentViewer; -import org.ourproject.kune.docs.client.cnt.reader.DocumentViewerPanel; -import org.ourproject.kune.docs.client.cnt.reader.DocumentViewerPresenter; -import org.ourproject.kune.docs.client.cnt.reader.DocumentViewerView; +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; +import org.ourproject.kune.docs.client.cnt.viewer.DocumentViewerView; import org.ourproject.kune.docs.client.ctx.DocumentContext; import org.ourproject.kune.docs.client.ctx.DocumentContextPresenter; import org.ourproject.kune.docs.client.ctx.admin.DocContextEditor; Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2008-11-05 22:07:07 UTC (rev 940) @@ -22,14 +22,13 @@ import org.ourproject.kune.platf.client.actions.ContentIconsRegistry; import org.ourproject.kune.platf.client.actions.DragDropContentRegistry; import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO; -import org.ourproject.kune.platf.client.tool.AbstractClientTool; +import org.ourproject.kune.platf.client.tool.FoldableAbstractClientTool; import org.ourproject.kune.platf.client.tool.ToolSelector; import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; import org.ourproject.kune.workspace.client.themes.WsThemePresenter; - -public class DocumentClientTool extends AbstractClientTool { +public class DocumentClientTool extends FoldableAbstractClientTool { public static final String TYPE_ROOT = "docs.root"; public static final String TYPE_FOLDER = "docs.folder"; public static final String TYPE_DOCUMENT = "docs.doc"; @@ -39,28 +38,21 @@ public static final String TYPE_WIKI = "docs.wiki"; public static final String TYPE_WIKIPAGE = "docs.wikipage"; public static final String TYPE_UPLOADEDFILE = "docs.uploaded"; - public static final String NAME = "docs"; - private final DragDropContentRegistry dragDropContentRegistry; - private final ContentIconsRegistry contentIconsRegistry; - public DocumentClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector, final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws, - final DragDropContentRegistry dragDropContentRegistry, - final ContentIconsRegistry contentIconsRegistry) { - super(NAME, i18n.t("documents"), toolSelector, wsThemePresenter, ws); - this.dragDropContentRegistry = dragDropContentRegistry; - this.contentIconsRegistry = contentIconsRegistry; - registerDragDropTypes(); - registerIcons(); + final DragDropContentRegistry dragDropContentRegistry, final ContentIconsRegistry contentIconsRegistry) { + super(NAME, i18n.t("documents"), toolSelector, wsThemePresenter, ws, contentIconsRegistry, + dragDropContentRegistry); } public String getName() { return NAME; } - private void registerDragDropTypes() { + @Override + protected void registerDragDropTypes() { dragDropContentRegistry.registerDraggableType(TYPE_DOCUMENT); dragDropContentRegistry.registerDraggableType(TYPE_FOLDER); dragDropContentRegistry.registerDraggableType(TYPE_UPLOADEDFILE); @@ -70,7 +62,8 @@ dragDropContentRegistry.registerDroppableType(TYPE_GALLERY); } - private void registerIcons() { + @Override + protected void registerIcons() { contentIconsRegistry.registerContentTypeIcon(TYPE_FOLDER, "images/nav/folder.png"); contentIconsRegistry.registerContentTypeIcon(TYPE_BLOG, "images/nav/blog.png"); contentIconsRegistry.registerContentTypeIcon(TYPE_GALLERY, "images/nav/gallery.png"); 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-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java 2008-11-05 22:07:07 UTC (rev 940) @@ -21,7 +21,7 @@ import org.ourproject.kune.docs.client.DocumentClientTool; import org.ourproject.kune.docs.client.cnt.folder.viewer.FolderViewer; -import org.ourproject.kune.docs.client.cnt.reader.DocumentViewer; +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; import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbar; Copied: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer (from rev 934, trunk/src/main/java/org/ourproject/kune/docs/client/cnt/reader) Property changes on: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer ___________________________________________________________________ Name: svn:mergeinfo + Deleted: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentReader.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/reader/DocumentReader.java 2008-10-28 15:40:27 UTC (rev 934) +++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentReader.java 2008-11-05 22:07:07 UTC (rev 940) @@ -1,31 +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.reader; - -import org.ourproject.kune.platf.client.View; -import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO; -import org.ourproject.kune.platf.client.dto.StateToken; - -public interface DocumentReader { - - View getView(); - - void showDocument(StateToken token, String text, String typeId, BasicMimeTypeDTO mimeType); -} Deleted: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentReaderPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/reader/DocumentReaderPresenter.java 2008-10-28 15:40:27 UTC (rev 934) +++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentReaderPresenter.java 2008-11-05 22:07:07 UTC (rev 940) @@ -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.docs.client.cnt.reader; - -import org.ourproject.kune.docs.client.DocumentClientTool; -import org.ourproject.kune.platf.client.View; -import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO; -import org.ourproject.kune.platf.client.dto.StateToken; -import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils; -import org.ourproject.kune.platf.client.ui.download.ImageSize; - -import com.calclab.suco.client.ioc.Provider; - -public class DocumentReaderPresenter implements DocumentReader { - private final DocumentReaderView view; - private final Provider<FileDownloadUtils> downloadProvider; - - public DocumentReaderPresenter(final DocumentReaderView view, final Provider<FileDownloadUtils> downloadProvider) { - this.view = view; - this.downloadProvider = downloadProvider; - } - - public View getView() { - return view; - } - - public void showDocument(final StateToken token, final String text, final String typeId, - final BasicMimeTypeDTO mimeType) { - if (typeId.equals(DocumentClientTool.TYPE_UPLOADEDFILE)) { - if (mimeType != null) { - FileDownloadUtils fileDownloadUtils = downloadProvider.get(); - if (mimeType.getType().equals("image")) { - view.showImage(fileDownloadUtils.getImageUrl(token), fileDownloadUtils.getImageResizedUrl(token, - ImageSize.sized)); - } else if (mimeType.toString().equals("text/plain") || mimeType.toString().equals("application/pdf")) { - view.setContent(text); - } else { - view.setContent(""); - } - } - } else { - view.setContent(text); - } - } -} Deleted: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentReaderView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/reader/DocumentReaderView.java 2008-10-28 15:40:27 UTC (rev 934) +++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentReaderView.java 2008-11-05 22:07:07 UTC (rev 940) @@ -1,30 +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.reader; - -import org.ourproject.kune.platf.client.View; - -public interface DocumentReaderView extends View { - - void setContent(String content); - - void showImage(String imageUrl, String imageResizedUrl); - -} Copied: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentViewer.java (from rev 939, trunk/src/main/java/org/ourproject/kune/docs/client/cnt/reader/DocumentViewer.java) =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/reader/DocumentViewer.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentViewer.java 2008-11-05 22:07:07 UTC (rev 940) @@ -0,0 +1,31 @@ +/* + * + * 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.viewer; + +import org.ourproject.kune.platf.client.View; +import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO; +import org.ourproject.kune.platf.client.dto.StateToken; + +public interface DocumentViewer { + + View getView(); + + void showDocument(StateToken token, String text, String typeId, BasicMimeTypeDTO mimeType); +} Copied: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentViewerPanel.java (from rev 939, trunk/src/main/java/org/ourproject/kune/docs/client/cnt/reader/DocumentViewerPanel.java) =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/reader/DocumentViewerPanel.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentViewerPanel.java 2008-11-05 22:07:07 UTC (rev 940) @@ -0,0 +1,73 @@ +/* + * + * 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.viewer; + +import org.ourproject.kune.platf.client.services.I18nTranslationService; +import org.ourproject.kune.platf.client.ui.KuneUiUtils; +import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; + +import com.google.gwt.user.client.ui.ClickListener; +import com.google.gwt.user.client.ui.HTML; +import com.google.gwt.user.client.ui.Image; +import com.google.gwt.user.client.ui.Widget; + +public class DocumentViewerPanel implements DocumentViewerView { + + private final WorkspaceSkeleton ws; + private final I18nTranslationService i18n; + + public DocumentViewerPanel(final WorkspaceSkeleton ws, I18nTranslationService i18n) { + this.ws = ws; + this.i18n = i18n; + } + + public void setContent(final String content) { + final HTML html = new HTML(content); + setDefStyle(html); + ws.getEntityWorkspace().setContent(html); + } + + public void showImage(String imageUrl, String imageResizedUrl) { + final Image imgOrig = new Image(imageUrl); + final Image imgResized = new Image(imageResizedUrl); + KuneUiUtils.setQuickTip(imgOrig, i18n.t("Click to zoom out")); + KuneUiUtils.setQuickTip(imgResized, i18n.t("Click to zoom in")); + setDefStyle(imgOrig); + setDefStyle(imgResized); + imgOrig.addStyleName("kune-pointer"); + imgResized.addStyleName("kune-pointer"); + imgResized.addClickListener(new ClickListener() { + public void onClick(Widget sender) { + ws.getEntityWorkspace().setContent(imgOrig); + } + }); + imgOrig.addClickListener(new ClickListener() { + public void onClick(Widget sender) { + ws.getEntityWorkspace().setContent(imgResized); + } + }); + ws.getEntityWorkspace().setContent(imgResized); + } + + private void setDefStyle(final Widget widget) { + widget.setStyleName("kune-Content-Main"); + widget.addStyleName("kune-Margin-7-trbl"); + } +} Copied: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentViewerPresenter.java (from rev 939, trunk/src/main/java/org/ourproject/kune/docs/client/cnt/reader/DocumentViewerPresenter.java) =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/reader/DocumentViewerPresenter.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentViewerPresenter.java 2008-11-05 22:07:07 UTC (rev 940) @@ -0,0 +1,62 @@ +/* + * + * 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.viewer; + +import org.ourproject.kune.docs.client.DocumentClientTool; +import org.ourproject.kune.platf.client.View; +import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO; +import org.ourproject.kune.platf.client.dto.StateToken; +import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils; +import org.ourproject.kune.platf.client.ui.download.ImageSize; + +import com.calclab.suco.client.ioc.Provider; + +public class DocumentViewerPresenter implements DocumentViewer { + private final DocumentViewerView view; + private final Provider<FileDownloadUtils> downloadProvider; + + public DocumentViewerPresenter(final DocumentViewerView view, final Provider<FileDownloadUtils> downloadProvider) { + this.view = view; + this.downloadProvider = downloadProvider; + } + + public View getView() { + return view; + } + + public void showDocument(final StateToken token, final String text, final String typeId, + final BasicMimeTypeDTO mimeType) { + if (typeId.equals(DocumentClientTool.TYPE_UPLOADEDFILE)) { + if (mimeType != null) { + FileDownloadUtils fileDownloadUtils = downloadProvider.get(); + if (mimeType.getType().equals("image")) { + view.showImage(fileDownloadUtils.getImageUrl(token), fileDownloadUtils.getImageResizedUrl(token, + ImageSize.sized)); + } else if (mimeType.toString().equals("text/plain") || mimeType.toString().equals("application/pdf")) { + view.setContent(text); + } else { + view.setContent(""); + } + } + } else { + view.setContent(text); + } + } +} Copied: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentViewerView.java (from rev 939, trunk/src/main/java/org/ourproject/kune/docs/client/cnt/reader/DocumentViewerView.java) =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/reader/DocumentViewerView.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/viewer/DocumentViewerView.java 2008-11-05 22:07:07 UTC (rev 940) @@ -0,0 +1,30 @@ +/* + * + * 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.viewer; + +import org.ourproject.kune.platf.client.View; + +public interface DocumentViewerView extends View { + + void setContent(String content); + + void showImage(String imageUrl, String imageResizedUrl); + +} Copied: trunk/src/main/java/org/ourproject/kune/platf/client/actions/BeforeActionCollection.java (from rev 939, trunk/src/main/java/org/ourproject/kune/platf/client/state/BeforeStateChangeCollection.java) =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/state/BeforeStateChangeCollection.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/BeforeActionCollection.java 2008-11-05 22:07:07 UTC (rev 940) @@ -0,0 +1,18 @@ +package org.ourproject.kune.platf.client.actions; + +import java.util.ArrayList; + +public class BeforeActionCollection extends ArrayList<BeforeActionListener> { + + private static final long serialVersionUID = 1L; + + public boolean checkBeforeAction() { + for (BeforeActionListener listener : this) { + if (!listener.beforeAction()) { + return false; + } + } + return true; + } + +} Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/actions/BeforeActionCollection.java ___________________________________________________________________ Name: svn:mergeinfo + Copied: trunk/src/main/java/org/ourproject/kune/platf/client/actions/BeforeActionListener.java (from rev 939, trunk/src/main/java/org/ourproject/kune/platf/client/state/BeforeActionListener.java) =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/state/BeforeActionListener.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/BeforeActionListener.java 2008-11-05 22:07:07 UTC (rev 940) @@ -0,0 +1,7 @@ +package org.ourproject.kune.platf.client.actions; + +public interface BeforeActionListener { + + boolean beforeAction(); + +} Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/ImageDescriptor.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/services/ImageDescriptor.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/platf/client/services/ImageDescriptor.java 2008-11-05 22:07:07 UTC (rev 940) @@ -19,5 +19,5 @@ */package org.ourproject.kune.platf.client.services; public enum ImageDescriptor { - accept, add, addGreen, alert, anybody, arrowDownBlack, arrowDownGreen, arrowDownWhite, arrowLeftGreen, arrowRightBlack, arrowRightGreen, arrowRightWhite, arrowUpGreen, bulletAdd, bulletBlack, bulletBlue, bulletDelete, bulletGreen, bulletPink, bulletPurple, bulletRed, bulletStar, bulletToggleMinus, bulletTogglePlus, bulletYellow, button15cblue, button15cdark, button15clight, button15cxlight, button15lblue, button15ldark, button15llight, button15lxlight, button15rblue, button15rdark, button15rlight, button15rxlight, button17cblue, button17cdark, button17clight, button17cxlight, button17lblue, button17ldark, button17llight, button17lxlight, button17rblue, button17rdark, button17rlight, button17rxlight, button20cblue, button20cdark, button20clight, button20cxlight, button20lblue, button20ldark, button20llight, button20lxlight, button20rblue, button20rdark, button20rlight, button20rxlight, buttonArrowDown, buttonHelpBlue, buttonHelpDark, buttonHelpLight, buttonSitebarArrowDown, by80x15, bync80x15, byncnd80x15, byncsa80x15, bynd80x15, bysa80x15, cancel, chat, clear, copyleft, cross, crossDark, del, emblemImportant, error, everybody, fullscreen, gnuFdl, groupDefIcon, groupHome, important, info, infoLight, kuneClose, kuneExternalWindow, kuneHelpTranslationIcon, kuneIcon16, kuneLogo16px, kunePreferences, kuneSearchIco, kuneSearchIcoPush, language, nobody, noCopyleft, nt, opentriangle, personDef, remove, rssIcon, searchIco, spinKuneThundGreen, splitterVertBar, star10, star20, star30, star40, star50, star60, star70, star80, star90, starGrey, starSmallYellow, starVsmallYellow, starYellow, step1, step2, step3, step4, step5, themeChoose, triangle + accept, add, addGreen, alert, anybody, arrowDownBlack, arrowDownGreen, arrowDownWhite, arrowLeftGreen, arrowRightBlack, arrowRightGreen, arrowRightWhite, arrowUpGreen, bulletAdd, bulletBlack, bulletBlue, bulletDelete, bulletGreen, bulletPink, bulletPurple, bulletRed, bulletStar, bulletToggleMinus, bulletTogglePlus, bulletYellow, button15cblue, button15cdark, button15clight, button15cxlight, button15lblue, button15ldark, button15llight, button15lxlight, button15rblue, button15rdark, button15rlight, button15rxlight, button17cblue, button17cdark, button17clight, button17cxlight, button17lblue, button17ldark, button17llight, button17lxlight, button17rblue, button17rdark, button17rlight, button17rxlight, button20cblue, button20cdark, button20clight, button20cxlight, button20lblue, button20ldark, button20llight, button20lxlight, button20rblue, button20rdark, button20rlight, button20rxlight, buttonArrowDown, buttonHelpBlue, buttonHelpDark, buttonHelpLight, buttonSitebarArrowDown, by80x15, bync80x15, byncnd80x15, byncsa80x15, bynd80x15, bysa80x15, cancel, clear, copyleft, cross, crossDark, del, emblemImportant, error, everybody, fullscreen, gnuFdl, groupDefIcon, groupHome, important, info, infoLight, kuneClose, kuneExternalWindow, kuneHelpTranslationIcon, kuneIcon16, kuneLogo16px, kunePreferences, kuneSearchIco, kuneSearchIcoPush, language, nobody, noCopyleft, nt, opentriangle, personDef, remove, rssIcon, searchIco, spinKuneThundGreen, splitterVertBar, star10, star20, star30, star40, star50, star60, star70, star80, star90, starGrey, starSmallYellow, starVsmallYellow, starYellow, step1, step2, step3, step4, step5, themeChoose, triangle } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/ImageUtils.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/services/ImageUtils.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/platf/client/services/ImageUtils.java 2008-11-05 22:07:07 UTC (rev 940) @@ -249,9 +249,6 @@ case cancel: { return img.cancel(); } - case chat: { - return img.chat(); - } case clear: { return img.clear(); } 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 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/platf/client/services/Images.java 2008-11-05 22:07:07 UTC (rev 940) @@ -255,9 +255,6 @@ @Resource("org/ourproject/kune/platf/public/images/cancel.png") AbstractImagePrototype cancel(); - @Resource("org/ourproject/kune/platf/public/images/chat.png") - AbstractImagePrototype chat(); - @Resource("org/ourproject/kune/platf/public/images/clear.png") AbstractImagePrototype clear(); 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-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-11-05 22:07:07 UTC (rev 940) @@ -102,6 +102,7 @@ import org.ourproject.kune.workspace.client.site.SiteToken; import org.ourproject.kune.workspace.client.site.rpc.UserService; import org.ourproject.kune.workspace.client.site.rpc.UserServiceAsync; +import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignOutLink; import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; import org.ourproject.kune.workspace.client.themes.WsThemePresenter; import org.ourproject.kune.workspace.client.title.EntityTitle; @@ -348,7 +349,7 @@ contentNavigatorToolbar); final TextEditorPresenter presenter = new TextEditorPresenter(true, toolbar, - $(I18nUITranslationService.class), $(StateManager.class)); + $(I18nUITranslationService.class), $(StateManager.class), $(SiteSignOutLink.class)); final TextEditorPanel panel = new TextEditorPanel(presenter, $(I18nTranslationService.class), $(WorkspaceSkeleton.class), $(ColorWebSafePalette.class)); presenter.init(panel); Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java 2008-11-05 22:07:07 UTC (rev 940) @@ -18,7 +18,7 @@ * */package org.ourproject.kune.platf.client.services; -import org.ourproject.kune.chat.client.ChatClientTool; +import org.ourproject.kune.chat.client.ChatEngine; import org.ourproject.kune.platf.client.actions.ActionManager; import org.ourproject.kune.platf.client.actions.ContentIconsRegistry; import org.ourproject.kune.platf.client.actions.UserActionRegistry; @@ -334,7 +334,7 @@ final GroupMembersSummaryPresenter presenter = new GroupMembersSummaryPresenter( $(I18nUITranslationService.class), $(StateManager.class), $(ImageUtils.class), $(Session.class), $$(SocialNetworkServiceAsync.class), $$(GroupLiveSearcher.class), - $(WsThemePresenter.class)); + $(WsThemePresenter.class), $$(ChatEngine.class)); final GroupMembersSummaryView view = new GroupMembersSummaryPanel(presenter, $(I18nUITranslationService.class), $(WorkspaceSkeleton.class)); presenter.init(view); @@ -359,7 +359,7 @@ public BuddiesSummary create() { final BuddiesSummaryPresenter presenter = new BuddiesSummaryPresenter($(StateManager.class), $(Session.class), $(UserActionRegistry.class), $(I18nTranslationService.class), - $$(ChatClientTool.class)); + $$(ChatEngine.class)); final BuddiesSummaryPanel panel = new BuddiesSummaryPanel(presenter, $(WorkspaceSkeleton.class), $(I18nTranslationService.class), $(ActionManager.class)); presenter.init(panel); Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/state/BeforeActionListener.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/state/BeforeActionListener.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/platf/client/state/BeforeActionListener.java 2008-11-05 22:07:07 UTC (rev 940) @@ -1,7 +0,0 @@ -package org.ourproject.kune.platf.client.state; - -public interface BeforeActionListener { - - boolean beforeAction(); - -} Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/state/BeforeStateChangeCollection.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/state/BeforeStateChangeCollection.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/platf/client/state/BeforeStateChangeCollection.java 2008-11-05 22:07:07 UTC (rev 940) @@ -1,9 +0,0 @@ -package org.ourproject.kune.platf.client.state; - -import java.util.ArrayList; - -public class BeforeStateChangeCollection extends ArrayList<BeforeActionListener> { - - private static final long serialVersionUID = 1L; - -} Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java 2008-11-05 22:07:07 UTC (rev 940) @@ -19,6 +19,7 @@ */ package org.ourproject.kune.platf.client.state; +import org.ourproject.kune.platf.client.actions.BeforeActionListener; import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO; import org.ourproject.kune.platf.client.dto.StateAbstractDTO; import org.ourproject.kune.platf.client.dto.StateToken; 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-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java 2008-11-05 22:07:07 UTC (rev 940) @@ -21,6 +21,8 @@ import java.util.HashMap; +import org.ourproject.kune.platf.client.actions.BeforeActionCollection; +import org.ourproject.kune.platf.client.actions.BeforeActionListener; import org.ourproject.kune.platf.client.app.HistoryWrapper; import org.ourproject.kune.platf.client.dto.ParticipationDataDTO; import org.ourproject.kune.platf.client.dto.SocialNetworkDTO; @@ -55,7 +57,7 @@ private final Event<StateAbstractDTO> onSocialNetworkChanged; private final Event2<String, String> onToolChanged; private final Event2<String, String> onGroupChanged; - private final BeforeStateChangeCollection beforeStateChangeCollection; + private final BeforeActionCollection beforeStateChangeCollection; public StateManagerDefault(final ContentProvider contentProvider, final Session session, final HistoryWrapper history) { @@ -84,7 +86,7 @@ } }); siteTokens = new HashMap<String, Listener0>(); - beforeStateChangeCollection = new BeforeStateChangeCollection(); + beforeStateChangeCollection = new BeforeActionCollection(); } public void addBeforeStateChangeListener(BeforeActionListener listener) { @@ -109,7 +111,7 @@ } public void onHistoryChanged(final String historyToken) { - if (beforeStateListenersAllowChange()) { + if (beforeStateChangeCollection.checkBeforeAction()) { final Listener0 tokenListener = siteTokens.get(historyToken); Log.debug("StateManager: history token changed (" + historyToken + ")"); if (tokenListener == null) { @@ -199,15 +201,6 @@ previousToken = newState.getStateToken(); } - private boolean beforeStateListenersAllowChange() { - for (BeforeActionListener listener : beforeStateChangeCollection) { - if (!listener.beforeAction()) { - return false; - } - } - return true; - } - private void checkGroupAndToolChange(final StateAbstractDTO newState) { final String previousGroup = previousToken == null ? "" : previousToken.getGroup(); final String newGroup = newState.getStateToken().getGroup(); Added: trunk/src/main/java/org/ourproject/kune/platf/client/tool/FoldableAbstractClientTool.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/tool/FoldableAbstractClientTool.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/platf/client/tool/FoldableAbstractClientTool.java 2008-11-05 22:07:07 UTC (rev 940) @@ -0,0 +1,27 @@ +package org.ourproject.kune.platf.client.tool; + +import org.ourproject.kune.platf.client.actions.ContentIconsRegistry; +import org.ourproject.kune.platf.client.actions.DragDropContentRegistry; +import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; +import org.ourproject.kune.workspace.client.themes.WsThemePresenter; + +public abstract class FoldableAbstractClientTool extends AbstractClientTool { + protected final DragDropContentRegistry dragDropContentRegistry; + protected final ContentIconsRegistry contentIconsRegistry; + + public FoldableAbstractClientTool(String shortName, String longName, ToolSelector toolSelector, + WsThemePresenter wsThemePresenter, WorkspaceSkeleton ws, final ContentIconsRegistry contentIconsRegistry, + final DragDropContentRegistry dragDropContentRegistry) { + super(shortName, longName, toolSelector, wsThemePresenter, ws); + this.dragDropContentRegistry = dragDropContentRegistry; + this.contentIconsRegistry = contentIconsRegistry; + registerDragDropTypes(); + registerIcons(); + } + + protected void registerDragDropTypes() { + } + + protected void registerIcons() { + } +} Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java 2008-11-05 22:07:07 UTC (rev 940) @@ -244,15 +244,13 @@ @Override public void setHeight(final int height) { super.setHeight(height); - // grid.setHeight(height); doLayoutIfNeeded(); } @Override public void setWidth(final int width) { // grid.setWidth(width - 27); - grid.setWidth(width - 27); - // super.setWidth(width - 11); + super.setWidth(width); doLayoutIfNeeded(); } Deleted: trunk/src/main/java/org/ourproject/kune/platf/public/images/chat.png =================================================================== (Binary files differ) Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java 2008-11-05 22:07:07 UTC (rev 940) @@ -24,12 +24,13 @@ import org.ourproject.kune.platf.client.actions.ActionItemCollection; import org.ourproject.kune.platf.client.actions.ActionToolbarButtonDescriptor; import org.ourproject.kune.platf.client.actions.ActionToolbarPosition; +import org.ourproject.kune.platf.client.actions.BeforeActionListener; import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbar; import org.ourproject.kune.platf.client.dto.AccessRolDTO; import org.ourproject.kune.platf.client.dto.StateToken; -import org.ourproject.kune.platf.client.state.BeforeActionListener; import org.ourproject.kune.platf.client.state.StateManager; import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; +import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignOutLink; import com.calclab.suco.client.listener.Listener; import com.calclab.suco.client.listener.Listener0; @@ -52,13 +53,15 @@ private final I18nUITranslationService i18n; private final BeforeActionListener beforeStateChangeListener; private final StateManager stateManager; + private final SiteSignOutLink siteSignOutLink; public TextEditorPresenter(final boolean isAutoSave, final ActionToolbar<StateToken> toolbar, - final I18nUITranslationService i18n, StateManager stateManager) { + final I18nUITranslationService i18n, StateManager stateManager, SiteSignOutLink siteSignOutLink) { this.toolbar = toolbar; autoSave = isAutoSave; this.i18n = i18n; this.stateManager = stateManager; + this.siteSignOutLink = siteSignOutLink; savePending = false; editingHtml = false; saveAndCloseConfirmed = false; @@ -78,6 +81,7 @@ view.attach(); setContent(content); stateManager.addBeforeStateChangeListener(beforeStateChangeListener); + siteSignOutLink.addBeforeSignOut(beforeStateChangeListener); } public String getContent() { @@ -142,6 +146,7 @@ protected void onCancelConfirmed() { stateManager.removeBeforeStateChangeListener(beforeStateChangeListener); + siteSignOutLink.removeBeforeSignOut(beforeStateChangeListener); stateManager.resumeTokenChange(); reset(); view.detach(); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLink.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLink.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLink.java 2008-11-05 22:07:07 UTC (rev 940) @@ -18,6 +18,12 @@ * */package org.ourproject.kune.workspace.client.sitebar.sitesign; +import org.ourproject.kune.platf.client.actions.BeforeActionListener; + public interface SiteSignOutLink { + void addBeforeSignOut(BeforeActionListener listener); + + void removeBeforeSignOut(BeforeActionListener listener); + } 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 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPresenter.java 2008-11-05 22:07:07 UTC (rev 940) @@ -21,6 +21,8 @@ import java.util.Date; import org.ourproject.kune.platf.client.View; +import org.ourproject.kune.platf.client.actions.BeforeActionCollection; +import org.ourproject.kune.platf.client.actions.BeforeActionListener; import org.ourproject.kune.platf.client.dto.UserInfoDTO; import org.ourproject.kune.platf.client.errors.SessionExpiredException; import org.ourproject.kune.platf.client.errors.UserMustBeLoggedException; @@ -41,6 +43,7 @@ private SiteSignOutLinkView view; private final Session session; private final Provider<UserServiceAsync> userServiceProvider; + private final BeforeActionCollection beforeSignOutCollection; public SiteSignOutLinkPresenter(final Session session, final Provider<UserServiceAsync> userServiceProvider, final Provider<KuneErrorHandler> kuneErrorHandlerProvider) { @@ -61,31 +64,39 @@ clientUIsignOut(); } }); + beforeSignOutCollection = new BeforeActionCollection(); } + public void addBeforeSignOut(BeforeActionListener listener) { + beforeSignOutCollection.add(listener); + } + public void doSignOut() { - final AsyncCallback<Object> callback = new AsyncCallback<Object>() { - public void onFailure(final Throwable caught) { - Site.hideProgress(); - try { - throw caught; - } catch (final SessionExpiredException e) { + if (beforeSignOutCollection.checkBeforeAction()) { + userServiceProvider.get().logout(session.getUserHash(), new AsyncCallback<Object>() { + public void onFailure(final Throwable caught) { + Site.hideProgress(); + try { + throw caught; + } catch (final SessionExpiredException e) { + clientUIsignOut(); + } catch (final UserMustBeLoggedException e) { + clientUIsignOut(); + } catch (final Throwable e) { + GWT.log("Other kind of exception in doLogout", null); + throw new RuntimeException(); + } + } + + public void onSuccess(final Object arg0) { + Site.hideProgress(); clientUIsignOut(); - } catch (final UserMustBeLoggedException e) { - clientUIsignOut(); - } catch (final Throwable e) { - GWT.log("Other kind of exception in doLogout", null); - throw new RuntimeException(); } - } - public void onSuccess(final Object arg0) { - Site.hideProgress(); - clientUIsignOut(); - } - - }; - userServiceProvider.get().logout(session.getUserHash(), callback); + }); + } else { + Site.hideProgress(); + } } public View getView() { @@ -97,6 +108,10 @@ view.setVisible(false); } + public void removeBeforeSignOut(BeforeActionListener listener) { + beforeSignOutCollection.remove(listener); + } + private void clientUIsignOut() { // FIXME: Remove cookie doesn't works in all browsers, know // issue: Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java 2008-11-05 22:07:07 UTC (rev 940) @@ -20,7 +20,7 @@ import java.util.List; -import org.ourproject.kune.chat.client.ChatClientTool; +import org.ourproject.kune.chat.client.ChatEngine; import org.ourproject.kune.platf.client.View; import org.ourproject.kune.platf.client.actions.ActionEnableCondition; import org.ourproject.kune.platf.client.actions.ActionMenuItemDescriptor; @@ -46,16 +46,16 @@ private final StateManager stateManager; private final UserActionRegistry actionRegistry; private final I18nTranslationService i18n; - private final Provider<ChatClientTool> chatClientToolProvider; + private final Provider<ChatEngine> chatEngineProvider; private final Session session; public BuddiesSummaryPresenter(StateManager stateManager, final Session session, UserActionRegistry actionRegistry, - I18nTranslationService i18n, final Provider<ChatClientTool> chatClientToolProvider) { + I18nTranslationService i18n, final Provider<ChatEngine> chatEngineProvider) { this.stateManager = stateManager; this.session = session; this.actionRegistry = actionRegistry; this.i18n = i18n; - this.chatClientToolProvider = chatClientToolProvider; + this.chatEngineProvider = chatEngineProvider; stateManager.onStateChanged(new Listener<StateAbstractDTO>() { public void onEvent(StateAbstractDTO state) { setState(state); @@ -118,7 +118,7 @@ final ActionToolbarButtonAndItemDescriptor<UserSimpleDTO> addAsBuddie = new ActionToolbarButtonAndItemDescriptor<UserSimpleDTO>( AccessRolDTO.Viewer, ActionToolbarPosition.bottombar, new Listener<UserSimpleDTO>() { public void onEvent(final UserSimpleDTO group) { - chatClientToolProvider.get().getChat().addNewBuddie(group.getShortName()); + chatEngineProvider.get().addNewBuddie(group.getShortName()); } }); addAsBuddie.setMustBeAuthenticated(true); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2008-11-05 22:07:07 UTC (rev 940) @@ -20,10 +20,12 @@ import java.util.List; +import org.ourproject.kune.chat.client.ChatEngine; import org.ourproject.kune.platf.client.dto.AccessListsDTO; import org.ourproject.kune.platf.client.dto.AccessRightsDTO; import org.ourproject.kune.platf.client.dto.GroupDTO; import org.ourproject.kune.platf.client.dto.GroupType; +import org.ourproject.kune.platf.client.dto.InitDataDTO; import org.ourproject.kune.platf.client.dto.LinkDTO; import org.ourproject.kune.platf.client.dto.SocialNetworkDTO; import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO; @@ -34,6 +36,7 @@ import org.ourproject.kune.platf.client.services.ImageUtils; import org.ourproject.kune.platf.client.state.Session; import org.ourproject.kune.platf.client.state.StateManager; +import org.ourproject.kune.platf.client.ui.MenuItem; import org.ourproject.kune.platf.client.ui.gridmenu.GridButton; import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup; import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; @@ -42,6 +45,7 @@ import org.ourproject.kune.workspace.client.themes.WsTheme; import org.ourproject.kune.workspace.client.themes.WsThemePresenter; +import com.calclab.emite.core.client.xmpp.stanzas.XmppURI; import com.calclab.suco.client.ioc.Provider; import com.calclab.suco.client.listener.Listener; import com.calclab.suco.client.listener.Listener2; @@ -61,7 +65,8 @@ public GroupMembersSummaryPresenter(final I18nUITranslationService i18n, final StateManager stateManager, final ImageUtils imageUtils, final Session session, final Provider<SocialNetworkServiceAsync> snServiceProvider, - final Provider<GroupLiveSearcher> liveSearcherProvider, final WsThemePresenter wsThemePresenter) { + final Provider<GroupLiveSearcher> liveSearcherProvider, final WsThemePresenter wsThemePresenter, + final Provider<ChatEngine> chatEngineProvider) { super(i18n, stateManager, imageUtils, session, snServiceProvider); this.i18n = i18n; this.stateManager = stateManager; @@ -79,6 +84,22 @@ view.setTheme(oldTheme, newTheme); } }); + session.onInitDataReceived(new Listener<InitDataDTO>() { + public void onEvent(final InitDataDTO initData) { + addUserOperation(new MenuItem<GroupDTO>("images/new-chat.gif", i18n.t("Start a chat with this member"), + new Listener<GroupDTO>() { + public void onEvent(final GroupDTO group) { + chatEngineProvider.get().show(); + if (chatEngineProvider.get().isLoggedIn()) { + chatEngineProvider.get().chat( + XmppURI.jid(group.getShortName() + "@" + initData.getChatDomain())); + } else { + Site.important(i18n.t("To start a chat you need to be 'online'.")); + } + } + }), true); + } + }); final String adminsTitle = i18n.t("Admins"); final String collabsTitle = i18n.t("Collaborators"); final String pendingTitle = i18n.t("Pending"); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntitySubTitlePresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntitySubTitlePresenter.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntitySubTitlePresenter.java 2008-11-05 22:07:07 UTC (rev 940) @@ -44,6 +44,9 @@ setState((StateContentDTO) state); } else if (state instanceof StateContainerDTO) { setState((StateContainerDTO) state); + } else { + view.setContentSubTitleLeftVisible(false); + view.setContentSubTitleRightVisible(false); } } }); Modified: trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java =================================================================== --- trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java 2008-11-05 22:07:07 UTC (rev 940) @@ -5,6 +5,7 @@ import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; +import org.ourproject.kune.platf.client.actions.BeforeActionListener; import org.ourproject.kune.platf.client.app.HistoryWrapper; import org.ourproject.kune.platf.client.dto.StateAbstractDTO; import org.ourproject.kune.platf.client.dto.StateToken; Modified: trunk/src/test/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenterTest.java =================================================================== --- trunk/src/test/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenterTest.java 2008-11-04 15:07:14 UTC (rev 939) +++ trunk/src/test/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenterTest.java 2008-11-05 22:07:07 UTC (rev 940) @@ -9,6 +9,7 @@ import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbar; import org.ourproject.kune.platf.client.state.StateManager; import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; +import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignOutLink; import com.calclab.suco.testing.listener.MockListener; import com.calclab.suco.testing.listener.MockListener0; @@ -21,6 +22,7 @@ @SuppressWarnings("unchecked") private ActionToolbar toolbar; private StateManager stateManager; + private SiteSignOutLink signOutLink; @SuppressWarnings("unchecked") @Before @@ -28,7 +30,8 @@ I18nUITranslationService i18n = Mockito.mock(I18nUITranslationService.class); stateManager = Mockito.mock(StateManager.class); toolbar = Mockito.mock(ActionToolbar.class); - presenter = new TextEditorPresenter(true, toolbar, i18n, stateManager); + signOutLink = Mockito.mock(SiteSignOutLink.class); + presenter = new TextEditorPresenter(true, toolbar, i18n, stateManager, signOutLink); view = Mockito.mock(TextEditorView.class); presenter.init(view); saveListener = new MockListener<String>();
participants (1)
-
vjrj