r1349 - in trunk/src: main/java/cc/kune/blogs/client main/java/cc/kune/blogs/client/actions main/java/cc/kune/chat/client main/java/cc/kune/client main/java/cc/kune/common/client main/java/cc/kune/common/client/actions/gwtui main/java/cc/kune/core/client main/java/cc/kune/core/client/events main/java/cc/kune/core/public main/java/cc/kune/core/public/images main/java/cc/kune/core/public/images/ie6 main/java/cc/kune/docs/client main/java/cc/kune/docs/client/actions main/java/cc/kune/domain main
Author: vjrj_ Date: 2011-05-06 01:52:34 +0200 (Fri, 06 May 2011) New Revision: 1349 Added: trunk/src/main/java/cc/kune/common/client/ExtendedGinModule.java trunk/src/main/java/cc/kune/core/client/events/ trunk/src/main/java/cc/kune/core/client/events/AvatarChangedEvent.java trunk/src/main/java/cc/kune/core/client/events/RenameContentEvent.java trunk/src/main/java/cc/kune/core/public/images/ie6/ trunk/src/main/java/cc/kune/core/public/images/ie6/corner_dialog_topleft.png trunk/src/main/java/cc/kune/core/public/images/ie6/corner_dialog_topright.png trunk/src/main/java/cc/kune/core/public/images/ie6/hborder_blue_shadow.png trunk/src/main/java/cc/kune/core/public/images/ie6/hborder_gray_shadow.png trunk/src/main/java/cc/kune/core/public/images/ie6/vborder_blue_shadow.png trunk/src/main/java/cc/kune/core/public/images/ie6/vborder_gray_shadow.png trunk/src/main/java/cc/kune/gspace/client/actions/ContentViewerOptionsMenu.java trunk/src/main/java/cc/kune/gspace/client/actions/GotoTokenAction.java trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPanel.java trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPanel.ui.xml trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java trunk/src/test/java/cc/kune/gspace/client/viewers/ trunk/src/test/java/cc/kune/gspace/client/viewers/FolderViewerPresenterTest.java Removed: trunk/src/main/java/cc/kune/blogs/client/actions/ContentViewerOptionsMenu.java trunk/src/main/java/cc/kune/client/ExtendedGinModule.java trunk/src/main/java/cc/kune/gspace/client/viewers/DocViewerPanel.java trunk/src/main/java/cc/kune/gspace/client/viewers/DocViewerPanel.ui.xml trunk/src/main/java/cc/kune/gspace/client/viewers/DocViewerPresenter.java Modified: trunk/src/main/java/cc/kune/blogs/client/BlogsClientTool.java trunk/src/main/java/cc/kune/blogs/client/BlogsParts.java trunk/src/main/java/cc/kune/blogs/client/actions/BlogsClientActions.java trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtButtonGui.java trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtPushButtonGui.java trunk/src/main/java/cc/kune/core/client/CoreGinModule.java trunk/src/main/java/cc/kune/core/public/ws.css trunk/src/main/java/cc/kune/docs/client/DocsClientTool.java trunk/src/main/java/cc/kune/docs/client/DocsParts.java trunk/src/main/java/cc/kune/docs/client/actions/DocsClientActions.java trunk/src/main/java/cc/kune/domain/Container.java trunk/src/main/java/cc/kune/gspace/client/GSpaceGinModule.java trunk/src/main/java/cc/kune/gspace/client/GSpaceGinjector.java trunk/src/main/java/cc/kune/gspace/client/GSpaceParts.java trunk/src/main/java/cc/kune/gspace/client/actions/RefreshContentMenuItem.java trunk/src/main/java/cc/kune/gspace/client/actions/RenameAction.java trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptionsLogoPresenter.java trunk/src/main/java/cc/kune/gspace/client/options/logo/GroupOptionsLogoPresenter.java trunk/src/main/java/cc/kune/gspace/client/options/logo/UserOptionsLogoPresenter.java trunk/src/main/java/cc/kune/gspace/client/resources/wsArmor.css trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerPresenter.java trunk/src/test/java/cc/kune/core/server/manager/ContentManagerTest.java Log: Folder navigator and some fixes Modified: trunk/src/main/java/cc/kune/blogs/client/BlogsClientTool.java =================================================================== --- trunk/src/main/java/cc/kune/blogs/client/BlogsClientTool.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/blogs/client/BlogsClientTool.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -34,36 +34,37 @@ public class BlogsClientTool extends FoldableAbstractClientTool { - private final NavResources navResources; + private final NavResources navResources; - @Inject - public BlogsClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector, - final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources) { - super(NAME, i18n.t("blogs"), toolSelector, cntCapRegistry); - this.navResources = navResources; + @Inject + public BlogsClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector, + final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources) { + super(NAME, i18n.t("blogs"), toolSelector, cntCapRegistry); + this.navResources = navResources; - // registerAclEditableTypes(); - registerAuthorableTypes(TYPE_POST, TYPE_UPLOADEDFILE); - registerDragableTypes(TYPE_UPLOADEDFILE); - registerDropableTypes(TYPE_ROOT); - registerPublishModerableTypes(TYPE_POST, TYPE_UPLOADEDFILE); - registerRateableTypes(TYPE_POST, TYPE_UPLOADEDFILE); - registerRenamableTypes(TYPE_BLOG, TYPE_POST, TYPE_UPLOADEDFILE); - registerTageableTypes(TYPE_BLOG, TYPE_UPLOADEDFILE, TYPE_POST); - // registerTranslatableTypes(); + // registerAclEditableTypes(); + registerAuthorableTypes(TYPE_POST, TYPE_UPLOADEDFILE); + registerDragableTypes(TYPE_UPLOADEDFILE); + registerDropableTypes(TYPE_ROOT); + registerPublishModerableTypes(TYPE_POST, TYPE_UPLOADEDFILE); + registerRateableTypes(TYPE_POST, TYPE_UPLOADEDFILE); + registerRenamableTypes(TYPE_BLOG, TYPE_POST, TYPE_UPLOADEDFILE); + registerTageableTypes(TYPE_BLOG, TYPE_UPLOADEDFILE, TYPE_POST); + // registerTranslatableTypes(); - registerIcons(); - } + registerIcons(); + } - @Override - public String getName() { - return NAME; - } + @Override + public String getName() { + return NAME; + } - private void registerIcons() { - registerContentTypeIcon(TYPE_BLOG, navResources.blog()); - registerContentTypeIcon(TYPE_POST, navResources.post()); - registerUploadTypesAndMimes(TYPE_UPLOADEDFILE); - } + private void registerIcons() { + registerContentTypeIcon(TYPE_ROOT, navResources.blog()); + registerContentTypeIcon(TYPE_BLOG, navResources.blog()); + registerContentTypeIcon(TYPE_POST, navResources.post()); + registerUploadTypesAndMimes(TYPE_UPLOADEDFILE); + } } Modified: trunk/src/main/java/cc/kune/blogs/client/BlogsParts.java =================================================================== --- trunk/src/main/java/cc/kune/blogs/client/BlogsParts.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/blogs/client/BlogsParts.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -1,14 +1,23 @@ package cc.kune.blogs.client; +import cc.kune.blogs.client.actions.BlogsClientActions; +import cc.kune.blogs.shared.BlogsConstants; import cc.kune.core.client.state.Session; +import cc.kune.gspace.client.tool.ContentViewerSelector; +import cc.kune.gspace.client.viewers.ContentViewerPresenter; +import cc.kune.gspace.client.viewers.FolderViewerPresenter; import com.google.inject.Inject; import com.google.inject.Provider; public class BlogsParts { - @Inject - public BlogsParts(final Session session, final Provider<BlogsClientTool> clientTool) { - clientTool.get(); - } + @Inject + public BlogsParts(final Session session, final Provider<BlogsClientTool> clientTool, + final ContentViewerSelector viewerSelector, final BlogsClientActions blogsActions, + final ContentViewerPresenter contentViewer, final FolderViewerPresenter folderViewer) { + clientTool.get(); + viewerSelector.register(contentViewer, true, BlogsConstants.TYPE_POST); + viewerSelector.register(folderViewer, true, BlogsConstants.TYPE_ROOT, BlogsConstants.TYPE_BLOG); + } } \ No newline at end of file Modified: trunk/src/main/java/cc/kune/blogs/client/actions/BlogsClientActions.java =================================================================== --- trunk/src/main/java/cc/kune/blogs/client/actions/BlogsClientActions.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/blogs/client/actions/BlogsClientActions.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -30,6 +30,7 @@ import cc.kune.core.client.state.StateManager; import cc.kune.gspace.client.actions.AbstractFoldableToolActions; import cc.kune.gspace.client.actions.ActionGroups; +import cc.kune.gspace.client.actions.ContentViewerOptionsMenu; import cc.kune.gspace.client.actions.ParticipateInContentBtn; import cc.kune.gspace.client.actions.RefreshContentMenuItem; import cc.kune.gspace.client.actions.SetAsHomePageMenuItem; @@ -57,11 +58,11 @@ final Provider<DelBlogMenuItem> delFolderMenuItem, final Provider<SetAsHomePageMenuItem> setAsHomePage) { super(session, stateManager, i18n, registry); + actionsRegistry.addAction(ActionGroups.VIEW, optionsMenuContent, all); + actionsRegistry.addAction(ActionGroups.VIEW, refresh, all); actionsRegistry.addAction(ActionGroups.VIEW, folderGoUp, contents); actionsRegistry.addAction(ActionGroups.VIEW, folderGoUp, containersNoRoot); - actionsRegistry.addAction(ActionGroups.VIEW, optionsMenuContent, all); actionsRegistry.addAction(ActionGroups.VIEW, participateBtn, contents); - actionsRegistry.addAction(ActionGroups.VIEW, refresh, all); actionsRegistry.addAction(ActionGroups.VIEW, newDocBtn, containersNoRoot); actionsRegistry.addAction(ActionGroups.VIEW, newFolderBtn, TYPE_ROOT); actionsRegistry.addAction(ActionGroups.MENUITEM, openContentMenuItem, contents); Deleted: trunk/src/main/java/cc/kune/blogs/client/actions/ContentViewerOptionsMenu.java =================================================================== --- trunk/src/main/java/cc/kune/blogs/client/actions/ContentViewerOptionsMenu.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/blogs/client/actions/ContentViewerOptionsMenu.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -1,16 +0,0 @@ -package cc.kune.blogs.client.actions; - -import cc.kune.common.client.actions.ui.descrip.MenuDescriptor; -import cc.kune.core.client.resources.CoreResources; - -import com.google.inject.Inject; - -public class ContentViewerOptionsMenu extends MenuDescriptor { - - @Inject - public ContentViewerOptionsMenu(final CoreResources res) { - super(); - this.withIcon(res.arrowdownsitebar()).withStyles("k-def-docbtn, k-fr, k-noborder, k-nobackcolor"); - } - -} Modified: trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java =================================================================== --- trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -38,6 +38,7 @@ import cc.kune.common.client.shortcuts.GlobalShortcutRegister; import cc.kune.common.client.utils.TextUtils; import cc.kune.common.client.utils.WindowUtils; +import cc.kune.core.client.events.AvatarChangedEvent; import cc.kune.core.client.init.AppStartEvent; import cc.kune.core.client.init.AppStopEvent; import cc.kune.core.client.sitebar.SitebarActions; @@ -80,371 +81,380 @@ public class ChatClientDefault implements ChatClient { - public class ChatClientAction extends AbstractExtendedAction { + public class ChatClientAction extends AbstractExtendedAction { - private final EventBus eventBus; - private final ChatResources res; + private final EventBus eventBus; + private final ChatResources res; - public ChatClientAction(final EventBus eventBus, final ChatResources res) { - super(); - this.eventBus = eventBus; - this.res = res; - putValue(Action.SMALL_ICON, res.chat()); + public ChatClientAction(final EventBus eventBus, final ChatResources res) { + super(); + this.eventBus = eventBus; + this.res = res; + putValue(Action.SMALL_ICON, res.chat()); - } + } - @Override - public void actionPerformed(final ActionEvent event) { - eventBus.fireEvent(new ToggleShowChatDialogEvent()); - } + @Override + public void actionPerformed(final ActionEvent event) { + eventBus.fireEvent(new ToggleShowChatDialogEvent()); + } - public void setBlink(final boolean blink) { - final ImageResource icon = blink ? res.chatBlink() : res.chat(); - putValue(Action.SMALL_ICON, icon); - dialog.setIcon(AbstractImagePrototype.create(icon)); - } - + public void setBlink(final boolean blink) { + final ImageResource icon = blink ? res.chatBlink() : res.chat(); + putValue(Action.SMALL_ICON, icon); + dialog.setIcon(AbstractImagePrototype.create(icon)); } - protected static final String CHAT_CLIENT_ICON_ID = "k-chat-icon-id"; + } - private static final String CHAT_TITLE = "Chat ;)"; + protected static final String CHAT_CLIENT_ICON_ID = "k-chat-icon-id"; - private final ChatClientAction action; - protected IconLabelDescriptor chatIcon; - private final ChatManager chatManager; - private final ChatOptions chatOptions; - private final ChatResources chatResources; - private Dialog dialog; - private final EventBus eventBus; - private final I18nTranslationService i18n; - private final RoomManager roomManager; - private final XmppRoster roster; - private final Session session; - private final GlobalShortcutRegister shorcutRegister; - private final SitebarActions siteActions; + private static final String CHAT_TITLE = "Chat ;)"; - private final XmppSession xmppSession; + private final ChatClientAction action; + protected IconLabelDescriptor chatIcon; + private final ChatManager chatManager; + private final ChatOptions chatOptions; + private final ChatResources chatResources; + private Dialog dialog; + private final EventBus eventBus; + private final I18nTranslationService i18n; + private final RoomManager roomManager; + private final XmppRoster roster; + private final Session session; + private final GlobalShortcutRegister shorcutRegister; + private final SitebarActions siteActions; - @Inject - public ChatClientDefault(final EventBus eventBus, final I18nTranslationService i18n, - final SitebarActions siteActions, final Session session, final GlobalShortcutRegister shorcutRegister, - final ChatOptions chatOptions, final ChatResources chatResources) { + private final XmppSession xmppSession; - this.eventBus = eventBus; - this.i18n = i18n; - action = new ChatClientAction(eventBus, chatResources); - this.siteActions = siteActions; - this.session = session; - this.shorcutRegister = shorcutRegister; - this.chatOptions = chatOptions; - this.chatResources = chatResources; - chatResources.css().ensureInjected(); - this.xmppSession = Suco.get(XmppSession.class); - this.roster = Suco.get(XmppRoster.class); - this.chatManager = Suco.get(ChatManager.class); - this.roomManager = Suco.get(RoomManager.class); - Suco.get(SessionReconnect.class); + @Inject + public ChatClientDefault(final EventBus eventBus, final I18nTranslationService i18n, + final SitebarActions siteActions, final Session session, + final GlobalShortcutRegister shorcutRegister, final ChatOptions chatOptions, + final ChatResources chatResources) { - session.onAppStart(true, new AppStartEvent.AppStartHandler() { - @Override - public void onAppStart(final AppStartEvent event) { - chatOptions.domain = event.getInitData().getChatDomain(); - chatOptions.httpBase = event.getInitData().getChatHttpBase(); - chatOptions.roomHost = event.getInitData().getChatRoomHost(); - checkChatDomain(chatOptions.domain); - session.onUserSignIn(true, new UserSignInHandler() { - @Override - public void onUserSignIn(final UserSignInEvent event) { - doLogin(); - } - }); - session.onUserSignOut(true, new UserSignOutHandler() { - @Override - public void onUserSignOut(final UserSignOutEvent event) { - createActionIfNeeded(); - chatIcon.setVisible(false); - logout(); - } - }); - eventBus.addHandler(ShowChatDialogEvent.getType(), new ShowChatDialogHandler() { - @Override - public void onShowChatDialog(final ShowChatDialogEvent event) { - createActionIfNeeded(); - showDialog(event.show); - } - }); - eventBus.addHandler(ToggleShowChatDialogEvent.getType(), new ToggleShowChatDialogHandler() { - @Override - public void onToggleShowChatDialog(final ToggleShowChatDialogEvent event) { - toggleShowDialog(); - } - }); - } + this.eventBus = eventBus; + this.i18n = i18n; + action = new ChatClientAction(eventBus, chatResources); + this.siteActions = siteActions; + this.session = session; + this.shorcutRegister = shorcutRegister; + this.chatOptions = chatOptions; + this.chatResources = chatResources; + chatResources.css().ensureInjected(); + this.xmppSession = Suco.get(XmppSession.class); + this.roster = Suco.get(XmppRoster.class); + this.chatManager = Suco.get(ChatManager.class); + this.roomManager = Suco.get(RoomManager.class); + Suco.get(SessionReconnect.class); + + session.onAppStart(true, new AppStartEvent.AppStartHandler() { + @Override + public void onAppStart(final AppStartEvent event) { + chatOptions.domain = event.getInitData().getChatDomain(); + chatOptions.httpBase = event.getInitData().getChatHttpBase(); + chatOptions.roomHost = event.getInitData().getChatRoomHost(); + checkChatDomain(chatOptions.domain); + session.onUserSignIn(true, new UserSignInHandler() { + @Override + public void onUserSignIn(final UserSignInEvent event) { + doLogin(); + } }); - eventBus.addHandler(AppStopEvent.getType(), new AppStopEvent.AppStopHandler() { - @Override - public void onAppStop(final AppStopEvent event) { - logout(); - } + session.onUserSignOut(true, new UserSignOutHandler() { + @Override + public void onUserSignOut(final UserSignOutEvent event) { + createActionIfNeeded(); + chatIcon.setVisible(false); + logout(); + } }); - } + eventBus.addHandler(ShowChatDialogEvent.getType(), new ShowChatDialogHandler() { + @Override + public void onShowChatDialog(final ShowChatDialogEvent event) { + createActionIfNeeded(); + showDialog(event.show); + } + }); + eventBus.addHandler(ToggleShowChatDialogEvent.getType(), new ToggleShowChatDialogHandler() { + @Override + public void onToggleShowChatDialog(final ToggleShowChatDialogEvent event) { + toggleShowDialog(); + } + }); + eventBus.addHandler(AvatarChangedEvent.getType(), new AvatarChangedEvent.AvatarChangedHandler() { - @Override - public void addNewBuddie(final String shortName) { - roster.requestAddItem(uriFrom(shortName), shortName, ""); - } + @Override + public void onAvatarChanged(final AvatarChangedEvent event) { + setAvatar(event.getPhotoBinary()); + } + }); + } + }); + eventBus.addHandler(AppStopEvent.getType(), new AppStopEvent.AppStopHandler() { + @Override + public void onAppStop(final AppStopEvent event) { + logout(); + } + }); + } - @Override - public void chat(final String shortName) { - chat(uriFrom(shortName)); - } + @Override + public void addNewBuddie(final String shortName) { + roster.requestAddItem(uriFrom(shortName), shortName, ""); + } - @Override - public void chat(final XmppURI jid) { - chatManager.open(jid); - } + @Override + public void chat(final String shortName) { + chat(uriFrom(shortName)); + } - // Put this in Panel object - 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 cause problems with the chat functionality. " - + "Please check kune.properties on the server."); - } - } + @Override + public void chat(final XmppURI jid) { + chatManager.open(jid); + } - private void createActionIfNeeded() { - if (chatIcon == null) { - chatIcon = new IconLabelDescriptor(action); - chatIcon.setId(CHAT_CLIENT_ICON_ID); - chatIcon.setStyles("k-no-backimage, k-btn-sitebar, k-chat-icon"); - chatIcon.putValue(Action.NAME, i18n.t(CHAT_TITLE)); - chatIcon.putValue(Action.SHORT_DESCRIPTION, i18n.t("Show/hide the chat window")); - final KeyStroke shortcut = Shortcut.getShortcut(false, true, false, false, Character.valueOf('C')); - shorcutRegister.put(shortcut, action); - action.setShortcut(shortcut); - chatIcon.setVisible(session.isLogged()); - siteActions.getLeftToolbar().add( - new ToolbarSeparatorDescriptor(Type.spacer, SitebarActionsPresenter.LEFT_TOOLBAR)); - siteActions.getLeftToolbar().add( - new ToolbarSeparatorDescriptor(Type.spacer, SitebarActionsPresenter.LEFT_TOOLBAR)); - siteActions.getLeftToolbar().add( - new ToolbarSeparatorDescriptor(Type.spacer, SitebarActionsPresenter.LEFT_TOOLBAR)); - siteActions.getLeftToolbar().add(chatIcon); - } + // Put this in Panel object + 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 cause problems with the chat functionality. " + + "Please check kune.properties on the server."); } + } - private void createDialog(final KuneHablarWidget widget, final HtmlConfig htmlConfig) { - widget.addStyleName("k-chat-panel"); - setSize(widget, htmlConfig); - dialog.add(widget); + private void createActionIfNeeded() { + if (chatIcon == null) { + chatIcon = new IconLabelDescriptor(action); + chatIcon.setId(CHAT_CLIENT_ICON_ID); + chatIcon.setStyles("k-no-backimage, k-btn-sitebar, k-chat-icon"); + chatIcon.putValue(Action.NAME, i18n.t(CHAT_TITLE)); + chatIcon.putValue(Action.SHORT_DESCRIPTION, i18n.t("Show/hide the chat window")); + final KeyStroke shortcut = Shortcut.getShortcut(false, true, false, false, Character.valueOf('C')); + shorcutRegister.put(shortcut, action); + action.setShortcut(shortcut); + chatIcon.setVisible(session.isLogged()); + siteActions.getLeftToolbar().add( + new ToolbarSeparatorDescriptor(Type.spacer, SitebarActionsPresenter.LEFT_TOOLBAR)); + siteActions.getLeftToolbar().add( + new ToolbarSeparatorDescriptor(Type.spacer, SitebarActionsPresenter.LEFT_TOOLBAR)); + siteActions.getLeftToolbar().add( + new ToolbarSeparatorDescriptor(Type.spacer, SitebarActionsPresenter.LEFT_TOOLBAR)); + siteActions.getLeftToolbar().add(chatIcon); } + } - private void createDialogIfNeeded() { - if (dialog == null) { - dialog = new Dialog(); - dialog.setHeading(i18n.t(CHAT_TITLE)); - dialog.setClosable(true); - dialog.setResizable(true); - dialog.setButtons(""); - dialog.setBodyStyleName("k-chat-window"); - dialog.setScrollMode(Scroll.NONE); - dialog.setHideOnButtonClick(true); - dialog.setCollapsible(true); - // final Widget btn = (Widget) - // chatIcon.getValue(ParentWidget.PARENT_UI); - dialog.setPosition(118, 1); - dialog.setIcon(AbstractImagePrototype.create(chatResources.chat())); - // dialog.getItem(0).getFocusSupport().setIgnore(true); - initEmite(); - } - } + private void createDialog(final KuneHablarWidget widget, final HtmlConfig htmlConfig) { + widget.addStyleName("k-chat-panel"); + setSize(widget, htmlConfig); + dialog.add(widget); + } - private boolean dialogVisible() { - return dialog != null && dialog.isVisible(); + private void createDialogIfNeeded() { + if (dialog == null) { + dialog = new Dialog(); + dialog.setHeading(i18n.t(CHAT_TITLE)); + dialog.setClosable(true); + dialog.setResizable(true); + dialog.setButtons(""); + dialog.setBodyStyleName("k-chat-window"); + dialog.setScrollMode(Scroll.NONE); + dialog.setHideOnButtonClick(true); + dialog.setCollapsible(true); + // final Widget btn = (Widget) + // chatIcon.getValue(ParentWidget.PARENT_UI); + dialog.setPosition(118, 1); + dialog.setIcon(AbstractImagePrototype.create(chatResources.chat())); + // dialog.getItem(0).getFocusSupport().setIgnore(true); + initEmite(); } + } - @Override - public void doLogin() { - assert session.getCurrentUserInfo() != null; - doLogin(session.getCurrentUserInfo()); - } + private boolean dialogVisible() { + return dialog != null && dialog.isVisible(); + } - private void doLogin(final UserInfoDTO user) { - createActionIfNeeded(); - createDialogIfNeeded(); - chatOptions.username = user.getChatName(); - chatOptions.passwd = user.getChatPassword(); - chatOptions.resource = "emite-" + new Date().getTime() + "-kune"; - chatOptions.useruri = XmppURI.uri(chatOptions.username, chatOptions.domain, chatOptions.resource); - createActionIfNeeded(); - createDialogIfNeeded(); - chatIcon.setVisible(true); - login(chatOptions.useruri, chatOptions.passwd); - } + @Override + public void doLogin() { + assert session.getCurrentUserInfo() != null; + doLogin(session.getCurrentUserInfo()); + } - private void initEmite() { - loadIcons(chatResources); + private void doLogin(final UserInfoDTO user) { + createActionIfNeeded(); + createDialogIfNeeded(); + chatOptions.username = user.getChatName(); + chatOptions.passwd = user.getChatPassword(); + chatOptions.resource = "emite-" + new Date().getTime() + "-kune"; + chatOptions.useruri = XmppURI.uri(chatOptions.username, chatOptions.domain, chatOptions.resource); + createActionIfNeeded(); + createDialogIfNeeded(); + chatIcon.setVisible(true); + login(chatOptions.useruri, chatOptions.passwd); + } - final HablarConfig config = HablarConfig.getFromMeta(); - final HtmlConfig htmlConfig = HtmlConfig.getFromMeta(); - config.dockConfig.headerSize = 0; - config.dockConfig.rosterWidth = 150; - config.dockConfig.rosterDock = "left"; - final KuneHablarWidget widget = new KuneHablarWidget(config.layout, config.tabHeaderSize); - final Hablar hablar = widget.getHablar(); - HablarComplete.install(hablar, config); - new KuneHablarSignals(eventBus, xmppSession, hablar, action); - if (htmlConfig.hasLogger) { - new HablarConsole(hablar); - } + private void initEmite() { + loadIcons(chatResources); - if (htmlConfig.hasLogin) { - new HablarLogin(hablar, LoginConfig.getFromMeta()); - } - new KuneSoundManager(eventBus, config.soundConfig); - createDialog(widget, htmlConfig); + final HablarConfig config = HablarConfig.getFromMeta(); + final HtmlConfig htmlConfig = HtmlConfig.getFromMeta(); + config.dockConfig.headerSize = 0; + config.dockConfig.rosterWidth = 150; + config.dockConfig.rosterDock = "left"; + final KuneHablarWidget widget = new KuneHablarWidget(config.layout, config.tabHeaderSize); + final Hablar hablar = widget.getHablar(); + HablarComplete.install(hablar, config); + new KuneHablarSignals(eventBus, xmppSession, hablar, action); + if (htmlConfig.hasLogger) { + new HablarConsole(hablar); } - @Override - public boolean isBuddie(final String shortName) { - return isBuddie(uriFrom(shortName)); + if (htmlConfig.hasLogin) { + new HablarLogin(hablar, LoginConfig.getFromMeta()); } + new KuneSoundManager(eventBus, config.soundConfig); + createDialog(widget, htmlConfig); + } - @Override - public boolean isBuddie(final XmppURI jid) { - if (roster.isRosterReady()) { - if (roster.getItemByJID(jid) != null) { - return true; - } - } - return false; - } + @Override + public boolean isBuddie(final String shortName) { + return isBuddie(uriFrom(shortName)); + } - @Override - public boolean isLoggedIn() { - return xmppSession.isReady(); + @Override + public boolean isBuddie(final XmppURI jid) { + if (roster.isRosterReady()) { + if (roster.getItemByJID(jid) != null) { + return true; + } } + return false; + } - @Override - public Room joinRoom(final String roomName, final String userAlias) { - return joinRoom(roomName, null, userAlias); - } + @Override + public boolean isLoggedIn() { + return xmppSession.isReady(); + } - @Override - public Room joinRoom(final String roomName, final String subject, final String userAlias) { - Room room = null; - if (xmppSession.isReady()) { - final XmppURI roomURI = XmppURI.uri(roomName + "@" + chatOptions.roomHost + "/" + chatOptions.username); - room = roomManager.open(roomURI, roomManager.getDefaultHistoryOptions()); - if (TextUtils.notEmpty(subject)) { - RoomSubject.requestSubjectChange(room, subject); - } - } else { - NotifyUser.error(i18n.t("Error"), i18n.t("To join a chatroom you need to be 'online'"), true); - } - return room; - } + @Override + public Room joinRoom(final String roomName, final String userAlias) { + return joinRoom(roomName, null, userAlias); + } - public void loadIcons(final ChatResources others) { - final AltIconsBundle bundle = GWT.create(AltIconsBundle.class); - Icons.register(Icons.BUDDY_ADD, bundle.buddyAddIcon()); - Icons.register(Icons.BUDDY, bundle.buddyIcon()); - Icons.register(Icons.BUDDY_DND, others.busy()); - Icons.register(Icons.BUDDY_OFF, others.offline()); - Icons.register(Icons.BUDDY_ON, others.online()); - Icons.register(Icons.BUDDY_WAIT, others.away()); - Icons.register(Icons.ADD_CHAT, bundle.chatAddIcon()); - Icons.register(Icons.CHAT, others.xa()); - Icons.register(Icons.CLIPBOARD, bundle.clipboardIcon()); - Icons.register(Icons.CLOSE, bundle.closeIcon()); - Icons.register(Icons.CONSOLE, bundle.consoleIcon()); - Icons.register(Icons.ADD_GROUP, bundle.groupAddIcon()); - Icons.register(Icons.GROUP_CHAT, bundle.groupChatIcon()); - Icons.register(Icons.GROUP_CHAT_ADD, bundle.groupChatAddIcon()); - Icons.register(Icons.LOADING, bundle.loadingIcon()); - Icons.register(Icons.MENU, bundle.menuIcon()); - Icons.register(Icons.MISSING_ICON, bundle.missingIcon()); - Icons.register(Icons.NOT_CONNECTED, others.offline()); - Icons.register(Icons.CONNECTED, others.online()); - Icons.register(Icons.ROSTER, bundle.rosterIcon()); - Icons.register(Icons.SEARCH, bundle.searchIcon()); + @Override + public Room joinRoom(final String roomName, final String subject, final String userAlias) { + Room room = null; + if (xmppSession.isReady()) { + final XmppURI roomURI = XmppURI.uri(roomName + "@" + chatOptions.roomHost + "/" + + chatOptions.username); + room = roomManager.open(roomURI, roomManager.getDefaultHistoryOptions()); + if (TextUtils.notEmpty(subject)) { + RoomSubject.requestSubjectChange(room, subject); + } + } else { + NotifyUser.error(i18n.t("Error"), i18n.t("To join a chatroom you need to be 'online'"), true); } + return room; + } - @Override - public void login(final XmppURI uri, final String passwd) { - xmppSession.login(uri, passwd); - } + public void loadIcons(final ChatResources others) { + final AltIconsBundle bundle = GWT.create(AltIconsBundle.class); + Icons.register(Icons.BUDDY_ADD, bundle.buddyAddIcon()); + Icons.register(Icons.BUDDY, bundle.buddyIcon()); + Icons.register(Icons.BUDDY_DND, others.busy()); + Icons.register(Icons.BUDDY_OFF, others.offline()); + Icons.register(Icons.BUDDY_ON, others.online()); + Icons.register(Icons.BUDDY_WAIT, others.away()); + Icons.register(Icons.ADD_CHAT, bundle.chatAddIcon()); + Icons.register(Icons.CHAT, others.xa()); + Icons.register(Icons.CLIPBOARD, bundle.clipboardIcon()); + Icons.register(Icons.CLOSE, bundle.closeIcon()); + Icons.register(Icons.CONSOLE, bundle.consoleIcon()); + Icons.register(Icons.ADD_GROUP, bundle.groupAddIcon()); + Icons.register(Icons.GROUP_CHAT, bundle.groupChatIcon()); + Icons.register(Icons.GROUP_CHAT_ADD, bundle.groupChatAddIcon()); + Icons.register(Icons.LOADING, bundle.loadingIcon()); + Icons.register(Icons.MENU, bundle.menuIcon()); + Icons.register(Icons.MISSING_ICON, bundle.missingIcon()); + Icons.register(Icons.NOT_CONNECTED, others.offline()); + Icons.register(Icons.CONNECTED, others.online()); + Icons.register(Icons.ROSTER, bundle.rosterIcon()); + Icons.register(Icons.SEARCH, bundle.searchIcon()); + } - @Override - public boolean loginIfNecessary() { - if (!isLoggedIn()) { - doLogin(); - return true; - } - return false; - } + @Override + public void login(final XmppURI uri, final String passwd) { + xmppSession.login(uri, passwd); + } - @Override - public void logout() { - if (dialogVisible()) { - dialog.hide(); - } - if (isLoggedIn()) { - xmppSession.logout(); - } + @Override + public boolean loginIfNecessary() { + if (!isLoggedIn()) { + doLogin(); + return true; } + return false; + } - @Override - public XmppURI roomUriFrom(final String shortName) { - return XmppURI.jid(shortName + "@" + chatOptions.roomHost); + @Override + public void logout() { + if (dialogVisible()) { + dialog.hide(); } - - @Override - public void setAvatar(final String photoBinary) { - Suco.get(AvatarManager.class).setVCardAvatar(photoBinary); + if (isLoggedIn()) { + xmppSession.logout(); } + } - private void setSize(final Widget widget, final HtmlConfig htmlConfig) { + @Override + public XmppURI roomUriFrom(final String shortName) { + return XmppURI.jid(shortName + "@" + chatOptions.roomHost); + } - if (htmlConfig.width != null) { - widget.setWidth("98%"); - dialog.setWidth(htmlConfig.width); - } - if (htmlConfig.height != null) { - widget.setHeight("98%"); - dialog.setHeight(htmlConfig.height); - } - } + @Override + public void setAvatar(final String photoBinary) { + Suco.get(AvatarManager.class).setVCardAvatar(photoBinary); + } - @Override - public void show() { - showDialog(true); - } + private void setSize(final Widget widget, final HtmlConfig htmlConfig) { - private void showDialog(final boolean show) { - Log.info("Show dialog: " + show); - if (session.isLogged()) { - createDialogIfNeeded(); - if (show) { - dialog.show(); - dialog.setZIndex(0); - dialog.getHeader().setZIndex(0); - } else { - dialog.hide(); - } - } + if (htmlConfig.width != null) { + widget.setWidth("98%"); + dialog.setWidth(htmlConfig.width); } + if (htmlConfig.height != null) { + widget.setHeight("98%"); + dialog.setHeight(htmlConfig.height); + } + } - private void toggleShowDialog() { - Log.info("Toggle!"); - showDialog(dialog == null ? true : !dialogVisible()); + @Override + public void show() { + showDialog(true); + } + + private void showDialog(final boolean show) { + Log.info("Show dialog: " + show); + if (session.isLogged()) { + createDialogIfNeeded(); + if (show) { + dialog.show(); + dialog.setZIndex(0); + dialog.getHeader().setZIndex(0); + } else { + dialog.hide(); + } } + } - @Override - public XmppURI uriFrom(final String shortName) { - return XmppURI.jid(shortName + "@" + chatOptions.domain); - } + private void toggleShowDialog() { + Log.info("Toggle!"); + showDialog(dialog == null ? true : !dialogVisible()); + } + + @Override + public XmppURI uriFrom(final String shortName) { + return XmppURI.jid(shortName + "@" + chatOptions.domain); + } } Deleted: trunk/src/main/java/cc/kune/client/ExtendedGinModule.java =================================================================== --- trunk/src/main/java/cc/kune/client/ExtendedGinModule.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/client/ExtendedGinModule.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -1,20 +0,0 @@ -package cc.kune.client; - -import com.google.inject.Singleton; -import com.gwtplatform.mvp.client.gin.AbstractPresenterModule; - -public abstract class ExtendedGinModule extends AbstractPresenterModule { - - protected void eagle(final Class<?> type) { - bind(type).asEagerSingleton(); - } - - protected void s(final Class<?> type) { - bind(type).in(Singleton.class); - } - - protected <V, W> void s(final Class<V> type, final Class<? extends V> typeImpl) { - bind(type).to(typeImpl).in(Singleton.class); - } - -} Copied: trunk/src/main/java/cc/kune/common/client/ExtendedGinModule.java (from rev 1339, trunk/src/main/java/cc/kune/client/ExtendedGinModule.java) =================================================================== --- trunk/src/main/java/cc/kune/common/client/ExtendedGinModule.java (rev 0) +++ trunk/src/main/java/cc/kune/common/client/ExtendedGinModule.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -0,0 +1,20 @@ +package cc.kune.common.client; + +import com.google.inject.Singleton; +import com.gwtplatform.mvp.client.gin.AbstractPresenterModule; + +public abstract class ExtendedGinModule extends AbstractPresenterModule { + + protected void eagle(final Class<?> type) { + bind(type).asEagerSingleton(); + } + + protected void s(final Class<?> type) { + bind(type).in(Singleton.class); + } + + protected <V, W> void s(final Class<V> type, final Class<? extends V> typeImpl) { + bind(type).to(typeImpl).in(Singleton.class); + } + +} Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtButtonGui.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtButtonGui.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtButtonGui.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -48,6 +48,10 @@ this(null, false); } + public AbstractGwtButtonGui(final boolean enableTongle) { + this(null, enableTongle); + } + public AbstractGwtButtonGui(final ButtonDescriptor buttonDescriptor) { this(buttonDescriptor, false); } Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtPushButtonGui.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtPushButtonGui.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtPushButtonGui.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -25,22 +25,28 @@ import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip; import cc.kune.common.client.actions.ui.descrip.PushButtonDescriptor; -public class GwtPushButtonGui extends GwtButtonGui { - @Override - public AbstractGuiItem create(final GuiActionDescrip descriptor) { - super.descriptor = descriptor; - super.enableTongle = true; - final PushButtonDescriptor btn = (PushButtonDescriptor) descriptor; - setPressed(btn.isPushed()); - btn.addPropertyChangeListener(new PropertyChangeListener() { - @Override - public void propertyChange(final PropertyChangeEvent event) { - if (event.getPropertyName().equals(PushButtonDescriptor.PUSHED)) { - setPressed(btn.isPushed()); - } - } - }); - return this; - } +public class GwtPushButtonGui extends AbstractGwtButtonGui { + public GwtPushButtonGui() { + super(true); + } + + @Override + public AbstractGuiItem create(final GuiActionDescrip descriptor) { + super.create(descriptor); + super.descriptor = descriptor; + super.enableTongle = true; + final PushButtonDescriptor btn = (PushButtonDescriptor) descriptor; + setPressed(btn.isPushed()); + btn.addPropertyChangeListener(new PropertyChangeListener() { + @Override + public void propertyChange(final PropertyChangeEvent event) { + if (event.getPropertyName().equals(PushButtonDescriptor.PUSHED)) { + setPressed(btn.isPushed()); + } + } + }); + return this; + } + } Modified: trunk/src/main/java/cc/kune/core/client/CoreGinModule.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -19,7 +19,7 @@ */ package cc.kune.core.client; -import cc.kune.client.ExtendedGinModule; +import cc.kune.common.client.ExtendedGinModule; import cc.kune.common.client.actions.gwtui.GwtGuiProvider; import cc.kune.common.client.actions.gxtui.GxtGuiProvider; import cc.kune.common.client.actions.ui.bind.DefaultGuiProvider; Added: trunk/src/main/java/cc/kune/core/client/events/AvatarChangedEvent.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/events/AvatarChangedEvent.java (rev 0) +++ trunk/src/main/java/cc/kune/core/client/events/AvatarChangedEvent.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -0,0 +1,85 @@ +package cc.kune.core.client.events; + +import com.google.gwt.event.shared.EventHandler; +import com.google.gwt.event.shared.GwtEvent; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.event.shared.HasHandlers; + +public class AvatarChangedEvent extends GwtEvent<AvatarChangedEvent.AvatarChangedHandler> { + + public interface AvatarChangedHandler extends EventHandler { + public void onAvatarChanged(AvatarChangedEvent event); + } + + public interface HasAvatarChangedHandlers extends HasHandlers { + HandlerRegistration addAvatarChangedHandler(AvatarChangedHandler handler); + } + + private static final Type<AvatarChangedHandler> TYPE = new Type<AvatarChangedHandler>(); + + public static void fire(final HasHandlers source, final java.lang.String photoBinary) { + source.fireEvent(new AvatarChangedEvent(photoBinary)); + } + + public static Type<AvatarChangedHandler> getType() { + return TYPE; + } + + java.lang.String photoBinary; + + protected AvatarChangedEvent() { + // Possibly for serialization. + } + + public AvatarChangedEvent(final java.lang.String photoBinary) { + this.photoBinary = photoBinary; + } + + @Override + protected void dispatch(final AvatarChangedHandler handler) { + handler.onAvatarChanged(this); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final AvatarChangedEvent other = (AvatarChangedEvent) obj; + if (photoBinary == null) { + if (other.photoBinary != null) { + return false; + } + } else if (!photoBinary.equals(other.photoBinary)) { + return false; + } + return true; + } + + @Override + public Type<AvatarChangedHandler> getAssociatedType() { + return TYPE; + } + + public java.lang.String getPhotoBinary() { + return photoBinary; + } + + @Override + public int hashCode() { + int hashCode = 23; + hashCode = (hashCode * 37) + (photoBinary == null ? 1 : photoBinary.hashCode()); + return hashCode; + } + + @Override + public String toString() { + return "AvatarChangedEvent[" + photoBinary + "]"; + } +} Property changes on: trunk/src/main/java/cc/kune/core/client/events/AvatarChangedEvent.java ___________________________________________________________________ Name: svn:mime-type + text/plain Added: trunk/src/main/java/cc/kune/core/client/events/RenameContentEvent.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/events/RenameContentEvent.java (rev 0) +++ trunk/src/main/java/cc/kune/core/client/events/RenameContentEvent.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -0,0 +1,116 @@ +package cc.kune.core.client.events; + +import com.google.gwt.event.shared.EventHandler; +import com.google.gwt.event.shared.GwtEvent; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.event.shared.HasHandlers; + +public class RenameContentEvent extends GwtEvent<RenameContentEvent.RenameContentHandler> { + + public interface HasRenameEventHandlers extends HasHandlers { + HandlerRegistration addRenameEventHandler(RenameContentHandler handler); + } + + public interface RenameContentHandler extends EventHandler { + public void onRenameEvent(RenameContentEvent event); + } + + private static final Type<RenameContentHandler> TYPE = new Type<RenameContentHandler>(); + + public static void fire(final HasHandlers source, + final cc.kune.core.shared.domain.utils.StateToken token, final java.lang.String oldName, + final java.lang.String newName) { + source.fireEvent(new RenameContentEvent(token, oldName, newName)); + } + + public static Type<RenameContentHandler> getType() { + return TYPE; + } + + java.lang.String newName; + java.lang.String oldName; + cc.kune.core.shared.domain.utils.StateToken token; + + protected RenameContentEvent() { + // Possibly for serialization. + } + + public RenameContentEvent(final cc.kune.core.shared.domain.utils.StateToken token, + final java.lang.String oldName, final java.lang.String newName) { + this.token = token; + this.oldName = oldName; + this.newName = newName; + } + + @Override + protected void dispatch(final RenameContentHandler handler) { + handler.onRenameEvent(this); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final RenameContentEvent other = (RenameContentEvent) obj; + if (token == null) { + if (other.token != null) { + return false; + } + } else if (!token.equals(other.token)) { + return false; + } + if (oldName == null) { + if (other.oldName != null) { + return false; + } + } else if (!oldName.equals(other.oldName)) { + return false; + } + if (newName == null) { + if (other.newName != null) { + return false; + } + } else if (!newName.equals(other.newName)) { + return false; + } + return true; + } + + @Override + public Type<RenameContentHandler> getAssociatedType() { + return TYPE; + } + + public java.lang.String getNewName() { + return newName; + } + + public java.lang.String getOldName() { + return oldName; + } + + public cc.kune.core.shared.domain.utils.StateToken getToken() { + return token; + } + + @Override + public int hashCode() { + int hashCode = 23; + hashCode = (hashCode * 37) + (token == null ? 1 : token.hashCode()); + hashCode = (hashCode * 37) + (oldName == null ? 1 : oldName.hashCode()); + hashCode = (hashCode * 37) + (newName == null ? 1 : newName.hashCode()); + return hashCode; + } + + @Override + public String toString() { + return "RenameEventEvent[" + token + "," + oldName + "," + newName + "]"; + } +} Property changes on: trunk/src/main/java/cc/kune/core/client/events/RenameContentEvent.java ___________________________________________________________________ Name: svn:mime-type + text/plain Added: trunk/src/main/java/cc/kune/core/public/images/ie6/corner_dialog_topleft.png =================================================================== (Binary files differ) Property changes on: trunk/src/main/java/cc/kune/core/public/images/ie6/corner_dialog_topleft.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/src/main/java/cc/kune/core/public/images/ie6/corner_dialog_topright.png =================================================================== (Binary files differ) Property changes on: trunk/src/main/java/cc/kune/core/public/images/ie6/corner_dialog_topright.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/src/main/java/cc/kune/core/public/images/ie6/hborder_blue_shadow.png =================================================================== (Binary files differ) Property changes on: trunk/src/main/java/cc/kune/core/public/images/ie6/hborder_blue_shadow.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/src/main/java/cc/kune/core/public/images/ie6/hborder_gray_shadow.png =================================================================== (Binary files differ) Property changes on: trunk/src/main/java/cc/kune/core/public/images/ie6/hborder_gray_shadow.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/src/main/java/cc/kune/core/public/images/ie6/vborder_blue_shadow.png =================================================================== (Binary files differ) Property changes on: trunk/src/main/java/cc/kune/core/public/images/ie6/vborder_blue_shadow.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/src/main/java/cc/kune/core/public/images/ie6/vborder_gray_shadow.png =================================================================== (Binary files differ) Property changes on: trunk/src/main/java/cc/kune/core/public/images/ie6/vborder_gray_shadow.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/src/main/java/cc/kune/core/public/ws.css =================================================================== --- trunk/src/main/java/cc/kune/core/public/ws.css 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/core/public/ws.css 2011-05-05 23:52:34 UTC (rev 1349) @@ -172,6 +172,7 @@ cursor: hand; } + .gwt-RichTextArea { border: 1px solid black; background-color: white; @@ -335,11 +336,13 @@ font: inherit; } -k-btn-sitebar button spin,.k-sitebar button spin, .k-btn-sitebar div, .k-btn-sitebar span,.k-btn-sitebar button span,.k-sitebar button span { +k-btn-sitebar button spin,.k-sitebar button spin,.k-btn-sitebar div,.k-btn-sitebar span,.k-btn-sitebar button span,.k-sitebar button span + { text-decoration: underline; } -.k-btn-sitebar,.k-btn-sitebar button,.k-sitebar button, .k-btn-sitebar div,.k-btn-sitebar button div,.k-sitebar button div { +.k-btn-sitebar,.k-btn-sitebar button,.k-sitebar button,.k-btn-sitebar div,.k-btn-sitebar button div,.k-sitebar button div + { font: 13px 'Ubuntu', arial; color: #B3B3B3; cursor: pointer; @@ -795,7 +798,6 @@ white-space: nowrap; } */ - .k-sn-mainpanel .x-btn button,.k-sn-mainpanel button,button.k-button { font: 13px 'Ubuntu', arial; border: 2px solid #CCCCCC; @@ -809,19 +811,12 @@ -moz-border-radius: 5px; border-radius: 5px; vertical-align: middle; -/* line-height: 2em !important; */ outline: 0 none; - /* height: 26px !important; */ font-weight: bold; width: auto !IMPORTANT; width: 50px; min-width: 50px; height: 28px; - /* -font-size:small; - cursor: pointer; - border: 2px gray solid; - padding-left: 25px !important; */ } .k-sn-mainpanel .x-btn button:hover,.k-sn-mainpanel button:hover,button.k-button:hover @@ -843,6 +838,67 @@ background: #ffffff; } +.k-button-center { + border-left: 1px solid #CCCCCC !important; + border-right: 1px solid #CCCCCC !important; + -webkit-border-radius: 0px !important; + -moz-border-radius: 0px !important; + border-radius: 0px !important; + margin-left: 0px !important; + margin-right: 0px !important; +} + +.k-button-right { + border-left: 1px solid #CCCCCC !important; + -webkit-border-top-left-radius: 0px !important; + -moz-border-radius-topleft: 0px !important; + border-top-left-radius: 0px !important; + -webkit-border-bottom-left-radius: 0px !important; + -moz-border-radius-bottomleft: 0px !important; + border-bottom-left-radius: 0px !important; + margin-left: 0px !important; +} + +.k-button-left { + border-right: 1px solid #CCCCCC !important; + -webkit-border-top-right-radius: 0px !important; + -moz-border-radius-topright: 0px !important; + border-top-right-radius: 0px !important; + -webkit-border-bottom-right-radius: 0px !important; + -moz-border-radius-bottomright: 0px !important; + border-bottom-right-radius: 0px !important; + margin-right: 0px !important; +} + +button.k-button-center:hover { + border-left: 1px solid orange !important; + border-right: 1px solid orange !important; + outline: 0 none; +} + +button.k-button-right:hover { + border-left: 1px solid orange !important; + outline: 0 none; +} + +button.k-button-left:hover { + border-right: 1px solid orange !important; + outline: 0 none; +} + +button[disabled]:active, button[disabled], +input[type="reset"][disabled]:active, +input[type="reset"][disabled], +input[type="button"][disabled]:active, +input[type="button"][disabled], +select[disabled] > input[type="button"], +select[disabled] > input[type="button"]:active, +input[type="submit"][disabled]:active, +input[type="submit"][disabled], .k-button-disabled { + color: gray !important; +} + +/* end buttons */ .k-sn-collabslabel { } @@ -1108,7 +1164,7 @@ -webkit-border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; border-bottom-left-radius: 5px; - kfilter: alpha(opacity = 90); + kfilter: alpha(opacity = 90); -moz-opacity: 0.90; -khtml-opacity: 0.90; opacity: 0.90; @@ -1146,7 +1202,6 @@ } /* end of suggestbox */ - .k-table { display: table; } @@ -1160,57 +1215,69 @@ } /* Decorated tabbar */ +.gwt-DecoratedTabBar { -.gwt-DecoratedTabBar { } + .gwt-DecoratedTabBar .gwt-TabBarFirst { - width: 5px; /* first tab distance from the left */ + width: 5px; /* first tab distance from the left */ } + .gwt-DecoratedTabBar .gwt-TabBarRest { + } + .gwt-DecoratedTabBar .gwt-TabBarItem { border-collapse: collapse; margin-left: 6px; } + .gwt-DecoratedTabBar .tabTopCenter { padding: 0px; background: #e3e3e3; } -.gwt-DecoratedTabBar .tabTopLeft, -.gwt-DecoratedTabBar .tabTopRight { + +.gwt-DecoratedTabBar .tabTopLeft,.gwt-DecoratedTabBar .tabTopRight { padding: 0px; zoom: 1; } -.gwt-DecoratedTabBar .tabTopLeftInner, -.gwt-DecoratedTabBar .tabTopRightInner { + +.gwt-DecoratedTabBar .tabTopLeftInner,.gwt-DecoratedTabBar .tabTopRightInner + { width: 6px; height: 6px; } + .gwt-DecoratedTabBar .tabTopLeft { background: url(images/corner.png) no-repeat 0px -55px; -background: url(images/corner_ie6.png) no-repeat 0px -55px; } + .gwt-DecoratedTabBar .tabTopRight { background: url(images/corner.png) no-repeat -6px -55px; -background: url(images/corner_ie6.png) no-repeat -6px -55px; } -* html .gwt-DecoratedTabBar .tabTopLeftInner, -* html .gwt-DecoratedTabBar .tabTopRightInner { + +* html .gwt-DecoratedTabBar .tabTopLeftInner,* html .gwt-DecoratedTabBar .tabTopRightInner + { width: 6px; height: 6px; overflow: hidden; } -.gwt-DecoratedTabBar .tabMiddleLeft, -.gwt-DecoratedTabBar .tabMiddleRight { + +.gwt-DecoratedTabBar .tabMiddleLeft,.gwt-DecoratedTabBar .tabMiddleRight + { width: 6px; padding: 0px; background: #e3e3e3 url(images/hborder.png) repeat-x 0px -1463px; } -.gwt-DecoratedTabBar .tabMiddleLeftInner, -.gwt-DecoratedTabBar .tabMiddleRightInner { + +.gwt-DecoratedTabBar .tabMiddleLeftInner,.gwt-DecoratedTabBar .tabMiddleRightInner + { width: 1px; height: 1px; } + .gwt-DecoratedTabBar .tabMiddleCenter { padding: 0px 4px 2px 4px; cursor: pointer; @@ -1220,27 +1287,33 @@ text-align: center; background: #e3e3e3 url(images/hborder.png) repeat-x 0px -1463px; } + .gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabTopCenter { background: #747474; } + .gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabTopLeft { background-position: 0px -61px; } + .gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabTopRight { background-position: -6px -61px; } -.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabMiddleLeft, -.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabMiddleRight { + +.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabMiddleLeft,.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabMiddleRight + { background: #bcbcbc url(images/hborder.png) repeat-x 0px -2511px; } + .gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabMiddleCenter { cursor: default; background: #bcbcbc url(images/hborder.png) repeat-x 0px -2511px; color: white; } + .gwt-DecoratedTabBar .gwt-TabBarItem-disabled .tabMiddleCenter { cursor: default; color: #999999; } -/* end Decorated tabbar */ +/* end Decorated tabbar */ \ No newline at end of file Modified: trunk/src/main/java/cc/kune/docs/client/DocsClientTool.java =================================================================== --- trunk/src/main/java/cc/kune/docs/client/DocsClientTool.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/docs/client/DocsClientTool.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -34,36 +34,37 @@ public class DocsClientTool extends FoldableAbstractClientTool { - private final NavResources navResources; + private final NavResources navResources; - @Inject - public DocsClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector, - final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources) { - super(NAME, i18n.t("documents"), toolSelector, cntCapRegistry); - this.navResources = navResources; + @Inject + public DocsClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector, + final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources) { + super(NAME, i18n.t("documents"), toolSelector, cntCapRegistry); + this.navResources = navResources; - // registerAclEditableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE); - registerAuthorableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE); - registerDragableTypes(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_UPLOADEDFILE); - registerDropableTypes(TYPE_ROOT, TYPE_FOLDER); - registerPublishModerableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE); - registerRateableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE); - registerRenamableTypes(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_UPLOADEDFILE); - registerTageableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE); - registerTranslatableTypes(TYPE_DOCUMENT, TYPE_FOLDER); + // registerAclEditableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE); + registerAuthorableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE); + registerDragableTypes(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_UPLOADEDFILE); + registerDropableTypes(TYPE_ROOT, TYPE_FOLDER); + registerPublishModerableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE); + registerRateableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE); + registerRenamableTypes(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_UPLOADEDFILE); + registerTageableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE); + registerTranslatableTypes(TYPE_DOCUMENT, TYPE_FOLDER); - registerIcons(); - } + registerIcons(); + } - @Override - public String getName() { - return NAME; - } + @Override + public String getName() { + return NAME; + } - private void registerIcons() { - registerContentTypeIcon(TYPE_FOLDER, navResources.folder()); - registerContentTypeIcon(TYPE_DOCUMENT, navResources.page()); - registerUploadTypesAndMimes(TYPE_UPLOADEDFILE); - } + private void registerIcons() { + registerContentTypeIcon(TYPE_FOLDER, navResources.folder()); + registerContentTypeIcon(TYPE_ROOT, navResources.folder()); + registerContentTypeIcon(TYPE_DOCUMENT, navResources.page()); + registerUploadTypesAndMimes(TYPE_UPLOADEDFILE); + } } Modified: trunk/src/main/java/cc/kune/docs/client/DocsParts.java =================================================================== --- trunk/src/main/java/cc/kune/docs/client/DocsParts.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/docs/client/DocsParts.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -1,14 +1,23 @@ package cc.kune.docs.client; import cc.kune.core.client.state.Session; +import cc.kune.docs.client.actions.DocsClientActions; +import cc.kune.docs.shared.DocsConstants; +import cc.kune.gspace.client.tool.ContentViewerSelector; +import cc.kune.gspace.client.viewers.ContentViewerPresenter; +import cc.kune.gspace.client.viewers.FolderViewerPresenter; import com.google.inject.Inject; import com.google.inject.Provider; public class DocsParts { - @Inject - public DocsParts(final Session session, final Provider<DocsClientTool> clientTool) { - clientTool.get(); - } + @Inject + public DocsParts(final Session session, final Provider<DocsClientTool> clientTool, + final ContentViewerSelector viewerSelector, final DocsClientActions docsActions, + final ContentViewerPresenter contentViewer, final FolderViewerPresenter folderViewer) { + clientTool.get(); + viewerSelector.register(contentViewer, true, DocsConstants.TYPE_DOCUMENT); + viewerSelector.register(folderViewer, true, DocsConstants.TYPE_ROOT, DocsConstants.TYPE_FOLDER); + } } \ No newline at end of file Modified: trunk/src/main/java/cc/kune/docs/client/actions/DocsClientActions.java =================================================================== --- trunk/src/main/java/cc/kune/docs/client/actions/DocsClientActions.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/docs/client/actions/DocsClientActions.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -23,7 +23,6 @@ import static cc.kune.docs.shared.DocsConstants.TYPE_FOLDER; import static cc.kune.docs.shared.DocsConstants.TYPE_ROOT; import static cc.kune.docs.shared.DocsConstants.TYPE_UPLOADEDFILE; -import cc.kune.blogs.client.actions.ContentViewerOptionsMenu; import cc.kune.core.client.actions.ActionRegistryByType; import cc.kune.core.client.i18n.I18nUITranslationService; import cc.kune.core.client.resources.CoreResources; @@ -31,6 +30,7 @@ import cc.kune.core.client.state.StateManager; import cc.kune.gspace.client.actions.AbstractFoldableToolActions; import cc.kune.gspace.client.actions.ActionGroups; +import cc.kune.gspace.client.actions.ContentViewerOptionsMenu; import cc.kune.gspace.client.actions.ParticipateInContentBtn; import cc.kune.gspace.client.actions.RefreshContentMenuItem; import cc.kune.gspace.client.actions.SetAsHomePageMenuItem; Modified: trunk/src/main/java/cc/kune/domain/Container.java =================================================================== --- trunk/src/main/java/cc/kune/domain/Container.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/domain/Container.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -43,6 +43,8 @@ import org.hibernate.annotations.Fetch; import org.hibernate.annotations.FetchMode; +import org.hibernate.annotations.LazyCollection; +import org.hibernate.annotations.LazyCollectionOption; import org.hibernate.search.annotations.ContainedIn; import org.hibernate.search.annotations.DocumentId; import org.hibernate.search.annotations.Field; @@ -60,12 +62,14 @@ @Table(name = "containers") public class Container implements HasId, HasStateToken { - @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL) + @LazyCollection(LazyCollectionOption.FALSE) + @ManyToMany(cascade = CascadeType.ALL) private List<Container> absolutePath; @OneToOne(cascade = CascadeType.ALL) private AccessLists accessLists; + @LazyCollection(LazyCollectionOption.FALSE) @Fetch(FetchMode.JOIN) @OrderBy("createdOn DESC") @OneToMany(mappedBy = "parent", cascade = CascadeType.ALL, fetch = FetchType.EAGER) @@ -74,6 +78,7 @@ @OneToMany(cascade = CascadeType.ALL) private List<ContainerTranslation> containerTranslations; + @LazyCollection(LazyCollectionOption.FALSE) @Fetch(FetchMode.JOIN) @ContainedIn @OrderBy("createdOn DESC") Modified: trunk/src/main/java/cc/kune/gspace/client/GSpaceGinModule.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/GSpaceGinModule.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/gspace/client/GSpaceGinModule.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -19,10 +19,10 @@ */ package cc.kune.gspace.client; -import cc.kune.blogs.client.actions.ContentViewerOptionsMenu; -import cc.kune.client.ExtendedGinModule; +import cc.kune.common.client.ExtendedGinModule; import cc.kune.core.client.sitebar.search.SitebarSearchPanel; import cc.kune.core.client.sitebar.search.SitebarSearchPresenter; +import cc.kune.gspace.client.actions.ContentViewerOptionsMenu; import cc.kune.gspace.client.actions.RenameAction; import cc.kune.gspace.client.options.GroupOptions; import cc.kune.gspace.client.options.GroupOptionsCollection; @@ -75,8 +75,8 @@ import cc.kune.gspace.client.tool.selector.ToolSelectorPresenter; import cc.kune.gspace.client.ui.footer.license.EntityLicensePanel; import cc.kune.gspace.client.ui.footer.license.EntityLicensePresenter; -import cc.kune.gspace.client.viewers.DocViewerPanel; -import cc.kune.gspace.client.viewers.DocViewerPresenter; +import cc.kune.gspace.client.viewers.ContentViewerPanel; +import cc.kune.gspace.client.viewers.ContentViewerPresenter; import cc.kune.gspace.client.viewers.FolderViewerAsTablePanel; import cc.kune.gspace.client.viewers.FolderViewerPresenter; @@ -101,8 +101,8 @@ bindPresenter(ToolSelectorPresenter.class, ToolSelectorPresenter.ToolSelectorView.class, ToolSelectorPanel.class, ToolSelectorPresenter.ToolSelectorProxy.class); bind(ToolSelector.class).to(ToolSelectorPresenter.class).in(Singleton.class); - bindPresenter(DocViewerPresenter.class, DocViewerPresenter.DocViewerView.class, - DocViewerPanel.class, DocViewerPresenter.DocViewerProxy.class); + bindPresenter(ContentViewerPresenter.class, ContentViewerPresenter.ContentViewerView.class, + ContentViewerPanel.class, ContentViewerPresenter.ContentViewerProxy.class); bindPresenter(FolderViewerPresenter.class, FolderViewerPresenter.FolderViewerView.class, FolderViewerAsTablePanel.class, FolderViewerPresenter.FolderViewerProxy.class); bindPresenter(SitebarSearchPresenter.class, SitebarSearchPresenter.SitebarSearchView.class, Modified: trunk/src/main/java/cc/kune/gspace/client/GSpaceGinjector.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/GSpaceGinjector.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/gspace/client/GSpaceGinjector.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -5,7 +5,7 @@ import cc.kune.gspace.client.tool.ContentViewerSelector; import cc.kune.gspace.client.tool.selector.ToolSelectorPresenter; import cc.kune.gspace.client.ui.footer.license.EntityLicensePresenter; -import cc.kune.gspace.client.viewers.DocViewerPresenter; +import cc.kune.gspace.client.viewers.ContentViewerPresenter; import cc.kune.gspace.client.viewers.FolderViewerPresenter; import com.google.gwt.inject.client.AsyncProvider; @@ -15,7 +15,7 @@ ContentViewerSelector getContentViewerSelector(); - AsyncProvider<DocViewerPresenter> getDocsViewerPresenter(); + AsyncProvider<ContentViewerPresenter> getDocsViewerPresenter(); AsyncProvider<EntityLicensePresenter> getEntityLicensePresenter(); Modified: trunk/src/main/java/cc/kune/gspace/client/GSpaceParts.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/GSpaceParts.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/gspace/client/GSpaceParts.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -19,7 +19,7 @@ import cc.kune.gspace.client.tags.TagsSummaryPresenter; import cc.kune.gspace.client.tool.selector.ToolSelector; import cc.kune.gspace.client.ui.footer.license.EntityLicensePresenter; -import cc.kune.gspace.client.viewers.DocViewerPresenter; +import cc.kune.gspace.client.viewers.ContentViewerPresenter; import cc.kune.gspace.client.viewers.FolderViewerPresenter; import com.google.inject.Inject; @@ -30,7 +30,7 @@ @Inject public GSpaceParts(final Session session, final Provider<EntityLicensePresenter> licenseFooter, final Provider<TagsSummaryPresenter> tagsPresenter, final Provider<ToolSelector> toolSelector, - final Provider<DocViewerPresenter> docsViewer, final Provider<FolderViewerPresenter> folderViewer, + final Provider<ContentViewerPresenter> docsViewer, final Provider<FolderViewerPresenter> folderViewer, final Provider<GroupOptions> go, final Provider<UserOptions> uo, final Provider<GroupOptionsCollection> goc, final Provider<UserOptionsCollection> uoc, final Provider<GroupOptionsDefLicense> gdl, final Provider<GroupOptionsPublicSpaceConf> gps, Copied: trunk/src/main/java/cc/kune/gspace/client/actions/ContentViewerOptionsMenu.java (from rev 1339, trunk/src/main/java/cc/kune/blogs/client/actions/ContentViewerOptionsMenu.java) =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/actions/ContentViewerOptionsMenu.java (rev 0) +++ trunk/src/main/java/cc/kune/gspace/client/actions/ContentViewerOptionsMenu.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -0,0 +1,16 @@ +package cc.kune.gspace.client.actions; + +import cc.kune.common.client.actions.ui.descrip.MenuDescriptor; +import cc.kune.core.client.resources.CoreResources; + +import com.google.inject.Inject; + +public class ContentViewerOptionsMenu extends MenuDescriptor { + + @Inject + public ContentViewerOptionsMenu(final CoreResources res) { + super(); + this.withIcon(res.arrowdownsitebar()).withStyles("k-def-docbtn, k-fr, k-noborder, k-nobackcolor"); + } + +} Added: trunk/src/main/java/cc/kune/gspace/client/actions/GotoTokenAction.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/actions/GotoTokenAction.java (rev 0) +++ trunk/src/main/java/cc/kune/gspace/client/actions/GotoTokenAction.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -0,0 +1,66 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.gspace.client.actions; + +import cc.kune.common.client.actions.AbstractExtendedAction; +import cc.kune.common.client.actions.Action; +import cc.kune.common.client.actions.ActionEvent; +import cc.kune.core.client.events.RenameContentEvent; +import cc.kune.core.client.state.SocialNetworkChangedEvent; +import cc.kune.core.client.state.SocialNetworkChangedEvent.SocialNetworkChangedHandler; +import cc.kune.core.client.state.StateManager; +import cc.kune.core.shared.domain.utils.StateToken; + +import com.google.gwt.event.shared.EventBus; + +public class GotoTokenAction extends AbstractExtendedAction { + private final StateManager stateManager; + private final StateToken token; + + public GotoTokenAction(final Object icon, final String name, final StateToken token, + final String style, final StateManager stateManager, final EventBus eventBus) { + super(); + this.token = token; + this.stateManager = stateManager; + putValue(Action.NAME, name); + putValue(Action.SMALL_ICON, icon); + stateManager.onSocialNetworkChanged(true, new SocialNetworkChangedHandler() { + @Override + public void onSocialNetworkChanged(final SocialNetworkChangedEvent event) { + putValue(Action.STYLES, !token.equals(event.getState().getStateToken()) ? style : style + + ", k-button-disabled"); + } + }); + eventBus.addHandler(RenameContentEvent.getType(), new RenameContentEvent.RenameContentHandler() { + @Override + public void onRenameEvent(final RenameContentEvent event) { + final StateToken eToken = event.getToken(); + if (eToken.equals(token)) { + putValue(Action.NAME, event.getNewName()); + } + } + }); + } + + @Override + public void actionPerformed(final ActionEvent event) { + this.stateManager.gotoStateToken(token); + } +} Property changes on: trunk/src/main/java/cc/kune/gspace/client/actions/GotoTokenAction.java ___________________________________________________________________ Name: svn:mime-type + text/plain Modified: trunk/src/main/java/cc/kune/gspace/client/actions/RefreshContentMenuItem.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/actions/RefreshContentMenuItem.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/gspace/client/actions/RefreshContentMenuItem.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -1,6 +1,5 @@ package cc.kune.gspace.client.actions; -import cc.kune.blogs.client.actions.ContentViewerOptionsMenu; import cc.kune.common.client.actions.AbstractExtendedAction; import cc.kune.common.client.actions.ActionEvent; import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor; Modified: trunk/src/main/java/cc/kune/gspace/client/actions/RenameAction.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/actions/RenameAction.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/gspace/client/actions/RenameAction.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -23,12 +23,14 @@ import cc.kune.core.client.errors.ErrorHandler; import cc.kune.core.client.errors.NameInUseException; import cc.kune.core.client.errors.NameNotPermittedException; +import cc.kune.core.client.events.RenameContentEvent; import cc.kune.core.client.rpcservices.ContentServiceAsync; import cc.kune.core.client.state.Session; import cc.kune.core.shared.domain.utils.StateToken; import cc.kune.core.shared.dto.StateAbstractDTO; import cc.kune.core.shared.i18n.I18nTranslationService; +import com.google.gwt.event.shared.EventBus; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.inject.Inject; import com.google.inject.Provider; @@ -36,14 +38,16 @@ public class RenameAction { private final Provider<ContentServiceAsync> contentService; private final ErrorHandler errorHandler; + private final EventBus eventBus; private final I18nTranslationService i18n; private final Session session; @Inject - public RenameAction(final I18nTranslationService i18n, final Session session, + public RenameAction(final I18nTranslationService i18n, final Session session, final EventBus eventBus, final Provider<ContentServiceAsync> contentService, final ErrorHandler errorHandler) { this.i18n = i18n; this.session = session; + this.eventBus = eventBus; this.contentService = contentService; this.errorHandler = errorHandler; } @@ -74,6 +78,7 @@ NotifyUser.hideProgress(); session.setCurrentState(state); listener.onSuccess(token, state.getTitle()); + RenameContentEvent.fire(eventBus, token, oldName, newName); } }; if (token.isComplete()) { Modified: trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptionsLogoPresenter.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptionsLogoPresenter.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptionsLogoPresenter.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -19,7 +19,6 @@ \*/ package cc.kune.gspace.client.options.logo; -import cc.kune.chat.client.ChatClient; import cc.kune.common.client.notify.NotifyUser; import cc.kune.core.client.rpcservices.UserServiceAsync; import cc.kune.core.client.state.Session; @@ -31,47 +30,48 @@ import com.google.inject.Provider; public abstract class EntityOptionsLogoPresenter implements GroupOptionsLogo, UserOptionsLogo { - protected final Provider<ChatClient> chatEngine; - private final EntityHeader entityLogo; - private final EntityOptions entityOptions; - protected final Session session; - protected final Provider<UserServiceAsync> userService; - protected EntityOptionsLogoView view; + private final EntityHeader entityLogo; + private final EntityOptions entityOptions; + protected final EventBus eventBus; + protected final Session session; + protected final Provider<UserServiceAsync> userService; + protected EntityOptionsLogoView view; - public EntityOptionsLogoPresenter(final EventBus eventBus, final Session session, final EntityHeader entityLogo, - final EntityOptions entityOptions, final Provider<UserServiceAsync> userService, - final Provider<ChatClient> chatEngine) { - this.session = session; - this.entityLogo = entityLogo; - this.entityOptions = entityOptions; - this.userService = userService; - this.chatEngine = chatEngine; - eventBus.addHandler(CurrentLogoChangedEvent.getType(), new CurrentLogoChangedEvent.CurrentLogoChangedHandler() { - @Override - public void onCurrentLogoChanged(final CurrentLogoChangedEvent event) { - onSubmitComplete(); - } + public EntityOptionsLogoPresenter(final EventBus eventBus, final Session session, + final EntityHeader entityLogo, final EntityOptions entityOptions, + final Provider<UserServiceAsync> userService) { + this.eventBus = eventBus; + this.session = session; + this.entityLogo = entityLogo; + this.entityOptions = entityOptions; + this.userService = userService; + eventBus.addHandler(CurrentLogoChangedEvent.getType(), + new CurrentLogoChangedEvent.CurrentLogoChangedHandler() { + @Override + public void onCurrentLogoChanged(final CurrentLogoChangedEvent event) { + onSubmitComplete(); + } }); - } + } - public IsWidget getView() { - return view; - } + public IsWidget getView() { + return view; + } - protected void init(final EntityOptionsLogoView view) { - this.view = view; - entityOptions.addTab(view, view.getTabTitle()); - setState(); - } + protected void init(final EntityOptionsLogoView view) { + this.view = view; + entityOptions.addTab(view, view.getTabTitle()); + setState(); + } - public void onSubmitComplete() { - entityLogo.reloadGroupLogoImage(); - } + public void onSubmitComplete() { + entityLogo.reloadGroupLogoImage(); + } - public void onSubmitFailed(final int httpStatus, final String responseText) { - NotifyUser.error("Error setting the logo: " + responseText); - } + public void onSubmitFailed(final int httpStatus, final String responseText) { + NotifyUser.error("Error setting the logo: " + responseText); + } - protected abstract void setState(); + protected abstract void setState(); } Modified: trunk/src/main/java/cc/kune/gspace/client/options/logo/GroupOptionsLogoPresenter.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/options/logo/GroupOptionsLogoPresenter.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/gspace/client/options/logo/GroupOptionsLogoPresenter.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -19,7 +19,6 @@ */ package cc.kune.gspace.client.options.logo; -import cc.kune.chat.client.ChatClient; import cc.kune.core.client.rpcservices.UserServiceAsync; import cc.kune.core.client.state.GroupChangedEvent; import cc.kune.core.client.state.GroupChangedEvent.GroupChangedHandler; @@ -34,28 +33,27 @@ public class GroupOptionsLogoPresenter extends EntityOptionsLogoPresenter { - @Inject - public GroupOptionsLogoPresenter(final EventBus eventBus, final Session session, final EntityHeader entityLogo, - final GroupOptions entityOptions, final StateManager stateManager, - final Provider<UserServiceAsync> userService, final Provider<ChatClient> chatEngine, - final GroupOptionsLogoView view) { - super(eventBus, session, entityLogo, entityOptions, userService, chatEngine); - init(view); - stateManager.onGroupChanged(true, new GroupChangedHandler() { - @Override - public void onGroupChanged(final GroupChangedEvent event) { - setState(); - } - }); - } + @Inject + public GroupOptionsLogoPresenter(final EventBus eventBus, final Session session, + final EntityHeader entityLogo, final GroupOptions entityOptions, final StateManager stateManager, + final Provider<UserServiceAsync> userService, final GroupOptionsLogoView view) { + super(eventBus, session, entityLogo, entityOptions, userService); + init(view); + stateManager.onGroupChanged(true, new GroupChangedHandler() { + @Override + public void onGroupChanged(final GroupChangedEvent event) { + setState(); + } + }); + } - private void init(final GroupOptionsLogoView view) { - super.init(view); - view.setNormalGroupsLabels(); - } + private void init(final GroupOptionsLogoView view) { + super.init(view); + view.setNormalGroupsLabels(); + } - @Override - protected void setState() { - view.setUploadParams(session.getUserHash(), session.getCurrentStateToken().toString()); - } + @Override + protected void setState() { + view.setUploadParams(session.getUserHash(), session.getCurrentStateToken().toString()); + } } Modified: trunk/src/main/java/cc/kune/gspace/client/options/logo/UserOptionsLogoPresenter.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/options/logo/UserOptionsLogoPresenter.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/gspace/client/options/logo/UserOptionsLogoPresenter.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -19,7 +19,7 @@ */ package cc.kune.gspace.client.options.logo; -import cc.kune.chat.client.ChatClient; +import cc.kune.core.client.events.AvatarChangedEvent; import cc.kune.core.client.rpcservices.AsyncCallbackSimple; import cc.kune.core.client.rpcservices.UserServiceAsync; import cc.kune.core.client.state.Session; @@ -36,43 +36,42 @@ public class UserOptionsLogoPresenter extends EntityOptionsLogoPresenter { - @Inject - public UserOptionsLogoPresenter(final EventBus eventBus, final Session session, final EntityHeader entityLogo, - final UserOptions entityOptions, final StateManager stateManager, - final Provider<UserServiceAsync> userService, final Provider<ChatClient> chatEngine, - final UserOptionsLogoView view) { - super(eventBus, session, entityLogo, entityOptions, userService, chatEngine); - init(view); - session.onUserSignIn(true, new UserSignInHandler() { + @Inject + public UserOptionsLogoPresenter(final EventBus eventBus, final Session session, + final EntityHeader entityLogo, final UserOptions entityOptions, final StateManager stateManager, + final Provider<UserServiceAsync> userService, final UserOptionsLogoView view) { + super(eventBus, session, entityLogo, entityOptions, userService); + init(view); + session.onUserSignIn(true, new UserSignInHandler() { + @Override + public void onUserSignIn(final UserSignInEvent event) { + setState(); + } + }); + } + + private void init(final UserOptionsLogoView view) { + super.init(view); + view.setPersonalGroupsLabels(); + } + + @Override + public void onSubmitComplete() { + super.onSubmitComplete(); + final GroupDTO group = session.getCurrentState().getGroup(); + if (session.getCurrentUser().getShortName().equals(group.getShortName())) { + userService.get().getUserAvatarBaser64(session.getUserHash(), group.getStateToken(), + new AsyncCallbackSimple<String>() { @Override - public void onUserSignIn(final UserSignInEvent event) { - setState(); + public void onSuccess(final String photoBinary) { + AvatarChangedEvent.fire(eventBus, photoBinary); } - }); + }); } + } - private void init(final UserOptionsLogoView view) { - super.init(view); - view.setPersonalGroupsLabels(); - } - - @Override - public void onSubmitComplete() { - super.onSubmitComplete(); - final GroupDTO group = session.getCurrentState().getGroup(); - if (session.getCurrentUser().getShortName().equals(group.getShortName())) { - userService.get().getUserAvatarBaser64(session.getUserHash(), group.getStateToken(), - new AsyncCallbackSimple<String>() { - @Override - public void onSuccess(final String photoBinary) { - chatEngine.get().setAvatar(photoBinary); - } - }); - } - } - - @Override - protected void setState() { - view.setUploadParams(session.getUserHash(), session.getCurrentUser().getStateToken().toString()); - } + @Override + protected void setState() { + view.setUploadParams(session.getUserHash(), session.getCurrentUser().getStateToken().toString()); + } } Modified: trunk/src/main/java/cc/kune/gspace/client/resources/wsArmor.css =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/resources/wsArmor.css 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/gspace/client/resources/wsArmor.css 2011-05-05 23:52:34 UTC (rev 1349) @@ -92,15 +92,15 @@ } .docSubheader button.k-fr { - margin: 0 10px 0 0; + margin: 0 5px 0 0; } .docSubheader button.k-fl { - margin: 0 0 0 10px; + margin: 0 0 0 5px; } .docSubheader button { - margin: 0 0 0 10px; + margin: 0 0 0 5px; } .docSubheaderLeft { Copied: trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPanel.java (from rev 1339, trunk/src/main/java/cc/kune/gspace/client/viewers/DocViewerPanel.java) =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPanel.java (rev 0) +++ trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPanel.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -0,0 +1,202 @@ +package cc.kune.gspace.client.viewers; + +import org.waveprotocol.box.webclient.client.ClientIdGenerator; +import org.waveprotocol.box.webclient.client.RemoteViewServiceMultiplexer; +import org.waveprotocol.box.webclient.client.Session; +import org.waveprotocol.box.webclient.client.SimpleWaveStore; +import org.waveprotocol.box.webclient.client.StagesProvider; +import org.waveprotocol.box.webclient.client.WaveWebSocketClient; +import org.waveprotocol.box.webclient.search.WaveStore; +import org.waveprotocol.box.webclient.widget.loading.LoadingIndicator; +import org.waveprotocol.wave.client.account.ProfileManager; +import org.waveprotocol.wave.client.account.impl.ProfileManagerImpl; +import org.waveprotocol.wave.client.widget.common.ImplPanel; +import org.waveprotocol.wave.model.id.IdGenerator; +import org.waveprotocol.wave.model.wave.ParticipantId; +import org.waveprotocol.wave.model.waveref.InvalidWaveRefException; +import org.waveprotocol.wave.model.waveref.WaveRef; +import org.waveprotocol.wave.util.escapers.GwtWaverefEncoder; + +import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection; +import cc.kune.common.client.errors.UIException; +import cc.kune.common.client.ui.HasEditHandler; +import cc.kune.common.client.ui.UiUtils; +import cc.kune.core.client.registry.ContentCapabilitiesRegistry; +import cc.kune.core.shared.dto.StateContentDTO; +import cc.kune.core.shared.i18n.I18nTranslationService; +import cc.kune.gspace.client.GSpaceArmor; +import cc.kune.gspace.client.viewers.ContentViewerPresenter.ContentViewerView; +import cc.kune.wave.client.WaveClientManager; +import cc.kune.wave.client.WebClient; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.Document; +import com.google.gwt.dom.client.Element; +import com.google.gwt.safehtml.shared.SafeHtmlUtils; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.Command; +import com.google.gwt.user.client.ui.DeckPanel; +import com.google.gwt.user.client.ui.InlineHTML; +import com.google.gwt.user.client.ui.InsertPanel.ForIsWidget; +import com.google.gwt.user.client.ui.Widget; +import com.google.inject.Inject; +import com.gwtplatform.mvp.client.ViewImpl; + +public class ContentViewerPanel extends ViewImpl implements ContentViewerView { + interface DocsViewerPanelUiBinder extends UiBinder<Widget, ContentViewerPanel> { + } + + private static final RemoteViewServiceMultiplexer NO_CHANNEL = null; + + private static DocsViewerPanelUiBinder uiBinder = GWT.create(DocsViewerPanelUiBinder.class); + + private final ContentCapabilitiesRegistry capabilitiesRegistry; + private RemoteViewServiceMultiplexer channel; + private final ContentTitleWidget contentTitle; + @UiField + DeckPanel deck; + private final GSpaceArmor gsArmor; + private IdGenerator idGenerator; + private final Element loading = new LoadingIndicator().getElement(); + @UiField + InlineHTML onlyViewPanel; + private ProfileManager profiles; + /** The wave panel, if a wave is open. */ + private StagesProvider wave; + private final WaveClientManager waveClient; + @UiField + ImplPanel waveHolder; + + private final WaveStore waveStore = new SimpleWaveStore(); + + private final Widget widget; + + @Inject + public ContentViewerPanel(final GSpaceArmor wsArmor, final WaveClientManager waveClient, + final ContentCapabilitiesRegistry capabilitiesRegistry, final I18nTranslationService i18n) { + this.gsArmor = wsArmor; + this.waveClient = waveClient; + this.capabilitiesRegistry = capabilitiesRegistry; + widget = uiBinder.createAndBindUi(this); + contentTitle = new ContentTitleWidget(i18n, gsArmor, capabilitiesRegistry.getIconsRegistry()); + loading.addClassName("kune-Margin-40-tb"); + } + + @Override + public Widget asWidget() { + return widget; + } + + @Override + public void attach() { + final ForIsWidget docContainer = gsArmor.getDocContainer(); + docContainer.add(widget); + } + + @Override + public void clear() { + onlyViewPanel.setHTML(""); + gsArmor.getSubheaderToolbar().clear(); + UiUtils.clear(gsArmor.getDocContainer()); + UiUtils.clear(gsArmor.getDocHeader()); + } + + @Override + public void detach() { + clear(); + } + + @Override + public HasEditHandler getEditTitle() { + return contentTitle.getEditableTitle(); + } + + private WaveRef getWaveRef(final String waveRefS) { + try { + return GwtWaverefEncoder.decodeWaveRefFromPath(waveRefS); + } catch (final InvalidWaveRefException e) { + throw new UIException("Invalid waveref: " + waveRefS); + } + } + + private void initWaveClientIfNeeded() { + if (channel == null) { + final WaveWebSocketClient webSocket = new WaveWebSocketClient(WebClient.useSocketIO(), + WebClient.getWebSocketBaseUrl(GWT.getModuleBaseURL())); + webSocket.connect(); + channel = new RemoteViewServiceMultiplexer(webSocket, + new ParticipantId(Session.get().getAddress()).getAddress()); + profiles = new ProfileManagerImpl(Session.get().getDomain()); + idGenerator = ClientIdGenerator.create(); + } + } + + @Override + public void setActions(final GuiActionDescCollection actions) { + gsArmor.getSubheaderToolbar().clear(); + gsArmor.getSubheaderToolbar().addAll(actions); + } + + @Override + public void setContent(final StateContentDTO state) { + final boolean editable = state.getContentRights().isEditable(); + setTitle(state, editable); + onlyViewPanel.setHTML(SafeHtmlUtils.fromTrustedString(state.getContent())); + deck.showWidget(1); + } + + @Override + public void setEditableContent(final StateContentDTO state) { + setTitle(state, true); + setEditableWaveContent(state.getWaveRef(), false); + deck.showWidget(0); + } + + @Override + public void setEditableTitle(final String title) { + contentTitle.setText(title); + } + + private void setEditableWaveContent(final String waveRefS, final boolean isNewWave) { + final WaveRef waveRef = getWaveRef(waveRefS); + + if (wave != null) { + wave.destroy(); + wave = null; + } + + initWaveClientIfNeeded(); + + // Release the display:none. + // UIObject.setVisible(waveFrame.getElement(), true); + waveHolder.getElement().appendChild(loading); + final Element holder = waveHolder.getElement().appendChild(Document.get().createDivElement()); + final StagesProvider wave = new StagesProvider(holder, waveHolder, waveRef, channel, idGenerator, + profiles, waveStore, isNewWave); + this.wave = wave; + wave.load(new Command() { + @Override + public void execute() { + loading.removeFromParent(); + } + }); + } + + private void setTitle(final StateContentDTO state, final boolean editable) { + contentTitle.setTitle(state.getTitle(), state.getTypeId(), state.getMimeType(), editable + && capabilitiesRegistry.isRenamable(state.getTypeId())); + } + + @Override + public void signIn() { + // Do nothing (now) + // initWaveClientIfNeeded(); + } + + @Override + public void signOut() { + channel = NO_CHANNEL; + } + +} Copied: trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPanel.ui.xml (from rev 1339, trunk/src/main/java/cc/kune/gspace/client/viewers/DocViewerPanel.ui.xml) =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPanel.ui.xml (rev 0) +++ trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPanel.ui.xml 2011-05-05 23:52:34 UTC (rev 1349) @@ -0,0 +1,28 @@ +<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> +<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" + xmlns:g='urn:import:com.google.gwt.user.client.ui' xmlns:f='urn:import:org.waveprotocol.box.webclient.widget.frame' + xmlns:w='urn:import:org.waveprotocol.wave.client.widget.common'> + <ui:style> + .wavePanel { + margin: 0 0 0 0; + } + + .waveHolder { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + } + + .viewonly { + margin: 5px; + } + </ui:style> + <g:HTMLPanel width="100%" height="100%"> + <g:DeckPanel ui:field="deck" addStyleNames="k-doc-content-deck"> + <w:ImplPanel ui:field="waveHolder" addStyleNames="{style.waveHolder}" /> + <g:InlineHTML ui:field="onlyViewPanel" styleName="{style.viewonly}" /> + </g:DeckPanel> + </g:HTMLPanel> +</ui:UiBinder> \ No newline at end of file Copied: trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java (from rev 1339, trunk/src/main/java/cc/kune/gspace/client/viewers/DocViewerPresenter.java) =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java (rev 0) +++ trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -0,0 +1,163 @@ +package cc.kune.gspace.client.viewers; + +import javax.annotation.Nonnull; + +import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection; +import cc.kune.common.client.errors.UIException; +import cc.kune.common.client.ui.EditEvent; +import cc.kune.common.client.ui.EditEvent.EditHandler; +import cc.kune.common.client.ui.HasEditHandler; +import cc.kune.core.client.actions.ActionRegistryByType; +import cc.kune.core.client.state.Session; +import cc.kune.core.client.state.UserSignInEvent; +import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler; +import cc.kune.core.client.state.UserSignOutEvent; +import cc.kune.core.client.state.UserSignOutEvent.UserSignOutHandler; +import cc.kune.core.shared.domain.utils.AccessRights; +import cc.kune.core.shared.domain.utils.StateToken; +import cc.kune.core.shared.dto.HasContent; +import cc.kune.core.shared.dto.StateContentDTO; +import cc.kune.gspace.client.actions.ActionGroups; +import cc.kune.gspace.client.actions.RenameAction; +import cc.kune.gspace.client.actions.RenameListener; +import cc.kune.gspace.client.tool.ContentViewer; + +import com.google.gwt.event.shared.EventBus; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.inject.Inject; +import com.google.inject.Provider; +import com.gwtplatform.mvp.client.Presenter; +import com.gwtplatform.mvp.client.View; +import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit; +import com.gwtplatform.mvp.client.proxy.Proxy; +import com.gwtplatform.mvp.client.proxy.RevealRootContentEvent; + +public class ContentViewerPresenter extends + Presenter<ContentViewerPresenter.ContentViewerView, ContentViewerPresenter.ContentViewerProxy> + implements ContentViewer { + + @ProxyCodeSplit + public interface ContentViewerProxy extends Proxy<ContentViewerPresenter> { + } + + public interface ContentViewerView extends View { + + void attach(); + + void clear(); + + void detach(); + + HasEditHandler getEditTitle(); + + void setActions(GuiActionDescCollection actions); + + void setContent(StateContentDTO state); + + void setEditableContent(StateContentDTO state); + + void setEditableTitle(String title); + + void signIn(); + + void signOut(); + } + + private final ActionRegistryByType actionsRegistry; + private HandlerRegistration editHandler; + private final Provider<RenameAction> renameAction; + private final Session session; + + @Inject + public ContentViewerPresenter(final EventBus eventBus, final ContentViewerView view, + final ContentViewerProxy proxy, final Session session, final ActionRegistryByType actionsRegistry, + final Provider<RenameAction> renameAction) { + super(eventBus, view, proxy); + this.session = session; + this.actionsRegistry = actionsRegistry; + this.renameAction = renameAction; + session.onUserSignOut(true, new UserSignOutHandler() { + @Override + public void onUserSignOut(final UserSignOutEvent event) { + getView().signOut(); + } + }); + session.onUserSignIn(true, new UserSignInHandler() { + + @Override + public void onUserSignIn(final UserSignInEvent event) { + getView().signIn(); + } + }); + + } + + @Override + public void attach() { + getView().attach(); + if (editHandler == null) { + createEditHandler(); + } + } + + private void createEditHandler() { + editHandler = getView().getEditTitle().addEditHandler(new EditHandler() { + @Override + public void fire(final EditEvent event) { + renameAction.get().rename(session.getCurrentStateToken(), session.getCurrentState().getTitle(), + event.getText(), new RenameListener() { + @Override + public void onFail(final StateToken token, final String oldTitle) { + getView().setEditableTitle(oldTitle); + } + + @Override + public void onSuccess(final StateToken token, final String title) { + getView().setEditableTitle(title); + } + }); + } + }); + } + + @Override + public void detach() { + getView().detach(); + } + + @Override + protected void revealInParent() { + RevealRootContentEvent.fire(this, this); + } + + @Override + public void setContent(@Nonnull final HasContent state) { + getView().clear(); + final StateContentDTO stateContent = (StateContentDTO) state; + final AccessRights rights = stateContent.getContentRights(); + if (session.isLogged() && rights.isEditable()) { + if (stateContent.isParticipant()) { + // is already participant, show wave editor + if (org.waveprotocol.box.webclient.client.Session.get().isLoggedIn()) { + getView().setEditableContent(stateContent); + } else { + getView().setContent(stateContent); + // When logged setEditable! + } + } else { + // add "participate" action + getView().setContent(stateContent); + } + } else { + if (rights.isVisible()) { + // Show contents + getView().setContent(stateContent); + } else { + throw new UIException("Unexpected status in Viewer"); + } + } + final GuiActionDescCollection actions = actionsRegistry.getCurrentActions(stateContent.getGroup(), + stateContent.getTypeId(), session.isLogged(), rights, ActionGroups.VIEW); + getView().setActions(actions); + } +} \ No newline at end of file Deleted: trunk/src/main/java/cc/kune/gspace/client/viewers/DocViewerPanel.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/viewers/DocViewerPanel.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/gspace/client/viewers/DocViewerPanel.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -1,202 +0,0 @@ -package cc.kune.gspace.client.viewers; - -import org.waveprotocol.box.webclient.client.ClientIdGenerator; -import org.waveprotocol.box.webclient.client.RemoteViewServiceMultiplexer; -import org.waveprotocol.box.webclient.client.Session; -import org.waveprotocol.box.webclient.client.SimpleWaveStore; -import org.waveprotocol.box.webclient.client.StagesProvider; -import org.waveprotocol.box.webclient.client.WaveWebSocketClient; -import org.waveprotocol.box.webclient.search.WaveStore; -import org.waveprotocol.box.webclient.widget.loading.LoadingIndicator; -import org.waveprotocol.wave.client.account.ProfileManager; -import org.waveprotocol.wave.client.account.impl.ProfileManagerImpl; -import org.waveprotocol.wave.client.widget.common.ImplPanel; -import org.waveprotocol.wave.model.id.IdGenerator; -import org.waveprotocol.wave.model.wave.ParticipantId; -import org.waveprotocol.wave.model.waveref.InvalidWaveRefException; -import org.waveprotocol.wave.model.waveref.WaveRef; -import org.waveprotocol.wave.util.escapers.GwtWaverefEncoder; - -import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection; -import cc.kune.common.client.errors.UIException; -import cc.kune.common.client.ui.HasEditHandler; -import cc.kune.common.client.ui.UiUtils; -import cc.kune.core.client.registry.ContentCapabilitiesRegistry; -import cc.kune.core.shared.dto.StateContentDTO; -import cc.kune.core.shared.i18n.I18nTranslationService; -import cc.kune.gspace.client.GSpaceArmor; -import cc.kune.gspace.client.viewers.DocViewerPresenter.DocViewerView; -import cc.kune.wave.client.WaveClientManager; -import cc.kune.wave.client.WebClient; - -import com.google.gwt.core.client.GWT; -import com.google.gwt.dom.client.Document; -import com.google.gwt.dom.client.Element; -import com.google.gwt.safehtml.shared.SafeHtmlUtils; -import com.google.gwt.uibinder.client.UiBinder; -import com.google.gwt.uibinder.client.UiField; -import com.google.gwt.user.client.Command; -import com.google.gwt.user.client.ui.DeckPanel; -import com.google.gwt.user.client.ui.InlineHTML; -import com.google.gwt.user.client.ui.InsertPanel.ForIsWidget; -import com.google.gwt.user.client.ui.Widget; -import com.google.inject.Inject; -import com.gwtplatform.mvp.client.ViewImpl; - -public class DocViewerPanel extends ViewImpl implements DocViewerView { - interface DocsViewerPanelUiBinder extends UiBinder<Widget, DocViewerPanel> { - } - - private static final RemoteViewServiceMultiplexer NO_CHANNEL = null; - - private static DocsViewerPanelUiBinder uiBinder = GWT.create(DocsViewerPanelUiBinder.class); - - private final ContentCapabilitiesRegistry capabilitiesRegistry; - private RemoteViewServiceMultiplexer channel; - private final ContentTitleWidget contentTitle; - @UiField - DeckPanel deck; - private final GSpaceArmor gsArmor; - private IdGenerator idGenerator; - private final Element loading = new LoadingIndicator().getElement(); - @UiField - InlineHTML onlyViewPanel; - private ProfileManager profiles; - /** The wave panel, if a wave is open. */ - private StagesProvider wave; - private final WaveClientManager waveClient; - @UiField - ImplPanel waveHolder; - - private final WaveStore waveStore = new SimpleWaveStore(); - - private final Widget widget; - - @Inject - public DocViewerPanel(final GSpaceArmor wsArmor, final WaveClientManager waveClient, - final ContentCapabilitiesRegistry capabilitiesRegistry, final I18nTranslationService i18n) { - this.gsArmor = wsArmor; - this.waveClient = waveClient; - this.capabilitiesRegistry = capabilitiesRegistry; - widget = uiBinder.createAndBindUi(this); - contentTitle = new ContentTitleWidget(i18n, gsArmor, capabilitiesRegistry.getIconsRegistry()); - loading.addClassName("kune-Margin-40-tb"); - } - - @Override - public Widget asWidget() { - return widget; - } - - @Override - public void attach() { - final ForIsWidget docContainer = gsArmor.getDocContainer(); - docContainer.add(widget); - } - - @Override - public void clear() { - onlyViewPanel.setHTML(""); - gsArmor.getSubheaderToolbar().clear(); - UiUtils.clear(gsArmor.getDocContainer()); - UiUtils.clear(gsArmor.getDocHeader()); - } - - @Override - public void detach() { - clear(); - } - - @Override - public HasEditHandler getEditTitle() { - return contentTitle.getEditableTitle(); - } - - private WaveRef getWaveRef(final String waveRefS) { - try { - return GwtWaverefEncoder.decodeWaveRefFromPath(waveRefS); - } catch (final InvalidWaveRefException e) { - throw new UIException("Invalid waveref: " + waveRefS); - } - } - - private void initWaveClientIfNeeded() { - if (channel == null) { - final WaveWebSocketClient webSocket = new WaveWebSocketClient(WebClient.useSocketIO(), - WebClient.getWebSocketBaseUrl(GWT.getModuleBaseURL())); - webSocket.connect(); - channel = new RemoteViewServiceMultiplexer(webSocket, - new ParticipantId(Session.get().getAddress()).getAddress()); - profiles = new ProfileManagerImpl(Session.get().getDomain()); - idGenerator = ClientIdGenerator.create(); - } - } - - @Override - public void setActions(final GuiActionDescCollection actions) { - gsArmor.getSubheaderToolbar().clear(); - gsArmor.getSubheaderToolbar().addAll(actions); - } - - @Override - public void setContent(final StateContentDTO state) { - final boolean editable = state.getContentRights().isEditable(); - setTitle(state, editable); - onlyViewPanel.setHTML(SafeHtmlUtils.fromTrustedString(state.getContent())); - deck.showWidget(1); - } - - @Override - public void setEditableContent(final StateContentDTO state) { - setTitle(state, true); - setEditableWaveContent(state.getWaveRef(), false); - deck.showWidget(0); - } - - @Override - public void setEditableTitle(final String title) { - contentTitle.setText(title); - } - - private void setEditableWaveContent(final String waveRefS, final boolean isNewWave) { - final WaveRef waveRef = getWaveRef(waveRefS); - - if (wave != null) { - wave.destroy(); - wave = null; - } - - initWaveClientIfNeeded(); - - // Release the display:none. - // UIObject.setVisible(waveFrame.getElement(), true); - waveHolder.getElement().appendChild(loading); - final Element holder = waveHolder.getElement().appendChild(Document.get().createDivElement()); - final StagesProvider wave = new StagesProvider(holder, waveHolder, waveRef, channel, idGenerator, - profiles, waveStore, isNewWave); - this.wave = wave; - wave.load(new Command() { - @Override - public void execute() { - loading.removeFromParent(); - } - }); - } - - private void setTitle(final StateContentDTO state, final boolean editable) { - contentTitle.setTitle(state.getTitle(), state.getTypeId(), state.getMimeType(), editable - && capabilitiesRegistry.isRenamable(state.getTypeId())); - } - - @Override - public void signIn() { - // Do nothing (now) - // initWaveClientIfNeeded(); - } - - @Override - public void signOut() { - channel = NO_CHANNEL; - } - -} Deleted: trunk/src/main/java/cc/kune/gspace/client/viewers/DocViewerPanel.ui.xml =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/viewers/DocViewerPanel.ui.xml 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/gspace/client/viewers/DocViewerPanel.ui.xml 2011-05-05 23:52:34 UTC (rev 1349) @@ -1,28 +0,0 @@ -<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> -<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" - xmlns:g='urn:import:com.google.gwt.user.client.ui' xmlns:f='urn:import:org.waveprotocol.box.webclient.widget.frame' - xmlns:w='urn:import:org.waveprotocol.wave.client.widget.common'> - <ui:style> - .wavePanel { - margin: 0 0 0 0; - } - - .waveHolder { - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - } - - .viewonly { - margin: 5px; - } - </ui:style> - <g:HTMLPanel width="100%" height="100%"> - <g:DeckPanel ui:field="deck" addStyleNames="k-doc-content-deck"> - <w:ImplPanel ui:field="waveHolder" addStyleNames="{style.waveHolder}" /> - <g:InlineHTML ui:field="onlyViewPanel" styleName="{style.viewonly}" /> - </g:DeckPanel> - </g:HTMLPanel> -</ui:UiBinder> \ No newline at end of file Deleted: trunk/src/main/java/cc/kune/gspace/client/viewers/DocViewerPresenter.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/viewers/DocViewerPresenter.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/gspace/client/viewers/DocViewerPresenter.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -1,171 +0,0 @@ -package cc.kune.gspace.client.viewers; - -import javax.annotation.Nonnull; - -import cc.kune.blogs.client.actions.BlogsClientActions; -import cc.kune.blogs.shared.BlogsConstants; -import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection; -import cc.kune.common.client.errors.UIException; -import cc.kune.common.client.ui.EditEvent; -import cc.kune.common.client.ui.EditEvent.EditHandler; -import cc.kune.common.client.ui.HasEditHandler; -import cc.kune.core.client.actions.ActionRegistryByType; -import cc.kune.core.client.state.Session; -import cc.kune.core.client.state.UserSignInEvent; -import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler; -import cc.kune.core.client.state.UserSignOutEvent; -import cc.kune.core.client.state.UserSignOutEvent.UserSignOutHandler; -import cc.kune.core.shared.domain.utils.AccessRights; -import cc.kune.core.shared.domain.utils.StateToken; -import cc.kune.core.shared.dto.HasContent; -import cc.kune.core.shared.dto.StateContentDTO; -import cc.kune.docs.client.actions.DocsClientActions; -import cc.kune.docs.shared.DocsConstants; -import cc.kune.gspace.client.actions.ActionGroups; -import cc.kune.gspace.client.actions.RenameAction; -import cc.kune.gspace.client.actions.RenameListener; -import cc.kune.gspace.client.tool.ContentViewer; -import cc.kune.gspace.client.tool.ContentViewerSelector; - -import com.google.gwt.event.shared.EventBus; -import com.google.gwt.event.shared.HandlerRegistration; -import com.google.inject.Inject; -import com.google.inject.Provider; -import com.gwtplatform.mvp.client.Presenter; -import com.gwtplatform.mvp.client.View; -import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit; -import com.gwtplatform.mvp.client.proxy.Proxy; -import com.gwtplatform.mvp.client.proxy.RevealRootContentEvent; - -public class DocViewerPresenter extends - Presenter<DocViewerPresenter.DocViewerView, DocViewerPresenter.DocViewerProxy> implements - ContentViewer { - - @ProxyCodeSplit - public interface DocViewerProxy extends Proxy<DocViewerPresenter> { - } - - public interface DocViewerView extends View { - - void attach(); - - void clear(); - - void detach(); - - HasEditHandler getEditTitle(); - - void setActions(GuiActionDescCollection actions); - - void setContent(StateContentDTO state); - - void setEditableContent(StateContentDTO state); - - void setEditableTitle(String title); - - void signIn(); - - void signOut(); - } - - private final ActionRegistryByType actionsRegistry; - private HandlerRegistration editHandler; - private final Provider<RenameAction> renameAction; - private final Session session; - - @Inject - public DocViewerPresenter(final EventBus eventBus, final DocViewerView view, - final DocViewerProxy proxy, final Session session, final ContentViewerSelector viewerSelector, - final ActionRegistryByType actionsRegistry, final DocsClientActions docsActions, - final BlogsClientActions blogActions, final Provider<RenameAction> renameAction) { - super(eventBus, view, proxy); - this.session = session; - this.actionsRegistry = actionsRegistry; - this.renameAction = renameAction; - viewerSelector.register(this, true, DocsConstants.TYPE_DOCUMENT); - viewerSelector.register(this, true, BlogsConstants.TYPE_POST); - session.onUserSignOut(true, new UserSignOutHandler() { - @Override - public void onUserSignOut(final UserSignOutEvent event) { - getView().signOut(); - } - }); - session.onUserSignIn(true, new UserSignInHandler() { - - @Override - public void onUserSignIn(final UserSignInEvent event) { - getView().signIn(); - } - }); - - } - - @Override - public void attach() { - getView().attach(); - if (editHandler == null) { - createEditHandler(); - } - } - - private void createEditHandler() { - editHandler = getView().getEditTitle().addEditHandler(new EditHandler() { - @Override - public void fire(final EditEvent event) { - renameAction.get().rename(session.getCurrentStateToken(), session.getCurrentState().getTitle(), - event.getText(), new RenameListener() { - @Override - public void onFail(final StateToken token, final String oldTitle) { - getView().setEditableTitle(oldTitle); - } - - @Override - public void onSuccess(final StateToken token, final String title) { - getView().setEditableTitle(title); - } - }); - } - }); - } - - @Override - public void detach() { - getView().detach(); - } - - @Override - protected void revealInParent() { - RevealRootContentEvent.fire(this, this); - } - - @Override - public void setContent(@Nonnull final HasContent state) { - getView().clear(); - final StateContentDTO stateContent = (StateContentDTO) state; - final AccessRights rights = stateContent.getContentRights(); - if (session.isLogged() && rights.isEditable()) { - if (stateContent.isParticipant()) { - // is already participant, show wave editor - if (org.waveprotocol.box.webclient.client.Session.get().isLoggedIn()) { - getView().setEditableContent(stateContent); - } else { - getView().setContent(stateContent); - // When logged setEditable! - } - } else { - // add "participate" action - getView().setContent(stateContent); - } - } else { - if (rights.isVisible()) { - // Show contents - getView().setContent(stateContent); - } else { - throw new UIException("Unexpected status in Viewer"); - } - } - final GuiActionDescCollection actions = actionsRegistry.getCurrentActions(stateContent.getGroup(), - stateContent.getTypeId(), session.isLogged(), rights, ActionGroups.VIEW); - getView().setActions(actions); - } -} \ No newline at end of file Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerPresenter.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerPresenter.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerPresenter.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -2,7 +2,7 @@ import javax.annotation.Nonnull; -import cc.kune.blogs.shared.BlogsConstants; +import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor; import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection; import cc.kune.common.client.ui.EditEvent; import cc.kune.common.client.ui.EditEvent.EditHandler; @@ -24,12 +24,11 @@ import cc.kune.core.shared.dto.HasContent; import cc.kune.core.shared.dto.StateContainerDTO; import cc.kune.core.shared.i18n.I18nTranslationService; -import cc.kune.docs.shared.DocsConstants; import cc.kune.gspace.client.actions.ActionGroups; +import cc.kune.gspace.client.actions.GotoTokenAction; import cc.kune.gspace.client.actions.RenameAction; import cc.kune.gspace.client.actions.RenameListener; import cc.kune.gspace.client.tool.ContentViewer; -import cc.kune.gspace.client.tool.ContentViewerSelector; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; @@ -77,6 +76,11 @@ void showEmptyMsg(); } + protected static final String CSSBTN = "k-button"; + protected static final String CSSBTNC = "k-button, k-button-center"; + protected static final String CSSBTNL = "k-button, k-button-left"; + protected static final String CSSBTNR = "k-button, k-button-right"; + private final ActionRegistryByType actionsRegistry; private final ContentCapabilitiesRegistry capabilitiesRegistry; @@ -93,10 +97,9 @@ @Inject public FolderViewerPresenter(final EventBus eventBus, final FolderViewerView view, final FolderViewerProxy proxy, final Session session, final StateManager stateManager, - final I18nTranslationService i18n, final ContentViewerSelector viewerSelector, - final ActionRegistryByType actionsRegistry, + final I18nTranslationService i18n, final ActionRegistryByType actionsRegistry, final Provider<FileDownloadUtils> downloadUtilsProvider, - final ContentCapabilitiesRegistry capabilitiesRegistry, final Provider<RenameAction> renameAction) { + final Provider<RenameAction> renameAction, final ContentCapabilitiesRegistry capabilitiesRegistry) { super(eventBus, view, proxy); this.session = session; this.stateManager = stateManager; @@ -105,8 +108,6 @@ this.downloadUtilsProvider = downloadUtilsProvider; this.capabilitiesRegistry = capabilitiesRegistry; iconsRegistry = capabilitiesRegistry.getIconsRegistry(); - viewerSelector.register(this, true, DocsConstants.TYPE_ROOT, DocsConstants.TYPE_FOLDER); - viewerSelector.register(this, true, BlogsConstants.TYPE_ROOT, BlogsConstants.TYPE_BLOG); useGenericImageIcon = false; this.renameAction = renameAction; } @@ -148,6 +149,19 @@ } } + String calculateStyle(final int pos, final int length) { + if (length == 1) { + return CSSBTN; + } + if (pos == 0) { + return CSSBTNL; + } + if (pos == length - 1) { + return CSSBTNR; + } + return CSSBTNC; + } + private void createChildItems(final ContainerDTO container, final AccessRights containerRights) { if (container.getContents().size() + container.getChilds().size() == 0) { getView().showEmptyMsg(); @@ -189,6 +203,27 @@ }); } + private void createPath(final ContainerDTO container, final GuiActionDescCollection actions) { + final ContainerSimpleDTO[] path = container.getAbsolutePath(); + final int pathLength = path.length; + if (pathLength > 0) { + for (int i = 0; i < pathLength; i++) { + final ButtonDescriptor btn = createPathButton(path[i], pathLength, i); + actions.add(btn); + } + } + + } + + private ButtonDescriptor createPathButton(final ContainerSimpleDTO container, final int length, + final int pos) { + final String style = calculateStyle(pos, length); + final ButtonDescriptor btn = new ButtonDescriptor(new GotoTokenAction( + iconsRegistry.getContentTypeIcon(container.getTypeId()), container.getName(), + container.getStateToken(), style, stateManager, getEventBus())); + return btn; + } + @Override public void detach() { getView().detach(); @@ -233,8 +268,9 @@ final AccessRights rights = stateContainer.getContainerRights(); final GuiActionDescCollection actions = actionsRegistry.getCurrentActions(stateContainer.getGroup(), stateContainer.getTypeId(), session.isLogged(), rights, ActionGroups.VIEW); + final ContainerDTO container = stateContainer.getContainer(); + createPath(container, actions); getView().setActions(actions); - createChildItems(stateContainer.getContainer(), stateContainer.getContainerRights()); - // view.setEditable(rights.isEditable()); + createChildItems(container, stateContainer.getContainerRights()); } } \ No newline at end of file Modified: trunk/src/test/java/cc/kune/core/server/manager/ContentManagerTest.java =================================================================== --- trunk/src/test/java/cc/kune/core/server/manager/ContentManagerTest.java 2011-05-05 21:20:17 UTC (rev 1348) +++ trunk/src/test/java/cc/kune/core/server/manager/ContentManagerTest.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -50,6 +50,7 @@ assertEquals(mimetype, newCnt.getMimeType().toString()); } + @Ignore @Test public void testBasicBodySearch() { createContent(); Added: trunk/src/test/java/cc/kune/gspace/client/viewers/FolderViewerPresenterTest.java =================================================================== --- trunk/src/test/java/cc/kune/gspace/client/viewers/FolderViewerPresenterTest.java (rev 0) +++ trunk/src/test/java/cc/kune/gspace/client/viewers/FolderViewerPresenterTest.java 2011-05-05 23:52:34 UTC (rev 1349) @@ -0,0 +1,50 @@ +package cc.kune.gspace.client.viewers; + +import static cc.kune.gspace.client.viewers.FolderViewerPresenter.CSSBTN; +import static cc.kune.gspace.client.viewers.FolderViewerPresenter.CSSBTNC; +import static cc.kune.gspace.client.viewers.FolderViewerPresenter.CSSBTNL; +import static cc.kune.gspace.client.viewers.FolderViewerPresenter.CSSBTNR; +import static org.junit.Assert.assertEquals; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mockito; + +import cc.kune.core.client.registry.ContentCapabilitiesRegistry; + +public class FolderViewerPresenterTest { + + private FolderViewerPresenter presenter; + + @Before + public void before() { + presenter = new FolderViewerPresenter(null, null, null, null, null, null, null, null, null, + Mockito.mock(ContentCapabilitiesRegistry.class)); + } + + @Test + public void with1() { + assertEquals(CSSBTN, presenter.calculateStyle(0, 1)); + } + + @Test + public void with2() { + assertEquals(CSSBTNL, presenter.calculateStyle(0, 2)); + assertEquals(CSSBTNR, presenter.calculateStyle(1, 2)); + } + + @Test + public void with3() { + assertEquals(CSSBTNL, presenter.calculateStyle(0, 3)); + assertEquals(CSSBTNC, presenter.calculateStyle(1, 3)); + assertEquals(CSSBTNR, presenter.calculateStyle(2, 3)); + } + + @Test + public void with4() { + assertEquals(CSSBTNL, presenter.calculateStyle(0, 4)); + assertEquals(CSSBTNC, presenter.calculateStyle(1, 4)); + assertEquals(CSSBTNC, presenter.calculateStyle(2, 4)); + assertEquals(CSSBTNR, presenter.calculateStyle(3, 4)); + } +} Property changes on: trunk/src/test/java/cc/kune/gspace/client/viewers/FolderViewerPresenterTest.java ___________________________________________________________________ Name: svn:mime-type + text/plain
participants (1)
-
Vicente J. Ruiz Jurado