kune-commits
Threads by month
- ----- 2026 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
June 2011
- 3 participants
- 40 discussions
Author: vjrj_
Date: 2011-06-27 03:10:49 +0200 (Mon, 27 Jun 2011)
New Revision: 1425
Added:
trunk/img/screenshots/
trunk/img/screenshots/apachewave-powered.png
trunk/img/screenshots/chat-rooms.png
trunk/img/screenshots/chat-with-buddies-2.png
trunk/img/screenshots/chat-with-buddies.png
trunk/img/screenshots/concurrent-edit-and-chat.png
trunk/img/screenshots/creating-new-content.png
trunk/img/screenshots/group-creation.png
trunk/img/screenshots/group-just-created.png
trunk/img/screenshots/group-public-space.png
trunk/img/screenshots/group-style-2.png
trunk/img/screenshots/group-style.png
trunk/img/screenshots/group-styled.png
trunk/img/screenshots/group-tools.png
trunk/img/screenshots/inbox.png
trunk/img/screenshots/license-wizard.png
trunk/img/screenshots/managin-content.png
trunk/img/screenshots/personal-options.png
trunk/img/screenshots/personal-spaces.png
trunk/img/screenshots/social-net-of-a-group.png
trunk/img/screenshots/wave-gadgets.png
Removed:
trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/GalleryContextPresenter.java
trunk/src/main/java/org/ourproject/kune/wiki/KuneWiki.gwt.xml
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiMessages.java
trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/
trunk/src/main/java/org/ourproject/kune/wiki/client/ctx/
trunk/src/main/java/org/ourproject/kune/wiki/public/
trunk/src/main/java/org/ourproject/kune/workspace/client/cxt/
trunk/src/main/java/org/ourproject/kune/workspace/client/site/WorkspaceNotifyUser.java
trunk/src/main/java/org/ourproject/kune/workspace/client/site/msg/
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitelogo/
trunk/src/main/java/org/ourproject/kune/workspace/client/title/
Modified:
trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java
trunk/src/main/java/org/ourproject/kune/workspace/client/OldAbstractFoldableContentActions.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/ContentEditorPresenter.java
Log:
screenshots & deletions
Added: trunk/img/screenshots/apachewave-powered.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/screenshots/apachewave-powered.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/img/screenshots/chat-rooms.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/screenshots/chat-rooms.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/img/screenshots/chat-with-buddies-2.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/screenshots/chat-with-buddies-2.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/img/screenshots/chat-with-buddies.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/screenshots/chat-with-buddies.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/img/screenshots/concurrent-edit-and-chat.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/screenshots/concurrent-edit-and-chat.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/img/screenshots/creating-new-content.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/screenshots/creating-new-content.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/img/screenshots/group-creation.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/screenshots/group-creation.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/img/screenshots/group-just-created.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/screenshots/group-just-created.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/img/screenshots/group-public-space.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/screenshots/group-public-space.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/img/screenshots/group-style-2.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/screenshots/group-style-2.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/img/screenshots/group-style.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/screenshots/group-style.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/img/screenshots/group-styled.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/screenshots/group-styled.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/img/screenshots/group-tools.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/screenshots/group-tools.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/img/screenshots/inbox.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/screenshots/inbox.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/img/screenshots/license-wizard.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/screenshots/license-wizard.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/img/screenshots/managin-content.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/screenshots/managin-content.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/img/screenshots/personal-options.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/screenshots/personal-options.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/img/screenshots/personal-spaces.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/screenshots/personal-spaces.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/img/screenshots/social-net-of-a-group.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/screenshots/social-net-of-a-group.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/img/screenshots/wave-gadgets.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/screenshots/wave-gadgets.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java 2011-06-26 22:30:12 UTC (rev 1424)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java 2011-06-27 01:10:49 UTC (rev 1425)
@@ -26,8 +26,6 @@
import org.ourproject.kune.gallery.client.cnt.GalleryViewer;
import org.ourproject.kune.workspace.client.OldAbstractFoldableContentActions;
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
-import org.ourproject.kune.workspace.client.cxt.ContextActionRegistry;
-import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
import org.ourproject.kune.workspace.client.editor.ContentEditor;
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.upload.FileUploader;
@@ -53,15 +51,12 @@
final Provider<GroupServiceAsync> groupServiceProvider,
final Provider<FileUploader> fileUploaderProvider,
final ContentActionRegistry contentActionRegistry,
- final ContextActionRegistry contextActionRegistry,
final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
- final GalleryViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
- final GSpaceBackManager wsBackManager) {
+ final GalleryViewer documentViewer, final GSpaceBackManager wsBackManager) {
super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
- contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
- documentViewer, entityLogo, wsBackManager);
+ fileDownloadProvider, textEditorProvider, documentViewer, entityLogo, wsBackManager);
}
@Override
Deleted: trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/GalleryContextPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/GalleryContextPresenter.java 2011-06-26 22:30:12 UTC (rev 1424)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/GalleryContextPresenter.java 2011-06-27 01:10:49 UTC (rev 1425)
@@ -1,37 +0,0 @@
-/*
- *
- * 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 org.ourproject.kune.gallery.client.ctx;
-
-import org.ourproject.kune.gallery.client.GalleryClientTool;
-import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
-import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
-import org.ourproject.kune.workspace.client.cxt.FoldableContextPresenter;
-
-import cc.kune.core.client.state.StateManager;
-
-import com.calclab.suco.client.ioc.Provider;
-
-public class GalleryContextPresenter extends FoldableContextPresenter implements GalleryContext {
- public GalleryContextPresenter(final StateManager stateManager,
- final Provider<ContextNavigator> contextNavigatorProvider,
- final Provider<ContextPropEditor> contextPropEditorProvider) {
- super(GalleryClientTool.NAME, stateManager, contextNavigatorProvider, contextPropEditorProvider);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/wiki/KuneWiki.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/KuneWiki.gwt.xml 2011-06-26 22:30:12 UTC (rev 1424)
+++ trunk/src/main/java/org/ourproject/kune/wiki/KuneWiki.gwt.xml 2011-06-27 01:10:49 UTC (rev 1425)
@@ -1,7 +0,0 @@
-<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.1.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.1.0/distro-source/core/…">
-<module>
- <inherits name="cc.kune.core.Core" />
- <inherits name='org.ourproject.kune.platf.KunePlatform' />
- <inherits name='org.ourproject.kune.workspace.KuneWorkspace' />
- <source path="client" />
-</module>
\ No newline at end of file
Deleted: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java 2011-06-26 22:30:12 UTC (rev 1424)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java 2011-06-27 01:10:49 UTC (rev 1425)
@@ -1,118 +0,0 @@
-/*
- *
- * 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 org.ourproject.kune.wiki.client;
-
-import static org.ourproject.kune.wiki.client.WikiClientTool.TYPE_FOLDER;
-import static org.ourproject.kune.wiki.client.WikiClientTool.TYPE_ROOT;
-import static org.ourproject.kune.wiki.client.WikiClientTool.TYPE_UPLOADEDFILE;
-import static org.ourproject.kune.wiki.client.WikiClientTool.TYPE_WIKIPAGE;
-
-import org.ourproject.kune.wiki.client.cnt.WikiViewer;
-import org.ourproject.kune.workspace.client.OldAbstractFoldableContentActions;
-import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
-import org.ourproject.kune.workspace.client.cxt.ContextActionRegistry;
-import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
-import org.ourproject.kune.workspace.client.editor.ContentEditor;
-import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
-import org.ourproject.kune.workspace.client.upload.FileUploader;
-
-import cc.kune.common.client.utils.SchedulerManager;
-import cc.kune.core.client.cnt.ContentActionRegistry;
-import cc.kune.core.client.errors.ErrorHandler;
-import cc.kune.core.client.i18n.I18nUITranslationService;
-import cc.kune.core.client.rpcservices.ContentServiceAsync;
-import cc.kune.core.client.rpcservices.GroupServiceAsync;
-import cc.kune.core.client.services.FileDownloadUtils;
-import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.StateManager;
-import cc.kune.gspace.client.style.GSpaceBackManager;
-
-import com.calclab.suco.client.ioc.Provider;
-
-public class WikiClientActions extends OldAbstractFoldableContentActions {
- public WikiClientActions(final I18nUITranslationService i18n, final ContextNavigator contextNavigator,
- final Session session, final StateManager stateManager,
- final SchedulerManager deferredCommandWrapper,
- final Provider<ContentServiceAsync> contentServiceProvider,
- final Provider<GroupServiceAsync> groupServiceProvider,
- final Provider<FileUploader> fileUploaderProvider,
- final ContentActionRegistry contentActionRegistry,
- final ContextActionRegistry contextActionRegistry,
- final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
- final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
- final WikiViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
- final GSpaceBackManager wsBackManager) {
- super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
- contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
- contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
- documentViewer, entityLogo, wsBackManager);
- }
-
- @Override
- protected void createActions() {
- final String[] all = { TYPE_ROOT, TYPE_FOLDER, TYPE_WIKIPAGE, TYPE_UPLOADEDFILE };
- final String[] containers = { TYPE_ROOT, TYPE_FOLDER };
- // final String[] contentsModerated = { };
- final String[] containersNoRoot = { TYPE_FOLDER };
- final String[] contents = { TYPE_WIKIPAGE, TYPE_UPLOADEDFILE };
-
- final String parentMenuTitle = i18n.t("Wikipage");
- final String parentMenuTitleCtx = i18n.t("Wiki");
-
- createNewContainerAction(TYPE_FOLDER, "images/nav/folder_add.png", i18n.t("New folder"),
- parentMenuTitleCtx, i18n.t("New"), i18n.t("New folder"), Position.ctx, TYPE_ROOT, TYPE_FOLDER);
-
- createNewContentAction(TYPE_WIKIPAGE, "images/nav/wikipage_add.png", i18n.t("New wikipage"),
- parentMenuTitleCtx, Position.ctx, TYPE_ROOT, TYPE_FOLDER);
-
- // createContentModeratedActions(parentMenuTitle, contentsModerated);
- createTranslateAction(parentMenuTitle, TYPE_FOLDER, TYPE_WIKIPAGE);
- createContentRenameAction(parentMenuTitle, i18n.t("Rename"), contents);
- createRenameContentInCtxAction(parentMenuTitleCtx, i18n.t("Rename"), containersNoRoot);
- createEditAction(parentMenuTitle, TYPE_WIKIPAGE);
-
- // final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupCxt =
- // createSetAsDefContent(parentMenuTitleCtx);
-
- createRefreshCntAction(parentMenuTitle, contents);
- createRefreshCxtAction(parentMenuTitleCtx, containers);
-
- createSetAsDefContent(parentMenuTitle, contents);
- // createSetGroupBackImageAction(parentMenuTitle, TYPE_UPLOADEDFILE);
-
- createUploadAction(i18n.t("Upload file"), "images/nav/upload.png",
- i18n.t("Upload some files (images, PDFs, ...)"), null, containers);
-
- createDownloadActions(TYPE_UPLOADEDFILE);
-
- createGoAction(all);
-
- createGoHomeAction(containers);
-
- createDelContainerAction("Delete folder", parentMenuTitleCtx, containersNoRoot);
- createDelContentAction(parentMenuTitle, i18n.t("Delete"), contents);
- createShowDeletedItems(parentMenuTitleCtx, all);
- }
-
- @Override
- protected void createPostSessionInitActions() {
- // super.createUploadMediaAction();
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java 2011-06-26 22:30:12 UTC (rev 1424)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java 2011-06-27 01:10:49 UTC (rev 1425)
@@ -1,68 +0,0 @@
-/*
- *
- * 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 org.ourproject.kune.wiki.client;
-
-import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.tool.OldFoldableAbstractClientTool;
-
-import cc.kune.core.client.i18n.I18nUITranslationService;
-import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
-import cc.kune.gspace.client.themes.GSpaceThemeManager;
-import cc.kune.gspace.client.tool.selector.ToolSelector;
-
-public class WikiClientTool extends OldFoldableAbstractClientTool {
- public static final String NAME = "wiki";
- public static final String TYPE_FOLDER = NAME + "." + "folder";
- public static final String TYPE_ROOT = NAME + "." + "root";
- public static final String TYPE_UPLOADEDFILE = NAME + "."
- + OldFoldableAbstractClientTool.UPLOADEDFILE_SUFFIX;
- public static final String TYPE_WIKIPAGE = NAME + "." + "wikipage";
-
- public WikiClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
- final GSpaceThemeManager wsThemePresenter, final WorkspaceSkeleton ws,
- final ContentCapabilitiesRegistry cntCapabReg) {
- super(NAME, i18n.t("wiki"), toolSelector, wsThemePresenter, ws, cntCapabReg);
-
- // registerAclEditableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
- registerAuthorableTypes(TYPE_WIKIPAGE, TYPE_UPLOADEDFILE);
- registerDragableTypes(TYPE_WIKIPAGE, TYPE_FOLDER, TYPE_UPLOADEDFILE);
- registerDropableTypes(TYPE_ROOT, TYPE_FOLDER);
- // registerPublishModerableTypes();
- registerRateableTypes(TYPE_UPLOADEDFILE, TYPE_WIKIPAGE);
- registerRenamableTypes(TYPE_FOLDER, TYPE_UPLOADEDFILE, TYPE_WIKIPAGE);
- registerTageableTypes(TYPE_UPLOADEDFILE, TYPE_WIKIPAGE);
- registerTranslatableTypes(TYPE_FOLDER, TYPE_WIKIPAGE);
-
- registerIcons();
- }
-
- @Override
- public String getName() {
- return NAME;
- }
-
- private void registerIcons() {
- registerContentTypeIcon(TYPE_FOLDER, "images/nav/folder.png");
- // registerContentTypeIcon(TYPE_FOLDER, "images/nav/wiki.png");
- registerContentTypeIcon(TYPE_WIKIPAGE, "images/nav/wikipage.png");
- registerUploadTypesAndMimes(TYPE_UPLOADEDFILE);
- }
-
-}
Deleted: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiMessages.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiMessages.java 2011-06-26 22:30:12 UTC (rev 1424)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiMessages.java 2011-06-27 01:10:49 UTC (rev 1425)
@@ -1,23 +0,0 @@
-/*
- *
- * 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 org.ourproject.kune.wiki.client;
-
-public interface WikiMessages {
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/OldAbstractFoldableContentActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/OldAbstractFoldableContentActions.java 2011-06-26 22:30:12 UTC (rev 1424)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/OldAbstractFoldableContentActions.java 2011-06-27 01:10:49 UTC (rev 1425)
@@ -33,8 +33,6 @@
import org.ourproject.kune.platf.client.actions.RadioMustBeChecked;
import org.ourproject.kune.platf.client.ui.noti.OldNotifyUser;
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
-import org.ourproject.kune.workspace.client.cxt.ContextActionRegistry;
-import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
import org.ourproject.kune.workspace.client.editor.ContentEditor;
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.upload.FileUploader;
@@ -84,9 +82,9 @@
protected final ContentActionRegistry contentActionRegistry;
protected final Provider<ContentServiceAsync> contentServiceProvider;
- protected final ContextActionRegistry contextActionRegistry;
+ // protected final ContextActionRegistry contextActionRegistry;
protected final ContextNavigator contextNavigator;
- protected final Provider<ContextPropEditor> contextPropEditorProvider;
+ // protected final Provider<ContextPropEditor> contextPropEditorProvider;
protected final SchedulerManager deferredCommandWrapper;
protected final EntityHeader entityLogo;
protected final ErrorHandler errorHandler;
@@ -107,12 +105,13 @@
final SchedulerManager deferredCommandWrapper,
final Provider<GroupServiceAsync> groupServiceProvider,
final Provider<ContentServiceAsync> contentServiceProvider,
- final Provider<FileUploader> fileUploaderProvider, final ContextNavigator contextNavigator,
+ final Provider<FileUploader> fileUploaderProvider,
+ final ContextNavigator contextNavigator,
final ContentActionRegistry contentActionRegistry,
- final ContextActionRegistry contextActionRegistry,
+ // final ContextActionRegistry contextActionRegistry,
final Provider<FileDownloadUtils> fileDownloadProvider,
final Provider<ContentEditor> textEditorProvider,
- final Provider<ContextPropEditor> contextPropEditorProvider,
+ // final Provider<ContextPropEditor> contextPropEditorProvider,
final FoldableContent foldableContent, final EntityHeader entityLogo,
final GSpaceBackManager wsBackManager) {
this.session = session;
@@ -125,10 +124,10 @@
this.fileUploaderProvider = fileUploaderProvider;
this.contextNavigator = contextNavigator;
this.contentActionRegistry = contentActionRegistry;
- this.contextActionRegistry = contextActionRegistry;
+ // this.contextActionRegistry = contextActionRegistry;
this.fileDownloadProvider = fileDownloadProvider;
this.textEditorProvider = textEditorProvider;
- this.contextPropEditorProvider = contextPropEditorProvider;
+ // this.contextPropEditorProvider = contextPropEditorProvider;
this.foldableContent = foldableContent;
this.entityLogo = entityLogo;
this.wsBackManager = wsBackManager;
@@ -187,7 +186,7 @@
delContainer.setMustBeConfirmed(true);
delContainer.setConfirmationTitle(i18n.t("Please confirm"));
delContainer.setConfirmationText(i18n.t("You will delete it with all its contents. Are you sure?"));
- contextActionRegistry.addAction(delContainer, registerInTypes);
+ // contextActionRegistry.addAction(delContainer, registerInTypes);
}
protected void createDelContentAction(final String parentMenuTitle, final String textDescription,
@@ -243,7 +242,7 @@
downloadCtx.setIconUrl("images/nav/download.png");
// contentActionRegistry.addAction(download, typeUploadedfile);
- contextActionRegistry.addAction(downloadCtx, typeUploadedfile);
+ // contextActionRegistry.addAction(downloadCtx, typeUploadedfile);
}
protected ActionToolbarButtonDescriptor<StateToken> createEditAction(final String fileMenuTitle,
@@ -259,7 +258,7 @@
final ContentEditor editor = textEditorProvider.get();
foldableContent.detach();
contextNavigator.detach();
- contextPropEditorProvider.get().attach();
+ // contextPropEditorProvider.get().attach();
editor.edit(session.getContentState().getContent(), new Listener<String>() {
@Override
public void onEvent(final String html) {
@@ -294,7 +293,7 @@
@Override
public void execute() {
foldableContent.attach();
- contextPropEditorProvider.get().detach();
+ // contextPropEditorProvider.get().detach();
contextNavigator.attach();
if (session.inSameToken(stateToken)) {
contextNavigator.refreshState();
@@ -329,7 +328,7 @@
go.setMustBeAuthenticated(false);
go.setTextDescription(i18n.t("Open"));
go.setIconUrl("images/nav/go.png");
- contextActionRegistry.addAction(go, registerInTypes);
+ // contextActionRegistry.addAction(go, registerInTypes);
return go;
}
@@ -351,7 +350,7 @@
}
});
goGroupHome.setLeftSeparator(ActionToolbarButtonSeparator.fill);
- contextActionRegistry.addAction(goGroupHome, registerInTypes);
+ // contextActionRegistry.addAction(goGroupHome, registerInTypes);
return goGroupHome;
}
@@ -442,7 +441,7 @@
refreshCtx.setParentMenuTitle(parentMenuTitleCtx);
refreshCtx.setTextDescription(i18n.t("Refresh"));
refreshCtx.setIconUrl("images/nav/refresh.png");
- contextActionRegistry.addAction(refreshCtx, registerInTypes);
+ // contextActionRegistry.addAction(refreshCtx, registerInTypes);
return refreshCtx;
}
@@ -457,7 +456,7 @@
});
renameCtx.setTextDescription(textDescription);
renameCtx.setParentMenuTitle(parentMenuTitleCtx);
- contextActionRegistry.addAction(renameCtx, registerInTypes);
+ // contextActionRegistry.addAction(renameCtx, registerInTypes);
return renameCtx;
}
@@ -571,7 +570,7 @@
showDeletedItems.setParentMenuTitle(parentMenuTitle);
showDeletedItems.setTextDescription("Show deleted items");
showDeletedItems.setMustBeAuthenticated(true);
- contextActionRegistry.addAction(showDeletedItems, registerInTypes);
+ // contextActionRegistry.addAction(showDeletedItems, registerInTypes);
}
protected ActionToolbarMenuDescriptor<StateToken> createTranslateAction(final String fileMenuTitle,
@@ -613,7 +612,7 @@
uploadFile.setTextDescription(textDescription);
uploadFile.setIconUrl(iconUrl);
uploadFile.setToolTip(toolTip);
- contextActionRegistry.addAction(uploadFile, registerInTypes);
+ // contextActionRegistry.addAction(uploadFile, registerInTypes);
return uploadFile;
}
@@ -622,7 +621,7 @@
final ActionToolbarButtonAndItemDescriptor<StateToken> uploadMedia = createUploadAction(
i18n.t("Upload media"), "images/nav/upload.png",
i18n.t("Upload some media (images, videos...)"), session.getGalleryPermittedExtensions());
- contextActionRegistry.addAction(uploadMedia, registerInTypes);
+ // contextActionRegistry.addAction(uploadMedia, registerInTypes);
return uploadMedia;
}
@@ -655,7 +654,7 @@
private void register(final ActionToolbarMenuAndItemDescriptor<StateToken> action,
final Position position, final String... registerInTypes) {
if (position.equals(Position.ctx)) {
- contextActionRegistry.addAction(action, registerInTypes);
+ // contextActionRegistry.addAction(action, registerInTypes);
} else if (position.equals(Position.cnt)) {
// contentActionRegistry.addAction(action, registerInTypes);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java 2011-06-26 22:30:12 UTC (rev 1424)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java 2011-06-27 01:10:49 UTC (rev 1425)
@@ -28,8 +28,6 @@
import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbar;
import org.ourproject.kune.platf.client.ui.KuneUiUtils;
import org.ourproject.kune.workspace.client.OldAbstractFoldableContentActions;
-import org.ourproject.kune.workspace.client.cxt.ActionContextBottomToolbar;
-import org.ourproject.kune.workspace.client.title.RenameAction;
import org.ourproject.kune.workspace.client.upload.FileUploader;
import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
@@ -58,315 +56,320 @@
public class ContextNavigatorPresenter implements ContextNavigator {
- private final ActionRegistry<StateToken> actionRegistry;
- private final HashMap<StateToken, ActionItemCollection<StateToken>> actionsByItem;
- private final ActionContextBottomToolbar bottomToolbar;
- private final ContentCapabilitiesRegistry capabilitiesRegistry;
- private final IconsRegistry contentIconsRegistry;
- private final Provider<FileDownloadUtils> downloadUtilsProvider;
- private boolean editOnNextStateChange;
- private final I18nTranslationService i18n;
- private final RenameAction renameAction;
- private final Session session;
- private final StateManager stateManager;
- private final ActionToolbar<StateToken> topToolbar;
- private final boolean useGenericImageIcon;
- private ContextNavigatorView view;
+ private final ActionRegistry<StateToken> actionRegistry;
+ private final HashMap<StateToken, ActionItemCollection<StateToken>> actionsByItem;
+ // private final ActionContextBottomToolbar bottomToolbar;
+ private final ContentCapabilitiesRegistry capabilitiesRegistry;
+ private final IconsRegistry contentIconsRegistry;
+ private final Provider<FileDownloadUtils> downloadUtilsProvider;
+ private boolean editOnNextStateChange;
+ private final I18nTranslationService i18n;
+ // private final RenameAction renameAction;
+ private final Session session;
+ private final StateManager stateManager;
+ private final ActionToolbar<StateToken> topToolbar;
+ private final boolean useGenericImageIcon;
+ private ContextNavigatorView view;
- public ContextNavigatorPresenter(final StateManager stateManager, final Session session,
- final I18nTranslationService i18n, final IconsRegistry contentIconsRegistry,
- final ContentCapabilitiesRegistry capabilitiesRegistry, final ActionToolbar<StateToken> toolbar,
- final ActionContextBottomToolbar bottomToolbar, final ActionRegistry<StateToken> actionRegistry,
- final Provider<FileDownloadUtils> downloadUtilsProvider, final boolean useGenericImageIcon,
- final RenameAction renameAction) {
- this.stateManager = stateManager;
- this.session = session;
- this.i18n = i18n;
- this.contentIconsRegistry = contentIconsRegistry;
- this.capabilitiesRegistry = capabilitiesRegistry;
- this.topToolbar = toolbar;
- this.bottomToolbar = bottomToolbar;
- this.actionRegistry = actionRegistry;
- this.downloadUtilsProvider = downloadUtilsProvider;
- this.useGenericImageIcon = useGenericImageIcon;
- this.renameAction = renameAction;
- actionsByItem = new HashMap<StateToken, ActionItemCollection<StateToken>>();
- editOnNextStateChange = false;
- addRenameListener();
- }
+ public ContextNavigatorPresenter(final StateManager stateManager, final Session session,
+ final I18nTranslationService i18n, final IconsRegistry contentIconsRegistry,
+ final ContentCapabilitiesRegistry capabilitiesRegistry, final ActionToolbar<StateToken> toolbar,
+ final ActionRegistry<StateToken> actionRegistry,
+ final Provider<FileDownloadUtils> downloadUtilsProvider, final boolean useGenericImageIcon) {
+ this.stateManager = stateManager;
+ this.session = session;
+ this.i18n = i18n;
+ this.contentIconsRegistry = contentIconsRegistry;
+ this.capabilitiesRegistry = capabilitiesRegistry;
+ this.topToolbar = toolbar;
+ // this.bottomToolbar = bottomToolbar;
+ this.actionRegistry = actionRegistry;
+ this.downloadUtilsProvider = downloadUtilsProvider;
+ this.useGenericImageIcon = useGenericImageIcon;
+ // this.renameAction = renameAction;
+ actionsByItem = new HashMap<StateToken, ActionItemCollection<StateToken>>();
+ editOnNextStateChange = false;
+ addRenameListener();
+ }
- @Override
- public void addFileUploaderListener(final FileUploader uploader) {
- uploader.addOnUploadCompleteListener(new Listener<StateToken>() {
- @Override
- public void onEvent(final StateToken currentUploadStateToken) {
- if (currentUploadStateToken.hasSameContainer(session.getCurrentStateToken())) {
- stateManager.reload();
- }
- }
- });
- }
+ @Override
+ public void addFileUploaderListener(final FileUploader uploader) {
+ uploader.addOnUploadCompleteListener(new Listener<StateToken>() {
+ @Override
+ public void onEvent(final StateToken currentUploadStateToken) {
+ if (currentUploadStateToken.hasSameContainer(session.getCurrentStateToken())) {
+ stateManager.reload();
+ }
+ }
+ });
+ }
- private ActionItemCollection<StateToken> addItem(final String title, final String contentTypeId,
- final BasicMimeTypeDTO mimeType, final ContentStatus status, final StateToken stateToken,
- final StateToken parentStateToken, final AccessRights rights, final boolean isNodeSelected) {
- final ActionItemCollection<StateToken> toolbarActions = actionRegistry.getCurrentActions(stateToken,
- contentTypeId, session.isLogged(), rights, true);
+ private ActionItemCollection<StateToken> addItem(final String title, final String contentTypeId,
+ final BasicMimeTypeDTO mimeType, final ContentStatus status, final StateToken stateToken,
+ final StateToken parentStateToken, final AccessRights rights, final boolean isNodeSelected) {
+ final ActionItemCollection<StateToken> toolbarActions = actionRegistry.getCurrentActions(stateToken,
+ contentTypeId, session.isLogged(), rights, true);
- final String contentTypeIcon = getIcon(stateToken, contentTypeId, mimeType);
- final String tooltip = getTooltip(stateToken, mimeType);
- final ContextNavigatorItem item = new ContextNavigatorItem(genId(stateToken), genId(parentStateToken),
- contentTypeIcon, title, tooltip, status, stateToken, capabilitiesRegistry.isDragable(contentTypeId)
- && rights.isAdministrable(), capabilitiesRegistry.isDropable(contentTypeId)
- && rights.isAdministrable(), actionRegistry.getCurrentActions(stateToken, contentTypeId,
- session.isLogged(), rights, false));
- if (status.equals(ContentStatus.inTheDustbin) && !session.getShowDeletedContent()) {
- // Don't show
- } else {
- view.addItem(item);
- }
- return toolbarActions;
+ final String contentTypeIcon = getIcon(stateToken, contentTypeId, mimeType);
+ final String tooltip = getTooltip(stateToken, mimeType);
+ final ContextNavigatorItem item = new ContextNavigatorItem(genId(stateToken),
+ genId(parentStateToken), contentTypeIcon, title, tooltip, status, stateToken,
+ capabilitiesRegistry.isDragable(contentTypeId) && rights.isAdministrable(),
+ capabilitiesRegistry.isDropable(contentTypeId) && rights.isAdministrable(),
+ actionRegistry.getCurrentActions(stateToken, contentTypeId, session.isLogged(), rights, false));
+ if (status.equals(ContentStatus.inTheDustbin) && !session.getShowDeletedContent()) {
+ // Don't show
+ } else {
+ view.addItem(item);
}
+ return toolbarActions;
+ }
- private void addListeners() {
- session.onUserSignIn(new Listener<UserInfoDTO>() {
- @Override
- public void onEvent(final UserInfoDTO parameter) {
- clear();
- }
- });
- session.onUserSignOut(new Listener0() {
- @Override
- public void onEvent() {
- clear();
- }
- });
- }
+ private void addListeners() {
+ session.onUserSignIn(new Listener<UserInfoDTO>() {
+ @Override
+ public void onEvent(final UserInfoDTO parameter) {
+ clear();
+ }
+ });
+ session.onUserSignOut(new Listener0() {
+ @Override
+ public void onEvent() {
+ clear();
+ }
+ });
+ }
- private void addRenameListener() {
- final Listener2<StateToken, String> onSuccess = new Listener2<StateToken, String>() {
- @Override
- public void onEvent(final StateToken token, final String newName) {
- setItemText(token, newName);
- }
- };
- final Listener2<StateToken, String> onFail = new Listener2<StateToken, String>() {
- @Override
- public void onEvent(final StateToken token, final String oldName) {
- setItemText(token, oldName);
- }
- };
- renameAction.onSuccess(onSuccess);
- renameAction.onFail(onFail);
- }
+ private void addRenameListener() {
+ final Listener2<StateToken, String> onSuccess = new Listener2<StateToken, String>() {
+ @Override
+ public void onEvent(final StateToken token, final String newName) {
+ setItemText(token, newName);
+ }
+ };
+ final Listener2<StateToken, String> onFail = new Listener2<StateToken, String>() {
+ @Override
+ public void onEvent(final StateToken token, final String oldName) {
+ setItemText(token, oldName);
+ }
+ };
+ // renameAction.onSuccess(onSuccess);
+ // renameAction.onFail(onFail);
+ }
- @Override
- public void attach() {
- // FIXME At the moment detach (removeFromParent) destroy the gwt-ext
- // TreePanel and the widget must be recreated (cannot be attached again
- // like in gwt)
- topToolbar.attach();
- bottomToolbar.attach();
- }
+ @Override
+ public void attach() {
+ // FIXME At the moment detach (removeFromParent) destroy the gwt-ext
+ // TreePanel and the widget must be recreated (cannot be attached again
+ // like in gwt)
+ topToolbar.attach();
+ // bottomToolbar.attach();
+ }
- @Override
- public void clear() {
- topToolbar.clear();
- bottomToolbar.clear();
- view.clear();
- actionsByItem.clear();
- }
+ @Override
+ public void clear() {
+ topToolbar.clear();
+ // bottomToolbar.clear();
+ view.clear();
+ actionsByItem.clear();
+ }
- private void createChildItems(final ContainerDTO container, final AccessRights containerRights) {
- for (final ContainerSimpleDTO siblingFolder : container.getChilds()) {
- addItem(siblingFolder.getName(), siblingFolder.getTypeId(), null, ContentStatus.publishedOnline,
- siblingFolder.getStateToken(),
- siblingFolder.getStateToken().copy().setFolder(siblingFolder.getParentFolderId()), containerRights,
- false);
- }
- for (final ContentSimpleDTO content : container.getContents()) {
- addItem(content.getTitle(), content.getTypeId(), content.getMimeType(), content.getStatus(),
- content.getStateToken(), content.getStateToken().copy().clearDocument(), content.getRights(), false);
- }
+ private void createChildItems(final ContainerDTO container, final AccessRights containerRights) {
+ for (final ContainerSimpleDTO siblingFolder : container.getChilds()) {
+ addItem(siblingFolder.getName(), siblingFolder.getTypeId(), null, ContentStatus.publishedOnline,
+ siblingFolder.getStateToken(),
+ siblingFolder.getStateToken().copy().setFolder(siblingFolder.getParentFolderId()),
+ containerRights, false);
}
+ for (final ContentSimpleDTO content : container.getContents()) {
+ addItem(content.getTitle(), content.getTypeId(), content.getMimeType(), content.getStatus(),
+ content.getStateToken(), content.getStateToken().copy().clearDocument(), content.getRights(),
+ false);
+ }
+ }
- private void createTreePath(final StateToken state, final ContainerSimpleDTO[] absolutePath,
- final AccessRights rights) {
- for (final ContainerSimpleDTO folder : absolutePath) {
- final StateToken folderStateToken = folder.getStateToken();
- final StateToken parentStateToken = state.copy().clearDocument().setFolder(folder.getParentFolderId());
+ private void createTreePath(final StateToken state, final ContainerSimpleDTO[] absolutePath,
+ final AccessRights rights) {
+ for (final ContainerSimpleDTO folder : absolutePath) {
+ final StateToken folderStateToken = folder.getStateToken();
+ final StateToken parentStateToken = state.copy().clearDocument().setFolder(
+ folder.getParentFolderId());
- if (folder.getParentFolderId() != null) {
- addItem(folder.getName(), folder.getTypeId(), null, ContentStatus.publishedOnline, folderStateToken,
- parentStateToken, rights, false);
- } else {
- // Root must be already created
- }
- }
+ if (folder.getParentFolderId() != null) {
+ addItem(folder.getName(), folder.getTypeId(), null, ContentStatus.publishedOnline,
+ folderStateToken, parentStateToken, rights, false);
+ } else {
+ // Root must be already created
+ }
}
+ }
- @Override
- public void detach() {
- view.detach();
- topToolbar.detach();
- bottomToolbar.detach();
- }
+ @Override
+ public void detach() {
+ view.detach();
+ topToolbar.detach();
+ // bottomToolbar.detach();
+ }
- @Override
- public void editItem(final StateToken stateToken) {
- view.editItem(genId(stateToken));
- }
+ @Override
+ public void editItem(final StateToken stateToken) {
+ view.editItem(genId(stateToken));
+ }
- private String genId(final StateToken token) {
- return "k-cnav-" + token.toString().replace(StateToken.SEPARATOR, "-");
- }
+ private String genId(final StateToken token) {
+ return "k-cnav-" + token.toString().replace(StateToken.SEPARATOR, "-");
+ }
- private String getIcon(final StateToken token, final String contentTypeId, final BasicMimeTypeDTO mimeType) {
- if (contentTypeId.equals(TYPE_FOLDER)) {
- return null;
- } else if (!useGenericImageIcon && mimeType != null && mimeType.getType().equals("image")) {
- return downloadUtilsProvider.get().getImageResizedUrl(token, ImageSize.ico);
- } else {
- return (String) contentIconsRegistry.getContentTypeIcon(contentTypeId, mimeType);
- }
+ private String getIcon(final StateToken token, final String contentTypeId,
+ final BasicMimeTypeDTO mimeType) {
+ if (contentTypeId.equals(TYPE_FOLDER)) {
+ return null;
+ } else if (!useGenericImageIcon && mimeType != null && mimeType.getType().equals("image")) {
+ return downloadUtilsProvider.get().getImageResizedUrl(token, ImageSize.ico);
+ } else {
+ return (String) contentIconsRegistry.getContentTypeIcon(contentTypeId, mimeType);
}
+ }
- private String getTooltip(final StateToken token, final BasicMimeTypeDTO mimeType) {
- if (mimeType != null && (mimeType.isImage() || mimeType.isPdf())) {
- return KuneUiUtils.genQuickTipWithImage(
- downloadUtilsProvider.get().getImageResizedUrl(token, ImageSize.thumb), session.getImgCropsize());
- } else {
- return null;
- }
+ private String getTooltip(final StateToken token, final BasicMimeTypeDTO mimeType) {
+ if (mimeType != null && (mimeType.isImage() || mimeType.isPdf())) {
+ return KuneUiUtils.genQuickTipWithImage(
+ downloadUtilsProvider.get().getImageResizedUrl(token, ImageSize.thumb),
+ session.getImgCropsize());
+ } else {
+ return null;
}
+ }
- protected void gotoToken(final String token) {
- stateManager.gotoHistoryToken(token);
- }
+ protected void gotoToken(final String token) {
+ stateManager.gotoHistoryToken(token);
+ }
- public void init(final ContextNavigatorView view) {
- this.view = view;
- addListeners();
- }
+ public void init(final ContextNavigatorView view) {
+ this.view = view;
+ addListeners();
+ }
- @Override
- public boolean isSelected(final StateToken stateToken) {
- return view.isSelected(genId(stateToken));
- }
+ @Override
+ public boolean isSelected(final StateToken stateToken) {
+ return view.isSelected(genId(stateToken));
+ }
- protected void onItemRename(final String token, final String newName, final String oldName) {
- renameAction.rename(new StateToken(token), oldName, newName);
- }
+ protected void onItemRename(final String token, final String newName, final String oldName) {
+ // renameAction.rename(new StateToken(token), oldName, newName);
+ }
- @Override
- public void refreshState() {
- final StateAbstractDTO currentState = session.getCurrentState();
- if (currentState instanceof StateContainerDTO) {
- setState((StateContainerDTO) currentState, true);
- }
+ @Override
+ public void refreshState() {
+ final StateAbstractDTO currentState = session.getCurrentState();
+ if (currentState instanceof StateContainerDTO) {
+ setState((StateContainerDTO) currentState, true);
}
+ }
- @Override
- public void selectItem(final StateToken stateToken) {
- view.selectItem(genId(stateToken));
- topToolbar.disableMenusAndClearButtons();
- bottomToolbar.disableMenusAndClearButtons();
- final ActionItemCollection<StateToken> itemCollection = actionsByItem.get(stateToken);
- topToolbar.addActions(itemCollection, OldAbstractFoldableContentActions.CONTEXT_TOPBAR);
- bottomToolbar.addActions(itemCollection, OldAbstractFoldableContentActions.CONTEXT_BOTTOMBAR);
- }
+ @Override
+ public void selectItem(final StateToken stateToken) {
+ view.selectItem(genId(stateToken));
+ topToolbar.disableMenusAndClearButtons();
+ // bottomToolbar.disableMenusAndClearButtons();
+ final ActionItemCollection<StateToken> itemCollection = actionsByItem.get(stateToken);
+ topToolbar.addActions(itemCollection, OldAbstractFoldableContentActions.CONTEXT_TOPBAR);
+ // bottomToolbar.addActions(itemCollection,
+ // OldAbstractFoldableContentActions.CONTEXT_BOTTOMBAR);
+ }
- private void selectOrEditNode(final boolean select, final StateToken stateToken) {
- // Finaly
- if (editOnNextStateChange) {
- // Code smell
- selectItem(stateToken);
- editItem(stateToken);
- setEditOnNextStateChange(false);
- } else {
- if (select) {
- selectItem(stateToken);
- }
- }
+ private void selectOrEditNode(final boolean select, final StateToken stateToken) {
+ // Finaly
+ if (editOnNextStateChange) {
+ // Code smell
+ selectItem(stateToken);
+ editItem(stateToken);
+ setEditOnNextStateChange(false);
+ } else {
+ if (select) {
+ selectItem(stateToken);
+ }
}
+ }
- @Override
- public void setEditOnNextStateChange(final boolean edit) {
- editOnNextStateChange = edit;
- }
+ @Override
+ public void setEditOnNextStateChange(final boolean edit) {
+ editOnNextStateChange = edit;
+ }
- @Override
- public void setItemStatus(final StateToken stateToken, final ContentStatus status) {
- clear();
- refreshState();
- }
+ @Override
+ public void setItemStatus(final StateToken stateToken, final ContentStatus status) {
+ clear();
+ refreshState();
+ }
- private void setItemText(final StateToken stateToken, final String name) {
- if (view.isAttached()) {
- view.setItemText(genId(stateToken), name);
- }
+ private void setItemText(final StateToken stateToken, final String name) {
+ if (view.isAttached()) {
+ view.setItemText(genId(stateToken), name);
}
+ }
- @Override
- public void setState(final StateContainerDTO state, final boolean select) {
- setStateContainer(state, select);
- }
+ @Override
+ public void setState(final StateContainerDTO state, final boolean select) {
+ setStateContainer(state, select);
+ }
- private void setStateContainer(final StateContainerDTO state, final boolean select) {
- final StateToken stateToken = state.getStateToken();
- final boolean isContent = state instanceof StateContentDTO;
- StateContentDTO stateContent = null;
+ private void setStateContainer(final StateContainerDTO state, final boolean select) {
+ final StateToken stateToken = state.getStateToken();
+ final boolean isContent = state instanceof StateContentDTO;
+ StateContentDTO stateContent = null;
- final ContainerDTO container = state.getContainer();
- final AccessRights containerRights = state.getContainerRights();
- AccessRights rights;
+ final ContainerDTO container = state.getContainer();
+ final AccessRights containerRights = state.getContainerRights();
+ AccessRights rights;
- showRootFolder(state, containerRights);
+ showRootFolder(state, containerRights);
- // Do the path to our current content
- createTreePath(stateToken, container.getAbsolutePath(), containerRights);
+ // Do the path to our current content
+ createTreePath(stateToken, container.getAbsolutePath(), containerRights);
- // Process our current content/container
- final ActionItemCollection<StateToken> actionItems = new ActionItemCollection<StateToken>();
+ // Process our current content/container
+ final ActionItemCollection<StateToken> actionItems = new ActionItemCollection<StateToken>();
- if (isContent) {
- stateContent = (StateContentDTO) state;
- rights = stateContent.getContentRights();
- final ActionItemCollection<StateToken> contentActions = addItem(state.getTitle(), state.getTypeId(),
- stateContent.getMimeType(), stateContent.getStatus(), stateToken, container.getStateToken(),
- rights, false);
- final ActionItemCollection<StateToken> containerActions = actionRegistry.getCurrentActions(
- container.getStateToken(), container.getTypeId(), session.isLogged(), containerRights, true);
- actionItems.addAll(containerActions);
- actionItems.addAll(contentActions);
- } else {
- rights = containerRights;
- final ActionItemCollection<StateToken> containerActions = addItem(container.getName(),
- container.getTypeId(), null, ContentStatus.publishedOnline, container.getStateToken(),
- container.getStateToken().copy().setFolder(container.getParentFolderId()), containerRights, false);
- actionItems.addAll(containerActions);
- }
- view.setEditable(rights.isEditable());
+ if (isContent) {
+ stateContent = (StateContentDTO) state;
+ rights = stateContent.getContentRights();
+ final ActionItemCollection<StateToken> contentActions = addItem(state.getTitle(),
+ state.getTypeId(), stateContent.getMimeType(), stateContent.getStatus(), stateToken,
+ container.getStateToken(), rights, false);
+ final ActionItemCollection<StateToken> containerActions = actionRegistry.getCurrentActions(
+ container.getStateToken(), container.getTypeId(), session.isLogged(), containerRights, true);
+ actionItems.addAll(containerActions);
+ actionItems.addAll(contentActions);
+ } else {
+ rights = containerRights;
+ final ActionItemCollection<StateToken> containerActions = addItem(container.getName(),
+ container.getTypeId(), null, ContentStatus.publishedOnline, container.getStateToken(),
+ container.getStateToken().copy().setFolder(container.getParentFolderId()), containerRights,
+ false);
+ actionItems.addAll(containerActions);
+ }
+ view.setEditable(rights.isEditable());
- actionsByItem.put(stateToken, actionItems);
+ actionsByItem.put(stateToken, actionItems);
- // Process container childs
- createChildItems(container, containerRights);
+ // Process container childs
+ createChildItems(container, containerRights);
- selectOrEditNode(select, stateToken);
+ selectOrEditNode(select, stateToken);
- topToolbar.attach();
- bottomToolbar.attach();
- }
+ topToolbar.attach();
+ // bottomToolbar.attach();
+ }
- private void showRootFolder(final StateContainerDTO state, final AccessRights containerRights) {
- // If container is not a root folder process root (add
- // childs to view)
- final ContainerDTO root = state.getRootContainer();
- if (root != null) {
- // container is not root
- view.setRootItem(genId(root.getStateToken()), i18n.t(root.getName()), root.getStateToken());
- createChildItems(root, containerRights);
- }
+ private void showRootFolder(final StateContainerDTO state, final AccessRights containerRights) {
+ // If container is not a root folder process root (add
+ // childs to view)
+ final ContainerDTO root = state.getRootContainer();
+ if (root != null) {
+ // container is not root
+ view.setRootItem(genId(root.getStateToken()), i18n.t(root.getName()), root.getStateToken());
+ createChildItems(root, containerRights);
}
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/ContentEditorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/ContentEditorPresenter.java 2011-06-26 22:30:12 UTC (rev 1424)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/ContentEditorPresenter.java 2011-06-27 01:10:49 UTC (rev 1425)
@@ -42,7 +42,6 @@
import org.ourproject.kune.platf.client.ui.rte.saving.RTESavingEditorPresenter;
import org.ourproject.kune.workspace.client.skel.Toolbar;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.title.EntityTitle;
import cc.kune.common.client.utils.SchedulerManager;
import cc.kune.common.client.utils.TimerWrapper;
@@ -63,111 +62,113 @@
public class ContentEditorPresenter extends RTESavingEditorPresenter implements ContentEditor {
- public class RenameAction extends AbstractExtendedAction {
- public RenameAction(final String text, final String tooltip, final ImageResource icon) {
- super(text, tooltip, icon);
- }
+ public class RenameAction extends AbstractExtendedAction {
+ public RenameAction(final String text, final String tooltip, final ImageResource icon) {
+ super(text, tooltip, icon);
+ }
- @Override
- public void actionPerformed(final ActionEvent actionEvent) {
- entityTitle.edit();
- }
+ @Override
+ public void actionPerformed(final ActionEvent actionEvent) {
+ // entityTitle.edit();
}
+ }
- private RTEditorPanel editorPanel;
- private final EntityTitle entityTitle;
- // private final SiteSignOutLink siteSignOutLink;
- private final I18nTranslationService i18n;
- private ComplexToolbar sndbar;
- private ComplexToolbar topbar;
- private VerticalPanel vpanel;
- private final WorkspaceSkeleton wspace;
+ private RTEditorPanel editorPanel;
+ // private final EntityTitle entityTitle;
+ // private final SiteSignOutLink siteSignOutLink;
+ private final I18nTranslationService i18n;
+ private ComplexToolbar sndbar;
+ private ComplexToolbar topbar;
+ private VerticalPanel vpanel;
+ private final WorkspaceSkeleton wspace;
- public ContentEditorPresenter(final I18nTranslationService i18n, final Session session,
- final RTEImgResources imgResources, final Provider<InsertLinkDialog> insLinkDialog,
- final Provider<ColorWebSafePalette> palette, final Provider<EditHtmlDialog> editHtmlDialog,
- final Provider<InsertImageDialog> insertImageDialog, final Provider<InsertMediaDialog> insertMediaDialog,
- final Provider<InsertTableDialog> insertTableDialog, final Provider<InsertSpecialCharDialog> insCharDialog,
- final SchedulerManager deferred, final boolean autoSave, final StateManager stateManager,
- final WorkspaceSkeleton wspace, final TimerWrapper timer, final EntityTitle entityTitle) {
- super(i18n, session, imgResources, insLinkDialog, palette, editHtmlDialog, insertImageDialog,
- insertMediaDialog, insertTableDialog, insCharDialog, deferred, autoSave, stateManager, timer);
- super.setExtended(true);
- this.i18n = i18n;
+ public ContentEditorPresenter(final I18nTranslationService i18n, final Session session,
+ final RTEImgResources imgResources, final Provider<InsertLinkDialog> insLinkDialog,
+ final Provider<ColorWebSafePalette> palette, final Provider<EditHtmlDialog> editHtmlDialog,
+ final Provider<InsertImageDialog> insertImageDialog,
+ final Provider<InsertMediaDialog> insertMediaDialog,
+ final Provider<InsertTableDialog> insertTableDialog,
+ final Provider<InsertSpecialCharDialog> insCharDialog, final SchedulerManager deferred,
+ final boolean autoSave, final StateManager stateManager, final WorkspaceSkeleton wspace,
+ final TimerWrapper timer) {
+ super(i18n, session, imgResources, insLinkDialog, palette, editHtmlDialog, insertImageDialog,
+ insertMediaDialog, insertTableDialog, insCharDialog, deferred, autoSave, stateManager, timer);
+ super.setExtended(true);
+ this.i18n = i18n;
- this.entityTitle = entityTitle;
- this.wspace = wspace;
- Window.addWindowClosingHandler(new ClosingHandler() {
- @Override
- public void onWindowClosing(final ClosingEvent event) {
- if (isSavePending()) {
- event.setMessage(i18n.t("You have changes without save. Are you sure?"));
- }
- // onDoSaveAndClose();
- }
- });
- wspace.getEntityWorkspace().addContentListener(new ContainerListenerAdapter() {
- @Override
- public void onResize(final BoxComponent component, final int adjWidth, final int adjHeight,
- final int rawWidth, final int rawHeight) {
- adjHeight(adjHeight);
- }
- });
+ // this.entityTitle = entityTitle;
+ this.wspace = wspace;
+ Window.addWindowClosingHandler(new ClosingHandler() {
+ @Override
+ public void onWindowClosing(final ClosingEvent event) {
+ if (isSavePending()) {
+ event.setMessage(i18n.t("You have changes without save. Are you sure?"));
+ }
+ // onDoSaveAndClose();
+ }
+ });
+ wspace.getEntityWorkspace().addContentListener(new ContainerListenerAdapter() {
+ @Override
+ public void onResize(final BoxComponent component, final int adjWidth, final int adjHeight,
+ final int rawWidth, final int rawHeight) {
+ adjHeight(adjHeight);
+ }
+ });
- }
+ }
- private void addContentActions() {
- final RenameAction renameAction = new RenameAction(i18n.t("Rename"), NO_TEXT, NO_ICON);
- final OldMenuItemDescriptor renameItem = new OldMenuItemDescriptor(super.getFileMenu(), renameAction);
- renameItem.setLocation(RTEditor.TOPBAR);
- final KeyStroke key = KeyStroke.getKeyStroke(Keyboard.KEY_F2, 0);
- renameAction.putValue(Action.ACCELERATOR_KEY, key);
- super.setActionShortcut(key, renameAction);
- addAction(renameItem);
- }
+ private void addContentActions() {
+ final RenameAction renameAction = new RenameAction(i18n.t("Rename"), NO_TEXT, NO_ICON);
+ final OldMenuItemDescriptor renameItem = new OldMenuItemDescriptor(super.getFileMenu(), renameAction);
+ renameItem.setLocation(RTEditor.TOPBAR);
+ final KeyStroke key = KeyStroke.getKeyStroke(Keyboard.KEY_F2, 0);
+ renameAction.putValue(Action.ACCELERATOR_KEY, key);
+ super.setActionShortcut(key, renameAction);
+ addAction(renameItem);
+ }
- private void adjHeight(final int height) {
- final int barHeight = sndbar.getOffsetHeight();
- final int newHeight = height - 20 - barHeight;
- // Log.debug("Sndbar height: " + barHeight + " new height: " +
- // newHeight);
- editorPanel.adjustSize(newHeight);
- vpanel.setCellHeight(editorPanel, String.valueOf(newHeight));
- }
+ private void adjHeight(final int height) {
+ final int barHeight = sndbar.getOffsetHeight();
+ final int newHeight = height - 20 - barHeight;
+ // Log.debug("Sndbar height: " + barHeight + " new height: " +
+ // newHeight);
+ editorPanel.adjustSize(newHeight);
+ vpanel.setCellHeight(editorPanel, String.valueOf(newHeight));
+ }
- @Override
- public void edit(final String html, final Listener<String> onSave, final Listener0 onEditCancelled) {
- super.edit(html, onSave, onEditCancelled);
- final Toolbar contentTopBar = wspace.getEntityWorkspace().getContentTopBar();
- contentTopBar.removeAll();
- contentTopBar.add(topbar);
- wspace.getEntityWorkspace().setContent(vpanel);
- adjHeight(wspace.getEntityWorkspace().getContentHeight());
- // siteSignOutLink.addBeforeSignOut(getBeforeSavingListener());
- }
+ @Override
+ public void edit(final String html, final Listener<String> onSave, final Listener0 onEditCancelled) {
+ super.edit(html, onSave, onEditCancelled);
+ final Toolbar contentTopBar = wspace.getEntityWorkspace().getContentTopBar();
+ contentTopBar.removeAll();
+ contentTopBar.add(topbar);
+ wspace.getEntityWorkspace().setContent(vpanel);
+ adjHeight(wspace.getEntityWorkspace().getContentHeight());
+ // siteSignOutLink.addBeforeSignOut(getBeforeSavingListener());
+ }
- public void init(final ContentEditorView view) {
- super.init(view);
- addContentActions();
- vpanel = new VerticalPanel();
- editorPanel = (RTEditorPanel) super.getEditorArea();
- topbar = ((ComplexToolbar) super.getTopBar());
- sndbar = ((ComplexToolbar) super.getSndBar());
- vpanel.add(sndbar);
- vpanel.add(editorPanel);
- vpanel.setWidth("100%");
- }
+ public void init(final ContentEditorView view) {
+ super.init(view);
+ addContentActions();
+ vpanel = new VerticalPanel();
+ editorPanel = (RTEditorPanel) super.getEditorArea();
+ topbar = ((ComplexToolbar) super.getTopBar());
+ sndbar = ((ComplexToolbar) super.getSndBar());
+ vpanel.add(sndbar);
+ vpanel.add(editorPanel);
+ vpanel.setWidth("100%");
+ }
- @Override
- protected void onCancelConfirmed() {
- wspace.getEntityWorkspace().clearContent();
- super.onCancelConfirmed();
- // siteSignOutLink.addBeforeSignOut(getBeforeSavingListener());
- }
+ @Override
+ protected void onCancelConfirmed() {
+ wspace.getEntityWorkspace().clearContent();
+ super.onCancelConfirmed();
+ // siteSignOutLink.addBeforeSignOut(getBeforeSavingListener());
+ }
- @Override
- public void setFileMenuTitle(final String fileMenuTitleNew) {
- super.getFileMenu().setText(fileMenuTitleNew);
- }
+ @Override
+ public void setFileMenuTitle(final String fileMenuTitleNew) {
+ super.getFileMenu().setText(fileMenuTitleNew);
+ }
}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/site/WorkspaceNotifyUser.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/site/WorkspaceNotifyUser.java 2011-06-26 22:30:12 UTC (rev 1424)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/site/WorkspaceNotifyUser.java 2011-06-27 01:10:49 UTC (rev 1425)
@@ -1,86 +0,0 @@
-/*
- *
- * 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 org.ourproject.kune.workspace.client.site;
-
-import org.ourproject.kune.platf.client.ui.noti.ConfirmationAsk;
-import org.ourproject.kune.platf.client.ui.noti.OldNotifyUser;
-import org.ourproject.kune.platf.client.ui.noti.OldNotifyUser.Level;
-import org.ourproject.kune.workspace.client.site.msg.ToastMessage;
-import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-
-import cc.kune.core.shared.i18n.I18nTranslationService;
-
-import com.calclab.suco.client.events.Listener;
-import com.calclab.suco.client.events.Listener0;
-import com.calclab.suco.client.events.Listener2;
-import com.calclab.suco.client.ioc.Provider;
-
-public class WorkspaceNotifyUser {
-
- public WorkspaceNotifyUser(final OldNotifyUser notifyUser, final I18nTranslationService i18n,
- final Provider<ToastMessage> toaster, final Provider<WorkspaceSkeleton> ws) {
- notifyUser.addProgressNotifier(new Listener<String>() {
- @Override
- public void onEvent(final String message) {
-
- }
- });
- notifyUser.addHideProgressNotifier(new Listener0() {
- @Override
- public void onEvent() {
- // siteProgress.hideProgress();
- }
- });
- notifyUser.addNotifier(new Listener2<Level, String>() {
- @Override
- public void onEvent(final Level level, final String msg) {
- String title = "";
- switch (level) {
- case error:
- title = i18n.t("Error");
- break;
- case important:
- title = i18n.t("Important");
- break;
- case veryImportant:
- title = i18n.t("Alert");
- break;
- case info:
- title = i18n.t("Info");
- break;
- }
- toaster.get().showMessage(title, msg, level);
- }
- });
- notifyUser.addAlerter(new Listener2<String, String>() {
- @Override
- public void onEvent(final String title, final String msg) {
- ws.get().showAlertMessage(title, msg);
- }
- });
- notifyUser.addConfirmationAsker(new Listener<ConfirmationAsk>() {
- @Override
- public void onEvent(final ConfirmationAsk ask) {
- ws.get().askConfirmation(ask.getTitle(), ask.getMessage(), ask.getOnConfirmed(), ask.getOnCancel());
- }
- });
- }
-
-}
1
0
r1424 - in trunk: . src/main/java/cc/kune/core/client/services src/main/java/cc/kune/core/server src/main/java/cc/kune/core/server/manager/file src/main/java/cc/kune/wave src/main/java/cc/kune/wave/client src/main/webapp/others
by Vicente J. Ruiz Jurado 26 Jun '11
by Vicente J. Ruiz Jurado 26 Jun '11
26 Jun '11
Author: vjrj_
Date: 2011-06-27 00:30:12 +0200 (Mon, 27 Jun 2011)
New Revision: 1424
Added:
trunk/src/main/java/cc/kune/core/server/manager/file/UserLogoDownloadManager.java
trunk/src/main/java/cc/kune/wave/client/KuneWaveProfileManager.java
trunk/src/main/webapp/others/unknown.jpg
Modified:
trunk/pom.xml
trunk/src/main/java/cc/kune/core/client/services/FileConstants.java
trunk/src/main/java/cc/kune/core/client/services/FileDownloadUtils.java
trunk/src/main/java/cc/kune/core/server/KuneRackModule.java
trunk/src/main/java/cc/kune/wave/KuneWave.gwt.xml
trunk/src/main/java/cc/kune/wave/client/WaveClientManager.java
trunk/src/main/java/cc/kune/wave/client/WaveGinModule.java
trunk/src/main/java/cc/kune/wave/client/WebClient.java
Log:
Wave client avatar workaround
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-06-26 10:50:56 UTC (rev 1423)
+++ trunk/pom.xml 2011-06-26 22:30:12 UTC (rev 1424)
@@ -979,7 +979,7 @@
<module>${project.groupId}.Kune</module>
</modules>
<copyWebapp>true</copyWebapp>
- <soyc>false</soyc>
+ <compileReport>false</compileReport>
<extraJvmArgs>-Xmx1024m -Xss1024k</extraJvmArgs>
</configuration>
<executions>
Modified: trunk/src/main/java/cc/kune/core/client/services/FileConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/services/FileConstants.java 2011-06-26 10:50:56 UTC (rev 1423)
+++ trunk/src/main/java/cc/kune/core/client/services/FileConstants.java 2011-06-26 22:30:12 UTC (rev 1424)
@@ -21,19 +21,20 @@
public final class FileConstants {
- public final static String HASH = "hash";
- public final static String TOKEN = "token";
- public final static String DOWNLOAD = "download";
- public final static String IMGSIZE = "imgsize";
- public final static String FILENAME = "filename";
- public final static String TYPE_ID = "typeid";
- public final static String USER_LOGO_FIELD = "k-ulogov-ff";
- public final static String GROUP_LOGO_FIELD = "k-glogov-ff";
- public final static int LOGO_DEF_HEIGHT = 60;
- public final static int LOGO_DEF_WIDTH = 468;
- public final static int LOGO_MIN_HEIGHT = 28;
- public final static int LOGO_MIN_WIDTH = 468;
+ public final static String DOWNLOAD = "download";
+ public final static String FILENAME = "filename";
+ public final static String GROUP_LOGO_FIELD = "k-glogov-ff";
+ public final static String HASH = "hash";
+ public final static String IMGSIZE = "imgsize";
+ public final static int LOGO_DEF_HEIGHT = 60;
+ public final static int LOGO_DEF_WIDTH = 468;
+ public final static int LOGO_MIN_HEIGHT = 28;
+ public final static int LOGO_MIN_WIDTH = 468;
+ public final static String TOKEN = "token";
+ public final static String TYPE_ID = "typeid";
+ public final static String USER_LOGO_FIELD = "k-ulogov-ff";
+ public final static String USERNAME = "username";
- private FileConstants() {
- }
+ private FileConstants() {
+ }
}
Modified: trunk/src/main/java/cc/kune/core/client/services/FileDownloadUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/services/FileDownloadUtils.java 2011-06-26 10:50:56 UTC (rev 1423)
+++ trunk/src/main/java/cc/kune/core/client/services/FileDownloadUtils.java 2011-06-26 22:30:12 UTC (rev 1424)
@@ -33,6 +33,7 @@
public class FileDownloadUtils {
+ private static final String AVATARDOWNLOADSERVLET = "servlets/UserLogoDownloadManager";
private static final String BACKDOWNLOADSERVLET = "servlets/EntityBackgroundDownloadManager";
private static final String DOWNLOADSERVLET = "servlets/FileDownloadManager";
protected static final String GROUP_NO_AVATAR_IMAGE = "images/group-def-icon.png";
@@ -112,6 +113,11 @@
return calculateUrl(token, false, false);
}
+ public String getUserAvatar(final String username) {
+ return new Url(GWT.getModuleBaseURL() + AVATARDOWNLOADSERVLET, new UrlParam(FileConstants.USERNAME,
+ username)).toString();
+ }
+
public String getUserAvatar(final UserSimpleDTO user) {
return user.hasLogo() ? getLogoImageUrl(user.getStateToken()) : PERSON_NO_AVATAR_IMAGE;
}
Modified: trunk/src/main/java/cc/kune/core/server/KuneRackModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/KuneRackModule.java 2011-06-26 10:50:56 UTC (rev 1423)
+++ trunk/src/main/java/cc/kune/core/server/KuneRackModule.java 2011-06-26 22:30:12 UTC (rev 1424)
@@ -40,6 +40,7 @@
import cc.kune.core.server.manager.file.FileDownloadManager;
import cc.kune.core.server.manager.file.FileGwtUploadServlet;
import cc.kune.core.server.manager.file.FileUploadManager;
+import cc.kune.core.server.manager.file.UserLogoDownloadManager;
import cc.kune.core.server.properties.PropertiesFileName;
import cc.kune.core.server.rack.RackBuilder;
import cc.kune.core.server.rack.RackModule;
@@ -142,7 +143,8 @@
UserJSONService.class, I18nTranslationJSONService.class, ContentJSONService.class);
builder.installServlet("^/ws/servlets/", FileUploadManager.class, FileDownloadManager.class,
EntityLogoUploadManager.class, EntityLogoDownloadManager.class, FileGwtUploadServlet.class,
- EntityBackgroundDownloadManager.class, EntityBackgroundUploadManager.class);
+ EntityBackgroundDownloadManager.class, EntityBackgroundUploadManager.class,
+ UserLogoDownloadManager.class);
builder.at("^/ws/(.*)$").install(new ForwardFilter("^/ws/(.*)$", "/ws/{0}"));
}
Added: trunk/src/main/java/cc/kune/core/server/manager/file/UserLogoDownloadManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/file/UserLogoDownloadManager.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/manager/file/UserLogoDownloadManager.java 2011-06-26 22:30:12 UTC (rev 1424)
@@ -0,0 +1,86 @@
+/*
+ *
+ * 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.core.server.manager.file;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+import javax.persistence.NoResultException;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import cc.kune.core.client.services.FileConstants;
+import cc.kune.core.server.manager.GroupManager;
+import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.domain.Group;
+
+import com.google.inject.Inject;
+
+/**
+ * The Class UserLogoDownloadManager the difference with
+ * {@link EntityLogoDownloadManager} it that this class download an avatar using
+ * the username and if the user doesn't exits then returns the default avatar.
+ *
+ * This works only for users (right now).
+ */
+public class UserLogoDownloadManager extends HttpServlet {
+
+ private static final long serialVersionUID = -1958945058088446881L;
+ @Inject
+ GroupManager groupManager;
+
+ @Override
+ protected void doGet(final HttpServletRequest req, final HttpServletResponse resp)
+ throws ServletException, IOException {
+
+ final StateToken stateToken = new StateToken(req.getParameter(FileConstants.USERNAME));
+
+ Group group = Group.NO_GROUP;
+ try {
+ group = groupManager.findByShortName(stateToken.getGroup());
+ if (group == Group.NO_GROUP) {
+ noResult(resp);
+ } else if (!group.hasLogo()) {
+ replyDefAvatar(resp);
+ } else {
+ // Has logo!
+ final byte[] logo = group.getLogo();
+ resp.setContentLength(logo.length);
+ resp.setContentType(group.getLogoMime().toString());
+ resp.setHeader("Content-Disposition", "attachment; filename=\"" + group.getShortName()
+ + "-logo\"");
+ resp.getOutputStream().write(logo);
+ }
+ } catch (final NoResultException e) {
+ noResult(resp);
+ return;
+ }
+ }
+
+ private void noResult(final HttpServletResponse resp) throws IOException {
+ FileDownloadManagerUtils.returnNotFound(resp);
+ }
+
+ private void replyDefAvatar(final HttpServletResponse resp) throws FileNotFoundException, IOException {
+ FileDownloadManagerUtils.returnFile("src/main/webapp/others/unknown.jpg", resp.getOutputStream());
+ }
+}
Property changes on: trunk/src/main/java/cc/kune/core/server/manager/file/UserLogoDownloadManager.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/src/main/java/cc/kune/wave/KuneWave.gwt.xml
===================================================================
--- trunk/src/main/java/cc/kune/wave/KuneWave.gwt.xml 2011-06-26 10:50:56 UTC (rev 1423)
+++ trunk/src/main/java/cc/kune/wave/KuneWave.gwt.xml 2011-06-26 22:30:12 UTC (rev 1424)
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<module>
<inherits name='org.waveprotocol.box.webclient.WebClient' />
+ <inherits name="cc.kune.core.KuneCore" />
<!-- Stack emulation is too slow to use in production. -->
<set-property name="compiler.emulatedStack" value="false" />
Added: trunk/src/main/java/cc/kune/wave/client/KuneWaveProfileManager.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/KuneWaveProfileManager.java (rev 0)
+++ trunk/src/main/java/cc/kune/wave/client/KuneWaveProfileManager.java 2011-06-26 22:30:12 UTC (rev 1424)
@@ -0,0 +1,48 @@
+package cc.kune.wave.client;
+
+import org.waveprotocol.box.webclient.client.Session;
+import org.waveprotocol.wave.client.account.ProfileManager;
+import org.waveprotocol.wave.client.account.impl.AbstractProfileManager;
+import org.waveprotocol.wave.client.account.impl.ProfileImpl;
+import org.waveprotocol.wave.model.wave.ParticipantId;
+
+import cc.kune.core.client.services.FileDownloadUtils;
+
+import com.google.inject.Inject;
+
+/**
+ * The Class KuneWaveProfileManager is a workaround to show avatars in kune
+ * while the Wave part is more mature
+ *
+ */
+public class KuneWaveProfileManager extends AbstractProfileManager<ProfileImpl> implements
+ ProfileManager {
+
+ private final FileDownloadUtils downloadUtils;
+
+ @Inject
+ public KuneWaveProfileManager(final FileDownloadUtils downloadUtils) {
+ this.downloadUtils = downloadUtils;
+ }
+
+ private void checkAvatar(final ProfileImpl profile) {
+ final String address = profile.getAddress();
+ if (address.contains(Session.get().getDomain())) {
+ profile.update(profile.getFirstName(), profile.getFullName(),
+ downloadUtils.getUserAvatar(address.split("@")[0]));
+ }
+ }
+
+ @Override
+ public ProfileImpl getProfile(final ParticipantId participantId) {
+ ProfileImpl profile = profiles.get(participantId.getAddress());
+
+ if (profile == null) {
+ profile = new ProfileImpl(this, participantId);
+ checkAvatar(profile);
+ profiles.put(participantId.getAddress(), profile);
+ }
+ return profile;
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/src/main/java/cc/kune/wave/client/KuneWaveProfileManager.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/src/main/java/cc/kune/wave/client/WaveClientManager.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WaveClientManager.java 2011-06-26 10:50:56 UTC (rev 1423)
+++ trunk/src/main/java/cc/kune/wave/client/WaveClientManager.java 2011-06-26 22:30:12 UTC (rev 1424)
@@ -41,7 +41,8 @@
@Inject
public WaveClientManager(final Session session, final StateManager stateManager,
- final EventBus eventBus, final UserServiceAsync userService, final GSpaceArmor wsArmor) {
+ final EventBus eventBus, final UserServiceAsync userService, final GSpaceArmor wsArmor,
+ final KuneWaveProfileManager profiles) {
session.onUserSignIn(true, new UserSignInHandler() {
@Override
public void onUserSignIn(final UserSignInEvent event) {
@@ -59,7 +60,7 @@
if (userSpace.getWidgetCount() > 0) {
userSpace.remove(0);
}
- webClient = new WebClient(eventBus);
+ webClient = new WebClient(eventBus, profiles);
userSpace.add(webClient);
} else {
webClient.login();
Modified: trunk/src/main/java/cc/kune/wave/client/WaveGinModule.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WaveGinModule.java 2011-06-26 10:50:56 UTC (rev 1423)
+++ trunk/src/main/java/cc/kune/wave/client/WaveGinModule.java 2011-06-26 22:30:12 UTC (rev 1424)
@@ -19,19 +19,19 @@
*/
package cc.kune.wave.client;
-import com.google.inject.Singleton;
-import com.gwtplatform.mvp.client.gin.AbstractPresenterModule;
+import cc.kune.common.client.ExtendedGinModule;
-public class WaveGinModule extends AbstractPresenterModule {
- /*
- * (non-Javadoc)
- *
- * @see com.google.gwt.inject.client.AbstractGinModule#configure()
- */
- @Override
- protected void configure() {
- bind(WaveClientManager.class).in(Singleton.class);
- bind(WaveStatusIndicator.class).in(Singleton.class);
- bind(WaveParts.class).asEagerSingleton();
- }
+public class WaveGinModule extends ExtendedGinModule {
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.google.gwt.inject.client.AbstractGinModule#configure()
+ */
+ @Override
+ protected void configure() {
+ s(WaveClientManager.class);
+ s(WaveStatusIndicator.class);
+ eagle(WaveParts.class);
+ s(KuneWaveProfileManager.class);
+ }
}
Modified: trunk/src/main/java/cc/kune/wave/client/WebClient.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WebClient.java 2011-06-26 10:50:56 UTC (rev 1423)
+++ trunk/src/main/java/cc/kune/wave/client/WebClient.java 2011-06-26 22:30:12 UTC (rev 1424)
@@ -198,7 +198,7 @@
// TODO (Yuri Z.) Change the implementation to RemoteProfileManagerImpl when
// it will be ready.
- private final ProfileManager profiles = new ProfileManagerImpl();
+ private final ProfileManager profiles;
@UiField
SplitLayoutPanel splitPanel;
@@ -216,7 +216,7 @@
private final Element loading = new LoadingIndicator().getElement();
@UiField(provided = true)
- final SearchPanelWidget searchPanel = new SearchPanelWidget(new SearchPanelRenderer(profiles));
+ final SearchPanelWidget searchPanel;
@UiField
DebugMessagePanel logPanel;
@@ -241,9 +241,11 @@
* This is the entry point method.
*/
@Inject
- public WebClient(final EventBus eventBus) {
+ public WebClient(final EventBus eventBus, KuneWaveProfileManager profiles) {
this.eventBus = eventBus;
+ this.profiles = profiles;
+ searchPanel = new SearchPanelWidget(new SearchPanelRenderer(profiles));
ErrorHandler.install();
ClientEvents.get().addWaveCreationEventHandler(
Added: trunk/src/main/webapp/others/unknown.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/webapp/others/unknown.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
1
0
Author: ecarrerasg
Date: 2011-06-26 12:50:56 +0200 (Sun, 26 Jun 2011)
New Revision: 1423
Removed:
donate/war/btn-orange.png
donate/war/dot1.png
donate/war/dot2.png
donate/war/dot3.png
donate/war/dot4.png
Modified:
donate/.classpath
Log:
UiBinder Changes
Modified: donate/.classpath
===================================================================
--- donate/.classpath 2011-06-26 10:50:12 UTC (rev 1422)
+++ donate/.classpath 2011-06-26 10:50:56 UTC (rev 1423)
@@ -2,6 +2,6 @@
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
- <classpathentry kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER/GWT (6)"/>
+ <classpathentry kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER"/>
<classpathentry kind="output" path="war/WEB-INF/classes"/>
</classpath>
Deleted: donate/war/btn-orange.png
===================================================================
(Binary files differ)
Deleted: donate/war/dot1.png
===================================================================
(Binary files differ)
Deleted: donate/war/dot2.png
===================================================================
(Binary files differ)
Deleted: donate/war/dot3.png
===================================================================
(Binary files differ)
Deleted: donate/war/dot4.png
===================================================================
(Binary files differ)
1
0
Author: ecarrerasg
Date: 2011-06-26 12:50:12 +0200 (Sun, 26 Jun 2011)
New Revision: 1422
Modified:
donate/war/Donate.css
Log:
UiBinder Changes
Modified: donate/war/Donate.css
===================================================================
--- donate/war/Donate.css 2011-06-26 10:49:54 UTC (rev 1421)
+++ donate/war/Donate.css 2011-06-26 10:50:12 UTC (rev 1422)
@@ -11,423 +11,7 @@
body {
background:#fff;
- font:0.88em Arial,Helvetica,Geneva,sans-serif;
+ font:0.88em 'Ubuntu', Arial;
line-height:1.5em;
color:#444444;
}
-
-a {
- color: #FE7047;
- font-weight: bold;
- outline: medium none;
- text-decoration: none;
-}
-
-a:hover {
- background: inherit;
- color: #029A00;
- outline: 0 none;
- text-decoration: none;
-}
-
-a:visited {
- outline: 0 none;
- text-decoration: none;
-}
-
-.entries {
- float: left;
- line-height: 1.7em;
- padding: 0 0 15px;
- width: 590px;
-}
-
-div#entries {
- border-right: 0 solid #F2F2F2;
- padding-right: 15px;
-}
-
-.post {
- margin-bottom: 2em;
- text-align: justify;
-}
-
-.title {
- display: inline;
- font-size: 2em;
- line-height: 1em;
- margin-bottom: 0.2em;
- margin-top: 2.5em;
- font-weight: bold;
-}
-
-.intro {
- padding-bottom: 5px;
- padding-top: 5px;
-}
-
-.titleRegular {
- clear: both;
- padding-top: 1em;
- border-bottom: medium none;
- letter-spacing: normal;
- margin-bottom: -0.5em;
- color: #555555;
- font-size: 17px;
- font-weight: bold;
- text-transform: none
-}
-
-.pnlOptions {
- border-bottom: 1px solid #E7E7E7;
- background-color: #FFFFFF;
- clear: left;
- float: left;
- list-style: none outside none;
- margin: 10px 10px;
- margin-top: 15px;
- padding: 5px;
- display: inline;
-}
-
-.option {
- background: url("btn-blue.png") no-repeat scroll right top transparent;
- float: left;
- margin-right: 10px;
-}
-
-.option a {
- background: url("btn-blue.png") no-repeat scroll left top transparent;
- color: #13335B;
- cursor: pointer;
- float: left;
- font: 900 14px/22px "Arial",Helvetica,sans-serif;
- text-decoration: none;
- padding: 1px 8px 5px 18px;
-}
-
-.option a:hover {
- color: #951400;
-}
-
-.option a:active {
- color: #029A00;
-}
-
-.optionOther {
- float: left;
-}
-
-.optionOther input {
- margin: 5px 10px;
-}
-
-.labelOther {
- float: left;
-}
-
-.gwt-TextBox {
- float: left;
-}
-
-.divTextDonate {
- clear: both;
- float: none;
-}
-
-.textDonate {
- float: left;
- margin-top: 20px;
-}
-
-.textDonateNewLine {
- clear: both;
- float: none;
-}
-
-.divTextOtherBank {
- clear: both;
- float: none;
- margin-top: 20px;
-}
-
-.gwt-DialogBox {
- border: 2px solid #AAAAAA;
- background-color: white;
-}
-
-.gwt-DialogBox .Caption {
- background-image: url(gray_gradient.gif);
- background-repeat: repeat-x;
- padding: 4px;
- padding-bottom: 8px;
- font-weight: bold;
- cursor: default;
-}
-
-.gwt-MenuBar {
- background-color: #C3D9FF;
- cursor: default;
-}
-
-.gwt-MenuItem {
- font-size: 80%;
- margin: 1px;
- cursor: default;
-}
-
-.gwt-MenuItem-selected {
- background-color: #E8EEF7;
-}
-
-.gwt-Tree {
-}
-
-.gwt-Tree .gwt-TreeItem {
- font-size: 80%;
- cursor: default;
-}
-
-.gwt-Tree .gwt-TreeItem-selected {
- background-color: #C3D9FF;
-}
-
-.gwt-StackPanel {
- background-color: white;
- border: 1px solid #AAAAAA;
- width: 15em;
-}
-
-.gwt-StackPanel .gwt-StackPanelItem {
- background-image: url(blue_gradient.gif);
- background-repeat: repeat-x;
- background-color: #EEEEEE;
- cursor: pointer;
- cursor: hand;
-}
-
-.gwt-StackPanel .gwt-StackPanelItem-selected {
-}
-
-.gwt-TabPanel {
-
-}
-
-.gwt-TabPanelBottom {
- border-left: 1px solid #87b3ff;
- border-right: 1px solid #87b3ff;
- border-bottom: 1px solid #87b3ff;
-}
-
-.gwt-TabBar {
- font-size: smaller;
-}
-
-.gwt-TabBar .gwt-TabBarFirst {
- height: 100%;
- border-bottom: 1px solid #87b3ff;
- border-right: 1px solid #87b3ff;
- padding-left: 3px;
-}
-
-.gwt-TabBar .gwt-TabBarRest {
- border-bottom: 1px solid #87b3ff;
- padding-right: 3px;
-}
-
-.gwt-TabBar .gwt-TabBarItem {
- border-top: 1px solid #87b3ff;
- border-bottom: 1px solid #87b3ff;
- padding: 2px;
- cursor: hand;
- white-space: nowrap;
- border-right: 1px solid #87b3ff;
-}
-
-.gwt-TabBar .gwt-TabBarItem-selected {
- font-weight: bold;
- background-color: #e8eef7;
- border-top: 1px solid #87b3ff;
- border-right: 1px solid #87b3ff;
- border-bottom: 1px solid #e8eef7;
- padding: 2px;
- cursor: default;
- white-space: nowrap;
-}
-
-.gwt-PushButton-up {
- background-color: #C3D9FF;
- padding: 2px;
- border: 2px solid transparent;
- border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) rgb(232, 241, 255);
- cursor: pointer;
- cursor: hand;
-}
-
-.gwt-PushButton-up-hovering {
- background-color: #C3D9FF;
- padding: 2px;
- border: 2px solid transparent;
- border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) rgb(232, 241, 255);
- cursor: pointer;
- cursor: hand;
-}
-
-.gwt-PushButton-down {
- background-color: #C3D9FF;
- padding: 2px;
- border: 2px solid transparent;
- border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) rgb(157, 174, 205);
- cursor: pointer;
- cursor: hand;
-}
-
-.gwt-PushButton-down-hovering {
- background-color: #C3D9FF;
- padding: 2px;
- border: 2px solid transparent;
- border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) rgb(157, 174, 205);
- cursor: pointer;
- cursor: hand;
-}
-
-.gwt-ToggleButton-up {
- background-color: #C3D9FF;
- padding: 2px;
- border: 2px solid transparent;
- border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) rgb(232, 241, 255);
- cursor: pointer;
- cursor: hand;
-}
-
-.gwt-ToggleButton-up-hovering {
- background-color: #C3D9FF;
- padding: 2px;
- border: 2px solid transparent;
- border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) rgb(232, 241, 255);
- cursor: pointer;
- cursor: hand;
-}
-
-.gwt-ToggleButton-down {
- background-color: #C3D9FF;
- padding: 2px;
- background-color: #E8F1FF;
- border: 2px solid transparent;
- border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) rgb(157, 174, 205);
- cursor: pointer;
- cursor: hand;
-}
-
-.gwt-ToggleButton-down-hovering {
- background-color: #C3D9FF;
- padding: 2px;
- background-color: #E8F1FF;
- border: 2px solid transparent;
- border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) rgb(157, 174, 205);
- cursor: pointer;
- cursor: hand;
-}
-
-.gwt-RichTextArea {
- border: 1px solid black;
- background-color: white;
-}
-
-.gwt-RichTextToolbar {
- background-color: #C3D9FF;
- padding: 2px;
-}
-
-.gwt-RichTextToolbar .gwt-PushButton-up {
- margin-right: 2px;
- border: 1px solid #C3D9FF;
-}
-
-.gwt-RichTextToolbar .gwt-PushButton-up-hovering {
- margin-right: 2px;
- border: 1px solid #C3D9FF;
- border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) rgb(232, 241, 255);
-}
-
-.gwt-RichTextToolbar .gwt-PushButton-down {
- margin-right: 2px;
- border: 1px solid #C3D9FF;
- border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) rgb(157, 174, 205);
-}
-
-.gwt-RichTextToolbar .gwt-PushButton-down-hovering {
- margin-right: 2px;
- border: 1px solid #C3D9FF;
- border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) rgb(157, 174, 205);
-}
-
-.gwt-RichTextToolbar .gwt-ToggleButton-up {
- margin-right: 2px;
- border: 1px solid #C3D9FF;
-}
-
-.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering {
- margin-right: 2px;
- border: 1px solid #C3D9FF;
- border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) rgb(232, 241, 255);
-}
-
-.gwt-RichTextToolbar .gwt-ToggleButton-down {
- margin-right: 2px;
- background-color: #E8F1FF;
- border: 1px solid #C3D9FF;
- border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) rgb(157, 174, 205);
-}
-
-.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering {
- margin-right: 2px;
- background-color: #E8F1FF;
- border: 1px solid #C3D9FF;
- border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) rgb(157, 174, 205);
-}
-
-.gwt-HorizontalSplitPanel {
- border: 8px solid #C3D9FF;
-}
-
-.gwt-HorizontalSplitPanel .splitter {
- background-color: #C3D9FF;
- cursor: move;
-}
-
-.gwt-HorizontalSplitPanel .left {
- background-color: #E8EEF7;
-}
-
-.gwt-VerticalSplitPanel {
- border: 8px solid #C3D9FF;
-}
-
-.gwt-VerticalSplitPanel .splitter {
- background-color: #C3D9FF;
- height: 8px;
- cursor: move;
-}
-
-.gwt-SuggestBoxPopup {
- border: 2px solid #C3D9FF;
-}
-
-.gwt-SuggestBoxPopup .item {
- padding: 2px;
-}
-
-.gwt-SuggestBoxPopup .item-selected {
- background-color: #C3D9FF;
- padding: 2px;
-}
-
-.gwt-DisclosurePanel {
- border: 2px solid #C3D9FF;
-}
-
-.gwt-DisclosurePanel .header {
- background-color: #e8eef7;
- cursor: hand;
-}
\ No newline at end of file
1
0
Author: ecarrerasg
Date: 2011-06-26 12:49:54 +0200 (Sun, 26 Jun 2011)
New Revision: 1421
Modified:
donate/src/cc/kune/sandbox/donate/client/DonatePanel.ui.xml
Log:
UiBinder changes
Modified: donate/src/cc/kune/sandbox/donate/client/DonatePanel.ui.xml
===================================================================
--- donate/src/cc/kune/sandbox/donate/client/DonatePanel.ui.xml 2011-06-26 10:45:35 UTC (rev 1420)
+++ donate/src/cc/kune/sandbox/donate/client/DonatePanel.ui.xml 2011-06-26 10:49:54 UTC (rev 1421)
@@ -258,7 +258,7 @@
<g:Hidden name="sra" value="1"></g:Hidden>
<g:Hidden name="lc" value="us"></g:Hidden>
<g:Label addStyleNames="{style.labelOther}" ui:field="lblOtherValueDollar">
- €/month
+ $/month
</g:Label>
</g:FlowPanel>
</g:FormPanel>
1
0
Author: ecarrerasg
Date: 2011-06-26 12:45:35 +0200 (Sun, 26 Jun 2011)
New Revision: 1420
Added:
donate/src/cc/kune/sandbox/donate/client/DonatePanel.java
donate/src/cc/kune/sandbox/donate/client/DonatePanel.ui.xml
Modified:
donate/src/cc/kune/sandbox/donate/client/Donate.java
Log:
UiBinder changes
Modified: donate/src/cc/kune/sandbox/donate/client/Donate.java
===================================================================
--- donate/src/cc/kune/sandbox/donate/client/Donate.java 2011-06-26 03:26:13 UTC (rev 1419)
+++ donate/src/cc/kune/sandbox/donate/client/Donate.java 2011-06-26 10:45:35 UTC (rev 1420)
@@ -1,20 +1,7 @@
package cc.kune.sandbox.donate.client;
import com.google.gwt.core.client.EntryPoint;
-import com.google.gwt.user.client.ui.Anchor;
-import com.google.gwt.user.client.ui.Hidden;
import com.google.gwt.user.client.ui.RootPanel;
-import com.google.gwt.user.client.ui.HTMLPanel;
-import com.google.gwt.user.client.ui.TextBox;
-import com.google.gwt.user.client.ui.HTML;
-import com.google.gwt.user.client.ui.TextBoxBase;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.FormPanel;
-import com.google.gwt.user.client.ui.FlowPanel;
-import com.google.gwt.event.dom.client.BlurHandler;
-import com.google.gwt.event.dom.client.BlurEvent;
-import com.google.gwt.event.dom.client.FocusHandler;
-import com.google.gwt.event.dom.client.FocusEvent;
/**
* Entry point classes define <code>onModuimport com.google.gwt.user.client.ui.VerticalPanel;
@@ -23,506 +10,9 @@
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class Donate implements EntryPoint {
- //Cons
- private final String sDefaultValue = "other value";
- private final String sDefaultTitle = "Type other value and press Enter";
- //Definition of variables
- private TextBox txtbxOtherValueEUR = new TextBox();
- private TextBox txtbxOtherValueDollar = new TextBox();
-
- @SuppressWarnings("deprecation")
public void onModuleLoad() {
- RootPanel rootPanel = RootPanel.get();
- rootPanel.setHeight("100%");
-
- //Parent div
- HTMLPanel divEntries = new HTMLPanel("");
- divEntries.setStyleName("entries");
- rootPanel.add(divEntries, 10, 10);
-
- //Child empty div
- HTMLPanel divRightedit = new HTMLPanel("");
- divRightedit.setStyleName("rightedit");
- divEntries.add(divRightedit);
-
- //Child content div
- HTMLPanel divPost = new HTMLPanel("");
- divPost.setStyleName("post");
- divEntries.add(divPost);
-
- HTML divTitle = new HTML("Donate to Comunes", true);
- divPost.add(divTitle);
- divTitle.setStyleName("title");
-
- HTML divIntro = new HTML("Comunes is a non-profit organization dedicated to encourage the commons, those goods collectively owned by everybody, and also serves as an umbrella for other related initiatives. We rely on the generous support of people like you and other collectives to help us continue the work we do.", true);
- divIntro.setStyleName("intro");
- divPost.add(divIntro);
-
- HTML divTitleRegular = new HTML("Regular donation per month (the most necessary for us)", true);
- divTitleRegular.setStyleName("titleRegular");
- divPost.add(divTitleRegular);
-
- //Panel for Regular Donations in Euros
- HTMLPanel divRegularDonationsEUR = new HTMLPanel("");
- divRegularDonationsEUR.setStyleName("pnlOptions");
- divPost.add(divRegularDonationsEUR);
- divRegularDonationsEUR.setSize("550px", "28px");
-
- HTMLPanel pnlRegularDonation10EUR = new HTMLPanel("");
- pnlRegularDonation10EUR.setStyleName("option");
- divRegularDonationsEUR.add(pnlRegularDonation10EUR);
- pnlRegularDonation10EUR.setSize("115px", "28px");
-
- Anchor lnk1EUR = new Anchor();
- lnk1EUR.setStyleName("optionLeft");
- lnk1EUR.setHTML("10 \u20AC/month");
- lnk1EUR.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… Donate to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png");
- pnlRegularDonation10EUR.add(lnk1EUR);
- lnk1EUR.setSize("85px", "28px");
-
- HTMLPanel pnlRegularDonation15EUR = new HTMLPanel("");
- pnlRegularDonation15EUR.setStyleName("option");
- divRegularDonationsEUR.add(pnlRegularDonation15EUR);
- pnlRegularDonation15EUR.setSize("115px", "28px");
-
- Anchor lnk2EUR = new Anchor();
- lnk2EUR.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… Donate to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png");
- lnk2EUR.setStyleName("optionLeft");
- lnk2EUR.setHTML("15 \u20AC/month");
- pnlRegularDonation15EUR.add(lnk2EUR);
- lnk2EUR.setSize("85px", "28px");
-
- HTMLPanel pnlRegularDonation20EUR = new HTMLPanel("");
- pnlRegularDonation20EUR.setStyleName("option");
- divRegularDonationsEUR.add(pnlRegularDonation20EUR);
- pnlRegularDonation20EUR.setSize("115px", "28px");
-
- Anchor lnk3EUR = new Anchor();
- lnk3EUR.setStyleName("optionLeft");
- lnk3EUR.setHTML("20 \u20AC/month");
- lnk3EUR.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… Donate to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png");
- pnlRegularDonation20EUR.add(lnk3EUR);
- lnk3EUR.setSize("85px", "28px");
-
- HTMLPanel pnlRegularDonationOtherEUR = new HTMLPanel("");
- pnlRegularDonationOtherEUR.setStyleName("optionOther");
- divRegularDonationsEUR.add(pnlRegularDonationOtherEUR);
- pnlRegularDonationOtherEUR.setSize("174px", "28px");
-
- FormPanel formPanelEUR = new FormPanel();
- formPanelEUR.setAction("https://www.paypal.com/cgi-bin/webscr");
- formPanelEUR.setMethod(FormPanel.METHOD_GET);
- pnlRegularDonationOtherEUR.add(formPanelEUR);
-
- FlowPanel flowPanelEUR = new FlowPanel();
- formPanelEUR.setWidget(flowPanelEUR);
- flowPanelEUR.setSize("100%", "100%");
- txtbxOtherValueEUR.setVisibleLength(10);
- txtbxOtherValueEUR.setName("a3");
-
- //Other Value Euro events
- txtbxOtherValueEUR.addFocusHandler(new FocusHandler() {
- public void onFocus(FocusEvent event) {
- String sDefaultValue = "other value";
- //Window.alert(txtbxOtherValue.getText());
- if(txtbxOtherValueEUR.getText().equals(sDefaultValue))
- {
- txtbxOtherValueEUR.setText("");
- }
- }
- });
-
- txtbxOtherValueEUR.addBlurHandler(new BlurHandler() {
- String sDefaultValue = "other value";
- public void onBlur(BlurEvent event) {
- String sActualValue = txtbxOtherValueEUR.getText();
- int iActualValue = 0;
- if(!sActualValue.equals(""))
- {
- iActualValue = Integer.parseInt(sActualValue);
- }
- //validate
- if(sActualValue == "" || iActualValue == 0 || sActualValue != "" + iActualValue)
- {
- txtbxOtherValueEUR.setText(sDefaultValue);
- }
- }
- });
- //End Other Value Euro events
-
- Hidden h1EUR = new Hidden("business");
- h1EUR.setDefaultValue("donate(a)ourproject.org");
- flowPanelEUR.add(h1EUR);
-
- Hidden h2EUR = new Hidden("cmd");
- h2EUR.setDefaultValue("_xclick-subscriptions");
- flowPanelEUR.add(h2EUR);
-
- Hidden h3EUR = new Hidden("item_name");
- h3EUR.setDefaultValue(" Donate to comunes.org");
- flowPanelEUR.add(h3EUR);
-
- Hidden h4EUR = new Hidden("currency_code");
- h4EUR.setDefaultValue("EUR");
- flowPanelEUR.add(h4EUR);
-
- Hidden h5EUR = new Hidden("no_shipping");
- h5EUR.setDefaultValue("1");
- flowPanelEUR.add(h5EUR);
-
- Hidden h6EUR = new Hidden("t3");
- h6EUR.setDefaultValue("M");
- flowPanelEUR.add(h6EUR);
-
- Hidden h7EUR = new Hidden("p3");
- h7EUR.setDefaultValue("1");
- flowPanelEUR.add(h7EUR);
-
- Hidden h8EUR = new Hidden("src");
- h8EUR.setDefaultValue("1");
- flowPanelEUR.add(h8EUR);
-
- Hidden h9EUR = new Hidden("image_url");
- h9EUR.setDefaultValue("http://comunes.org/cm/images/logo-pp.png");
- flowPanelEUR.add(h9EUR);
-
- Hidden h10EUR = new Hidden("sra");
- h10EUR.setDefaultValue("1");
- flowPanelEUR.add(h10EUR);
-
- Hidden h11EUR = new Hidden("lc");
- h11EUR.setDefaultValue("us");
- flowPanelEUR.add(h11EUR);
-
- flowPanelEUR.add(txtbxOtherValueEUR);
- txtbxOtherValueEUR.setSize("83px", "16px");
- txtbxOtherValueEUR.setTextAlignment(TextBoxBase.ALIGN_CENTER);
- txtbxOtherValueEUR.setText(sDefaultValue);
- txtbxOtherValueEUR.setTitle(sDefaultTitle);
-
- Label lblOtherEUR = new Label("\u20AC/month");
- flowPanelEUR.add(lblOtherEUR);
- lblOtherEUR.setStyleName("labelOther");
- //End of Panel for Regular Donations in Euros
-
- //Panel for Regular Donations in Dollars
- HTMLPanel divRegularDonationsDollar = new HTMLPanel("");
- divRegularDonationsDollar.setStyleName("pnlOptions");
- divPost.add(divRegularDonationsDollar);
- divRegularDonationsDollar.setSize("550px", "28px");
-
- HTMLPanel pnlRegularDonation10Dollar = new HTMLPanel("");
- pnlRegularDonation10Dollar.setStyleName("option");
- divRegularDonationsDollar.add(pnlRegularDonation10Dollar);
- pnlRegularDonation10Dollar.setSize("115px", "28px");
-
- Anchor lnk1Dollar = new Anchor();
- lnk1Dollar.setStyleName("optionLeft");
- lnk1Dollar.setHTML("10 $/month");
- lnk1Dollar.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… Donate to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png");
- pnlRegularDonation10Dollar.add(lnk1Dollar);
- lnk1Dollar.setSize("85px", "28px");
-
- HTMLPanel pnlRegularDonation15Dollar = new HTMLPanel("");
- pnlRegularDonation15Dollar.setStyleName("option");
- divRegularDonationsDollar.add(pnlRegularDonation15Dollar);
- pnlRegularDonation15Dollar.setSize("115px", "28px");
-
- Anchor lnk2Dollar = new Anchor();
- lnk2Dollar.setStyleName("optionLeft");
- lnk2Dollar.setHTML("15 $/month");
- lnk2Dollar.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… Donate to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png");
- pnlRegularDonation15Dollar.add(lnk2Dollar);
- lnk2Dollar.setSize("85px", "28px");
-
- HTMLPanel pnlRegularDonation20Dollar = new HTMLPanel("");
- pnlRegularDonation20Dollar.setStyleName("option");
- divRegularDonationsDollar.add(pnlRegularDonation20Dollar);
- pnlRegularDonation20Dollar.setSize("115px", "28px");
-
- Anchor lnk3Dollar = new Anchor();
- lnk3Dollar.setStyleName("optionLeft");
- lnk3Dollar.setHTML("20 $/month");
- lnk3Dollar.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… Donate to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png");
- pnlRegularDonation20Dollar.add(lnk3Dollar);
- lnk3Dollar.setSize("85px", "28px");
-
- HTMLPanel pnlRegularDonationOtherDollar = new HTMLPanel("");
- pnlRegularDonationOtherDollar.setStyleName("optionOther");
- divRegularDonationsDollar.add(pnlRegularDonationOtherDollar);
- pnlRegularDonationOtherDollar.setSize("174px", "28px");
-
- FormPanel formPanelDollar = new FormPanel();
- formPanelDollar.setMethod(FormPanel.METHOD_GET);
- formPanelDollar.setAction("https://www.paypal.com/cgi-bin/webscr");
- pnlRegularDonationOtherDollar.add(formPanelDollar);
-
- FlowPanel flowPanelDollar = new FlowPanel();
- formPanelDollar.setWidget(flowPanelDollar);
- flowPanelDollar.setSize("100%", "100%");
- txtbxOtherValueDollar.setName("a3");
- txtbxOtherValueDollar.setVisibleLength(10);
-
- txtbxOtherValueDollar.setTitle("Type other value and press Enter");
- txtbxOtherValueDollar.setTextAlignment(TextBoxBase.ALIGN_CENTER);
- txtbxOtherValueDollar.setText("other value");
-
- //Other Value Dollar events
- txtbxOtherValueDollar.addFocusHandler(new FocusHandler() {
- public void onFocus(FocusEvent event) {
- String sDefaultValue = "other value";
- //Window.alert(txtbxOtherValue.getText());
- if(txtbxOtherValueDollar.getText().equals(sDefaultValue))
- {
- txtbxOtherValueDollar.setText("");
- }
- }
- });
-
- txtbxOtherValueDollar.addBlurHandler(new BlurHandler() {
- String sDefaultValue = "other value";
- public void onBlur(BlurEvent event) {
- String sActualValue = txtbxOtherValueDollar.getText();
- int iActualValue = 0;
- if(!sActualValue.equals(""))
- {
- iActualValue = Integer.parseInt(sActualValue);
- }
- //validate
- if(sActualValue == "" || iActualValue == 0 || sActualValue != "" + iActualValue)
- {
- txtbxOtherValueDollar.setText(sDefaultValue);
- }
- }
- });
- //End Other Value Dollar events
-
- Hidden h1Dollar = new Hidden("business");
- h1Dollar.setDefaultValue("donate(a)ourproject.org");
- flowPanelDollar.add(h1Dollar);
-
- Hidden h2Dollar = new Hidden("cmd");
- h2Dollar.setDefaultValue("_xclick-subscriptions");
- flowPanelDollar.add(h2Dollar);
-
- Hidden h3Dollar = new Hidden("item_name");
- h3Dollar.setDefaultValue(" Donate to comunes.org");
- flowPanelDollar.add(h3Dollar);
-
- Hidden h4Dollar = new Hidden("currency_code");
- h4Dollar.setDefaultValue("USD");
- flowPanelDollar.add(h4Dollar);
-
- Hidden h5Dollar = new Hidden("no_shipping");
- h5Dollar.setDefaultValue("1");
- flowPanelDollar.add(h5Dollar);
-
- Hidden h6Dollar = new Hidden("t3");
- h6Dollar.setDefaultValue("M");
- flowPanelDollar.add(h6Dollar);
-
- Hidden h7Dollar = new Hidden("p3");
- h7Dollar.setDefaultValue("1");
- flowPanelDollar.add(h7Dollar);
-
- Hidden h8Dollar = new Hidden("src");
- h8Dollar.setDefaultValue("1");
- flowPanelDollar.add(h8Dollar);
-
- Hidden h9Dollar = new Hidden("image_url");
- h9Dollar.setDefaultValue("http://comunes.org/cm/images/logo-pp.png");
- flowPanelDollar.add(h9Dollar);
-
- Hidden h10Dollar = new Hidden("sra");
- h10Dollar.setDefaultValue("1");
- flowPanelDollar.add(h10Dollar);
-
- Hidden h11Dollar = new Hidden("lc");
- h11Dollar.setDefaultValue("us");
- flowPanelDollar.add(h11Dollar);
-
- flowPanelDollar.add(txtbxOtherValueDollar);
- txtbxOtherValueDollar.setSize("83px", "16px");
-
- Label lblOtherDollar = new Label("$/month");
- lblOtherDollar.setStyleName("labelOther");
- flowPanelDollar.add(lblOtherDollar);
-
- HTML divTitleSingle = new HTML("Single donation", true);
- divPost.add(divTitleSingle);
- divTitleSingle.setStyleName("titleRegular");
-
- HTMLPanel divSingleDonationEUR = new HTMLPanel("");
- divSingleDonationEUR.setStyleName("pnlOptions");
- divPost.add(divSingleDonationEUR);
- divSingleDonationEUR.setSize("340px", "28px");
-
- HTMLPanel pnlRegularDonation25EUR = new HTMLPanel("");
- pnlRegularDonation25EUR.setStyleName("option");
- divSingleDonationEUR.add(pnlRegularDonation25EUR);
- pnlRegularDonation25EUR.setSize("75px", "28px");
-
- Anchor lnk1SingleEUR = new Anchor();
- lnk1SingleEUR.setStyleName("optionLeft");
- lnk1SingleEUR.setHTML("25 \u20AC");
- lnk1SingleEUR.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=EUR&amount=25&image_url=http://comunes.org/cm/ima…");
- pnlRegularDonation25EUR.add(lnk1SingleEUR);
- lnk1SingleEUR.setSize("45px", "28px");
-
- HTMLPanel pnlRegularDonation75EUR = new HTMLPanel("");
- pnlRegularDonation75EUR.setStyleName("option");
- divSingleDonationEUR.add(pnlRegularDonation75EUR);
- pnlRegularDonation75EUR.setSize("75px", "28px");
-
- Anchor lnk2SingleEUR = new Anchor();
- lnk2SingleEUR.setStyleName("optionLeft");
- lnk2SingleEUR.setHTML("75 \u20AC");
- lnk2SingleEUR.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=EUR&amount=75&image_url=http://comunes.org/cm/ima…");
- pnlRegularDonation75EUR.add(lnk2SingleEUR);
- lnk2SingleEUR.setSize("45px", "28px");
-
- HTMLPanel pnlRegularDonation150EUR = new HTMLPanel("");
- pnlRegularDonation150EUR.setStyleName("option");
- divSingleDonationEUR.add(pnlRegularDonation150EUR);
- pnlRegularDonation150EUR.setSize("75px", "28px");
-
- Anchor lnk3SingleEUR = new Anchor();
- lnk3SingleEUR.setStyleName("optionLeft");
- lnk3SingleEUR.setHTML("100 \u20AC");
- lnk3SingleEUR.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=EUR&amount=100&image_url=http://comunes.org/cm/im…");
- pnlRegularDonation150EUR.add(lnk3SingleEUR);
- lnk3SingleEUR.setSize("45px", "28px");
-
- HTMLPanel pnlRegularDonation300EUR = new HTMLPanel("");
- pnlRegularDonation300EUR.setStyleName("option");
- divSingleDonationEUR.add(pnlRegularDonation300EUR);
- pnlRegularDonation300EUR.setSize("75px", "28px");
-
- Anchor lnk4SingleEUR = new Anchor();
- lnk4SingleEUR.setStyleName("optionLeft");
- lnk4SingleEUR.setHTML("300 \u20AC");
- lnk4SingleEUR.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=EUR&amount=300&image_url=http://comunes.org/cm/im…");
- pnlRegularDonation300EUR.add(lnk4SingleEUR);
- lnk4SingleEUR.setSize("45px", "28px");
-
- HTMLPanel divSingleDonationDollar = new HTMLPanel("");
- divSingleDonationDollar.setStyleName("pnlOptions");
- divPost.add(divSingleDonationDollar);
- divSingleDonationDollar.setSize("340px", "28px");
-
- HTMLPanel pnlRegularDonation25Dollar = new HTMLPanel("");
- pnlRegularDonation25Dollar.setStyleName("option");
- divSingleDonationDollar.add(pnlRegularDonation25Dollar);
- pnlRegularDonation25Dollar.setSize("75px", "28px");
-
- Anchor lnk1SingleDollar = new Anchor();
- lnk1SingleDollar.setStyleName("optionLeft");
- lnk1SingleDollar.setHTML("25 $");
- lnk1SingleDollar.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=USD&amount=25&image_url=http://comunes.org/cm/ima…");
- pnlRegularDonation25Dollar.add(lnk1SingleDollar);
- lnk1SingleDollar.setSize("45px", "28px");
-
- HTMLPanel pnlRegularDonation75Dollar = new HTMLPanel("");
- pnlRegularDonation75Dollar.setStyleName("option");
- divSingleDonationDollar.add(pnlRegularDonation75Dollar);
- pnlRegularDonation75Dollar.setSize("75px", "28px");
-
- Anchor lnk2SingleDollar = new Anchor();
- lnk2SingleDollar.setStyleName("optionLeft");
- lnk2SingleDollar.setHTML("75 $");
- lnk2SingleDollar.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=USD&amount=75&image_url=http://comunes.org/cm/ima…");
- pnlRegularDonation75Dollar.add(lnk2SingleDollar);
- lnk2SingleDollar.setSize("45px", "28px");
-
- HTMLPanel pnlRegularDonation100Dollar = new HTMLPanel("");
- pnlRegularDonation100Dollar.setStyleName("option");
- divSingleDonationDollar.add(pnlRegularDonation100Dollar);
- pnlRegularDonation100Dollar.setSize("75px", "28px");
-
- Anchor lnk3SingleDollar = new Anchor();
- lnk3SingleDollar.setStyleName("optionLeft");
- lnk3SingleDollar.setHTML("100 $");
- lnk3SingleDollar.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=USD&amount=100&image_url=http://comunes.org/cm/im…");
- pnlRegularDonation100Dollar.add(lnk3SingleDollar);
- lnk3SingleDollar.setSize("45px", "28px");
-
- HTMLPanel pnlRegularDonation300Dollar = new HTMLPanel("");
- pnlRegularDonation300Dollar.setStyleName("option");
- divSingleDonationDollar.add(pnlRegularDonation300Dollar);
- pnlRegularDonation300Dollar.setSize("75px", "28px");
-
- Anchor lnk4SingleDollar = new Anchor();
- lnk4SingleDollar.setStyleName("optionLeft");
- lnk4SingleDollar.setHTML("300 $");
- lnk4SingleDollar.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=USD&amount=300&image_url=http://comunes.org/cm/im…");
- pnlRegularDonation300Dollar.add(lnk4SingleDollar);
- lnk4SingleDollar.setSize("45px", "28px");
-
- HTMLPanel divTextOther = new HTMLPanel("");
- divTextOther.setStyleName("divTextDonate");
- divPost.add(divTextOther);
-
- HTML htmlOther = new HTML("For other amounts use", true);
- htmlOther.setStyleName("textDonate");
- divTextOther.add(htmlOther);
- htmlOther.setWidth("148px");
-
- Anchor lnkTextOtherEUR = new Anchor();
- lnkTextOtherEUR.setText("this link for Euros");
- lnkTextOtherEUR.setStyleName("textDonate");
- lnkTextOtherEUR.setHTML("this link for Euros");
- lnkTextOtherEUR.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=EUR&image_url=http://comunes.org/cm/images/logo-p…");
- divTextOther.add(lnkTextOtherEUR);
- lnkTextOtherEUR.setSize("127px", "28px");
-
- HTML htmlOther2 = new HTML("or", true);
- htmlOther2.setStyleName("textDonate");
- divTextOther.add(htmlOther2);
- htmlOther2.setWidth("17px");
-
- Anchor lnkTextOtherDollar = new Anchor();
- lnkTextOtherDollar.setText("this link for USD.");
- lnkTextOtherDollar.setStyleName("textDonate");
- lnkTextOtherDollar.setHTML("this link for USD.");
- lnkTextOtherDollar.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=USD&image_url=http://comunes.org/cm/images/logo-p…");
- divTextOther.add(lnkTextOtherDollar);
- lnkTextOtherDollar.setSize("127px", "28px");
-
- HTML htmlOther3 = new HTML("Please consider donating more if you can afford it. ", true);
- htmlOther3.setStyleName("textDonateNewLine");
- divTextOther.add(htmlOther3);
- htmlOther3.setWidth("471px");
-
- HTML divTitleBank = new HTML("Give using your Bank", true);
- divTitleBank.setStyleName("titleRegular");
- divPost.add(divTitleBank);
-
- HTMLPanel divTextOtherBank = new HTMLPanel("");
- divTextOtherBank.setStyleName("divTextOtherBank");
- divPost.add(divTextOtherBank);
-
- Anchor lnkBank = new Anchor();
- lnkBank.setText("See our Bank account info page");
- lnkBank.setStyleName("textDonate");
- lnkBank.setHTML("See our Bank account info page");
- lnkBank.setHref("http://comunes.org/bank-info/");
- divTextOtherBank.add(lnkBank);
- lnkBank.setSize("471px", "28px");
-
- HTML htmlBank1 = new HTML("Unless you specify the contrary, we will add you to our donor list. ", true);
- htmlBank1.setStyleName("textDonateNewLine");
- divTextOtherBank.add(htmlBank1);
- htmlBank1.setWidth("471px");
-
- HTML htmlBank2 = new HTML("If you have doubts please contact us at donate at ourproject dot org. ", true);
- htmlBank2.setStyleName("textDonateNewLine");
- divTextOtherBank.add(htmlBank2);
- htmlBank2.setWidth("471px");
-
- HTML divTitleFinal = new HTML("Thanks indeed!", true);
- divTitleFinal.setStyleName("titleRegular");
- divPost.add(divTitleFinal);
- //End of Panel for Regular Donations in Dollars
+ final DonatePanel dPanel = new DonatePanel();
+ RootPanel.get().add(dPanel);
}
}
\ No newline at end of file
Added: donate/src/cc/kune/sandbox/donate/client/DonatePanel.java
===================================================================
--- donate/src/cc/kune/sandbox/donate/client/DonatePanel.java (rev 0)
+++ donate/src/cc/kune/sandbox/donate/client/DonatePanel.java 2011-06-26 10:45:35 UTC (rev 1420)
@@ -0,0 +1,335 @@
+package cc.kune.sandbox.donate.client;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.BlurEvent;
+import com.google.gwt.event.dom.client.BlurHandler;
+import com.google.gwt.event.dom.client.FocusEvent;
+import com.google.gwt.event.dom.client.FocusHandler;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.ui.Anchor;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.FormPanel;
+import com.google.gwt.user.client.ui.HTMLPanel;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.Widget;
+
+public class DonatePanel extends Composite {
+ //Cons
+ private final String DEFAULT_VALUE = "other value";
+ private final String DEFAULT_TITLE = "Type other value and press Enter";
+ private final String NAME_TB = "a3";
+ private final int REGULAR_DONATION_EURO = 1;
+ private final int REGULAR_DONATION_DOLLAR = 2;
+ private final int SINGLE_DONATION_EURO = 3;
+ private final int SINGLE_DONATION_DOLLAR = 4;
+ private final String EURO_REGULAR_DONATION = " \u20AC/month";
+ private final String DOLLAR_REGULAR_DONATION = " $/month";
+ private final String EURO_DONATION = " \u20AC";
+ private final String DOLLAR_DONATION = " $";
+ private final String LNK_EURO_REGULAR_DONATION_1 = "https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… Donate to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png";
+ private final String LNK_EURO_REGULAR_DONATION_2 = "https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… Donate to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png";
+ private final String LNK_EURO_REGULAR_DONATION_3 = "https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… Donate to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png";
+ private final String LNK_EURO_SINGLE_DONATION_1 = "https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=EUR&amount=25&image_url=http://comunes.org/cm/ima…";
+ private final String LNK_EURO_SINGLE_DONATION_2 = "https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=EUR&amount=75&image_url=http://comunes.org/cm/ima…";
+ private final String LNK_EURO_SINGLE_DONATION_3 = "https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=EUR&amount=150&image_url=http://comunes.org/cm/im…";
+ private final String LNK_EURO_SINGLE_DONATION_4 = "https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=EUR&amount=300&image_url=http://comunes.org/cm/im…";
+ private final String LNK_DOLLAR_REGULAR_DONATION_1 = "https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… Donate to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png";
+ private final String LNK_DOLLAR_REGULAR_DONATION_2 = "https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… Donate to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png";
+ private final String LNK_DOLLAR_REGULAR_DONATION_3 = "https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… Donate to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png";
+ private final String LNK_DOLLAR_SINGLE_DONATION_1 = "https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=USD&amount=25&image_url=http://comunes.org/cm/ima…";
+ private final String LNK_DOLLAR_SINGLE_DONATION_2 = "https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=USD&amount=75&image_url=http://comunes.org/cm/ima…";
+ private final String LNK_DOLLAR_SINGLE_DONATION_3 = "https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=USD&amount=150&image_url=http://comunes.org/cm/im…";
+ private final String LNK_DOLLAR_SINGLE_DONATION_4 = "https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=USD&amount=300&image_url=http://comunes.org/cm/im…";
+ private final String LNK_REGULAR_OTHER_VALUE_EUROS = "https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… Donate to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png";
+ private final String LNK_REGULAR_OTHER_VALUE_DOLLAR = "https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… Donate to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png";
+ private final String LNK_SINGLE_OTHER_VALUE_EUROS = "https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=EUR&image_url=http://comunes.org/cm/images/logo-p…";
+ private final String LNK_SINGLE_OTHER_VALUE_DOLLAR = "https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=USD&image_url=http://comunes.org/cm/images/logo-p…";
+ private final String LNK_BANK = "http://comunes.org/bank-info/";
+
+ @UiField
+ HTMLPanel divEntries;
+ @UiField
+ HTMLPanel divRightedit;
+ @UiField
+ HTMLPanel divPost;
+ @UiField
+ HTMLPanel divPostTitle;
+ @UiField
+ Label lblPostTitle;
+ @UiField
+ HTMLPanel divIntro;
+ @UiField
+ Label lblPostIntro;
+ @UiField
+ HTMLPanel divTitleRegular;
+ @UiField
+ Label lblRegularTitle;
+ @UiField
+ HTMLPanel divRegularDonationsEuros;
+ @UiField
+ HTMLPanel optRegularDonationEuros1;
+ @UiField
+ Anchor lnkEuros1;
+ @UiField
+ HTMLPanel optRegularDonationEuros2;
+ @UiField
+ Anchor lnkEuros2;
+ @UiField
+ HTMLPanel optRegularDonationEuros3;
+ @UiField
+ Anchor lnkEuros3;
+ @UiField
+ HTMLPanel optRegularDonationOtherEuros;
+ @UiField
+ FormPanel formPanelEuros;
+ @UiField
+ FlowPanel flowPanelEuros;
+ @UiField
+ TextBox txtbxOtherValueEuros;
+ @UiField
+ Label lblOtherValueEuros;
+ @UiField
+ HTMLPanel divRegularDonationsDollar;
+ @UiField
+ HTMLPanel optRegularDonationDollar1;
+ @UiField
+ Anchor lnkDollar1;
+ @UiField
+ HTMLPanel optRegularDonationDollar2;
+ @UiField
+ Anchor lnkDollar2;
+ @UiField
+ HTMLPanel optRegularDonationDollar3;
+ @UiField
+ Anchor lnkDollar3;
+ @UiField
+ HTMLPanel optRegularDonationOtherDollar;
+ @UiField
+ FormPanel formPanelDollar;
+ @UiField
+ FlowPanel flowPanelDollar;
+ @UiField
+ TextBox txtbxOtherValueDollar;
+ @UiField
+ Label lblOtherValueDollar;
+ @UiField
+ HTMLPanel divTitleSingle;
+ @UiField
+ Label lblSingleTitle;
+ @UiField
+ HTMLPanel divSingleDonationEuros;
+ @UiField
+ HTMLPanel optSingleDonationEuros1;
+ @UiField
+ Anchor lnkSingleEuros1;
+ @UiField
+ HTMLPanel optSingleDonationEuros2;
+ @UiField
+ Anchor lnkSingleEuros2;
+ @UiField
+ HTMLPanel optSingleDonationEuros3;
+ @UiField
+ Anchor lnkSingleEuros3;
+ @UiField
+ HTMLPanel optSingleDonationEuros4;
+ @UiField
+ Anchor lnkSingleEuros4;
+ @UiField
+ HTMLPanel divSingleDonationDollar;
+ @UiField
+ HTMLPanel optSingleDonationDollar1;
+ @UiField
+ Anchor lnkSingleDollar1;
+ @UiField
+ HTMLPanel optSingleDonationDollar2;
+ @UiField
+ Anchor lnkSingleDollar2;
+ @UiField
+ HTMLPanel optSingleDonationDollar3;
+ @UiField
+ Anchor lnkSingleDollar3;
+ @UiField
+ HTMLPanel optSingleDonationDollar4;
+ @UiField
+ Anchor lnkSingleDollar4;
+ @UiField
+ HTMLPanel divTextOther;
+ @UiField
+ Anchor lnkTextSingleOtherEuros;
+ @UiField
+ Anchor lnkTextSingleOtherDollar;
+ @UiField
+ HTMLPanel divTextOther2;
+ @UiField
+ HTMLPanel divTitleBank;
+ @UiField
+ Label lblTitleBank;
+ @UiField
+ HTMLPanel divTextOther3;
+ @UiField
+ Anchor lnkTextBank;
+ @UiField
+ HTMLPanel divTextOther4;
+ @UiField
+ HTMLPanel divTextOther5;
+ @UiField
+ HTMLPanel divTitleFinal;
+ @UiField
+ Label lblTitleFinal;
+
+ private static DonatePanelUiBinder uiBinder = GWT.create(DonatePanelUiBinder.class);
+
+ interface DonatePanelUiBinder extends UiBinder<Widget, DonatePanel> {
+ }
+
+ public DonatePanel() {
+ initWidget(uiBinder.createAndBindUi(this));
+ //Config of Dollar Regular Donations
+ lnkEuros1.setHTML(getTextDonation(REGULAR_DONATION_EURO, 10));
+ lnkEuros1.setHref(LNK_EURO_REGULAR_DONATION_1);
+
+ lnkEuros2.setHTML(getTextDonation(REGULAR_DONATION_EURO, 15));
+ lnkEuros2.setHref(LNK_EURO_REGULAR_DONATION_2);
+
+ lnkEuros3.setHTML(getTextDonation(REGULAR_DONATION_EURO, 20));
+ lnkEuros3.setHref(LNK_EURO_REGULAR_DONATION_3);
+
+ formPanelEuros.setMethod(FormPanel.METHOD_GET);
+ formPanelEuros.setAction(LNK_REGULAR_OTHER_VALUE_EUROS);
+
+ txtbxOtherValueEuros.setVisibleLength(10);
+ txtbxOtherValueEuros.setName(NAME_TB);
+ txtbxOtherValueEuros.setText(DEFAULT_VALUE);
+ txtbxOtherValueEuros.setTitle(DEFAULT_TITLE);
+
+ txtbxOtherValueEuros.addFocusHandler(new FocusHandler() {
+ public void onFocus(FocusEvent event) {
+ if(txtbxOtherValueEuros.getText().equals(DEFAULT_VALUE))
+ {
+ txtbxOtherValueEuros.setText("");
+ }
+ }
+ });
+
+ txtbxOtherValueEuros.addBlurHandler(new BlurHandler() {
+
+ @Override
+ public void onBlur(BlurEvent event) {
+ String sActualValue = txtbxOtherValueEuros.getText();
+ int iActualValue = 0;
+ if(!sActualValue.equals(""))
+ {
+ iActualValue = Integer.parseInt(sActualValue);
+ }
+
+ //validate
+ if(sActualValue == "" || iActualValue == 0)
+ {
+ txtbxOtherValueEuros.setText(DEFAULT_VALUE);
+ }
+ }
+ });
+
+ //Config of Dollar Regular Donations
+ lnkDollar1.setHTML(getTextDonation(REGULAR_DONATION_DOLLAR, 10));
+ lnkDollar1.setHref(LNK_DOLLAR_REGULAR_DONATION_1);
+
+ lnkDollar2.setHTML(getTextDonation(REGULAR_DONATION_DOLLAR, 15));
+ lnkDollar2.setHref(LNK_DOLLAR_REGULAR_DONATION_2);
+
+ lnkDollar3.setHTML(getTextDonation(REGULAR_DONATION_DOLLAR, 20));
+ lnkDollar3.setHref(LNK_DOLLAR_REGULAR_DONATION_3);
+
+ formPanelDollar.setAction(LNK_REGULAR_OTHER_VALUE_DOLLAR);
+ formPanelDollar.setMethod(FormPanel.METHOD_GET);
+
+ txtbxOtherValueDollar.setVisibleLength(10);
+ txtbxOtherValueDollar.setName(NAME_TB);
+ txtbxOtherValueDollar.setText(DEFAULT_VALUE);
+ txtbxOtherValueDollar.setTitle(DEFAULT_TITLE);
+
+ txtbxOtherValueDollar.addFocusHandler(new FocusHandler() {
+ public void onFocus(FocusEvent event) {
+ if(txtbxOtherValueDollar.getText().equals(DEFAULT_VALUE))
+ {
+ txtbxOtherValueDollar.setText("");
+ }
+ }
+ });
+
+ txtbxOtherValueDollar.addBlurHandler(new BlurHandler() {
+ public void onBlur(BlurEvent event) {
+ String sActualValue = txtbxOtherValueDollar.getText();
+ int iActualValue = 0;
+ if(!sActualValue.equals(""))
+ {
+ iActualValue = Integer.parseInt(sActualValue);
+ }
+ //validate
+ if(sActualValue == "" || iActualValue == 0)
+ {
+ txtbxOtherValueDollar.setText(DEFAULT_VALUE);
+ }
+ }
+ });
+
+ //Config of Euros Single Donations
+ lnkSingleEuros1.setHTML(getTextDonation(SINGLE_DONATION_EURO, 25));
+ lnkSingleEuros1.setHref(LNK_EURO_SINGLE_DONATION_1);
+
+ lnkSingleEuros2.setHTML(getTextDonation(SINGLE_DONATION_EURO, 75));
+ lnkSingleEuros2.setHref(LNK_EURO_SINGLE_DONATION_2);
+
+ lnkSingleEuros3.setHTML(getTextDonation(SINGLE_DONATION_EURO, 150));
+ lnkSingleEuros3.setHref(LNK_EURO_SINGLE_DONATION_3);
+
+ lnkSingleEuros4.setHTML(getTextDonation(SINGLE_DONATION_EURO, 300));
+ lnkSingleEuros4.setHref(LNK_EURO_SINGLE_DONATION_4);
+
+ //Config of Dollar Single Donations
+ lnkSingleDollar1.setHTML(getTextDonation(SINGLE_DONATION_DOLLAR, 25));
+ lnkSingleDollar1.setHref(LNK_DOLLAR_SINGLE_DONATION_1);
+
+ lnkSingleDollar2.setHTML(getTextDonation(SINGLE_DONATION_DOLLAR, 75));
+ lnkSingleDollar2.setHref(LNK_DOLLAR_SINGLE_DONATION_2);
+
+ lnkSingleDollar3.setHTML(getTextDonation(SINGLE_DONATION_DOLLAR, 150));
+ lnkSingleDollar3.setHref(LNK_DOLLAR_SINGLE_DONATION_3);
+
+ lnkSingleDollar4.setHTML(getTextDonation(SINGLE_DONATION_DOLLAR, 300));
+ lnkSingleDollar4.setHref(LNK_DOLLAR_SINGLE_DONATION_4);
+
+ //other text
+ lnkTextSingleOtherEuros.setHref(LNK_SINGLE_OTHER_VALUE_EUROS);
+ lnkTextSingleOtherDollar.setHref(LNK_SINGLE_OTHER_VALUE_DOLLAR);
+
+ lnkTextBank.setHref(LNK_BANK);
+ }
+
+ /*
+ * Function to get the text of link for donations by type
+ */
+ private String getTextDonation (int iTypeDonation, int iValueDonation)
+ {
+ String sText = "" + iValueDonation;
+ switch (iTypeDonation)
+ {
+ case REGULAR_DONATION_EURO:
+ sText += EURO_REGULAR_DONATION;
+ break;
+ case SINGLE_DONATION_EURO:
+ sText += EURO_DONATION;
+ break;
+ case REGULAR_DONATION_DOLLAR:
+ sText += DOLLAR_REGULAR_DONATION;
+ break;
+ case SINGLE_DONATION_DOLLAR:
+ sText += DOLLAR_DONATION;
+ break;
+ }
+ return sText;
+ }
+}
Property changes on: donate/src/cc/kune/sandbox/donate/client/DonatePanel.java
___________________________________________________________________
Name: svn:executable
+ *
Added: donate/src/cc/kune/sandbox/donate/client/DonatePanel.ui.xml
===================================================================
--- donate/src/cc/kune/sandbox/donate/client/DonatePanel.ui.xml (rev 0)
+++ donate/src/cc/kune/sandbox/donate/client/DonatePanel.ui.xml 2011-06-26 10:45:35 UTC (rev 1420)
@@ -0,0 +1,330 @@
+<!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">
+ <ui:style>
+ a {
+ color: #FE7047;
+ font-weight: bold;
+ outline: medium none;
+ text-decoration: none;
+ }
+
+ a:hover {
+ background: inherit;
+ color: #029A00;
+ outline: 0 none;
+ text-decoration: none;
+ }
+
+ a:visited {
+ outline: 0 none;
+ text-decoration: none;
+ }
+
+ .entries {
+ float: left;
+ line-height: 1.7em;
+ padding: 0 0 15px;
+ width: 590px;
+ }
+
+ div#entries {
+ border-right: 0 solid #F2F2F2;
+ padding-right: 15px;
+ }
+
+ .rightedit{
+ }
+
+ .post {
+ margin-bottom: 2em;
+ text-align: justify;
+ }
+
+ .titlePost {
+ display: inline;
+ font-size: 2em;
+ line-height: 1em;
+ margin-bottom: 0.2em;
+ margin-top: 2.5em;
+ font-weight: bold;
+ }
+
+ .introPost {
+ padding-bottom: 5px;
+ padding-top: 5px;
+ }
+
+ .titleRegular {
+ clear: both;
+ padding-top: 1em;
+ border-bottom: medium none;
+ letter-spacing: normal;
+ margin-bottom: -0.5em;
+ color: #555555;
+ font-size: 17px;
+ font-weight: bold;
+ text-transform: none
+ }
+
+ .pnlOptions {
+ border-bottom: 1px solid #E7E7E7;
+ background-color: #FFFFFF;
+ clear: left;
+ float: left;
+ list-style: none outside none;
+ margin: 10px 10px;
+ margin-top: 15px;
+ padding: 5px;
+ display: inline;
+ with: 550px;
+ height: 28px;
+ }
+
+ .option {
+ background: url("btn-blue.png") no-repeat scroll right top transparent;
+ float: left;
+ margin-right: 10px;
+ width: 115px;
+ height: 28px;
+ }
+
+ .optionSingle {
+ background: url("btn-blue.png") no-repeat scroll right top transparent;
+ float: left;
+ margin-right: 10px;
+ width: 75px;
+ height: 28px;
+ }
+
+ .option a {
+ background: url("btn-blue.png") no-repeat scroll left top transparent;
+ color: #13335B;
+ cursor: pointer;
+ float: left;
+ font: 900 14px/22px "Arial",Helvetica,sans-serif;
+ text-decoration: none;
+ padding: 1px 8px 5px 18px;
+ }
+
+ .option a:hover {
+ color: #951400;
+ }
+
+ .option a:active {
+ color: #029A00;
+ }
+
+ .optionSingle a {
+ background: url("btn-blue.png") no-repeat scroll left top transparent;
+ color: #13335B;
+ cursor: pointer;
+ float: left;
+ font: 900 14px/22px "Arial",Helvetica,sans-serif;
+ text-decoration: none;
+ padding: 1px 8px 5px 18px;
+ }
+
+ .optionSingle a:hover {
+ color: #951400;
+ }
+
+ .optionSingle a:active {
+ color: #029A00;
+ }
+
+ .lnkBotonBlue {
+ width: 85px;
+ height: 28px;
+ }
+
+ .lnkBotonBlueSingle {
+ width: 45px;
+ height: 28px;
+ }
+
+ .optionOther {
+ float: left;
+ width: 174px;
+ height: 28px;
+ }
+
+ .otherValue {
+ width: 83px;
+ height: 16px;
+ text-align: center;
+ margin: 5px 10px;
+ float: left;
+ }
+
+ .labelOther {
+ float: left;
+ }
+
+ .divTextDonate {
+ clear: both;
+ float: none;
+ }
+
+ .textDonateNewLine {
+ clear: both;
+ float: none;
+ margin-top: 10px;
+ margin-bottom: 10px;
+ }
+
+ </ui:style>
+
+ <g:HTMLPanel addStyleNames="{style.entries}" ui:field="divEntries">
+ <g:HTMLPanel addStyleNames="{style.rightedit}" ui:field="divRightedit">
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.post}" ui:field="divPost">
+ <g:HTMLPanel ui:field="divPostTitle">
+ <g:Label addStyleNames="{style.titlePost}" ui:field="lblPostTitle">
+ Donate to comunes
+ </g:Label>
+ </g:HTMLPanel>
+ <g:HTMLPanel ui:field="divIntro">
+ <g:Label addStyleNames="{style.introPost}" ui:field="lblPostIntro">
+ Comunes is a non-profit organization dedicated to encourage the commons,
+ those goods collectively owned by everybody, and also serves as an umbrella
+ for other related initiatives. We rely on the generous support of people
+ like you and other collectives to help us continue the work we do.
+ </g:Label>
+ </g:HTMLPanel>
+ <g:HTMLPanel ui:field="divTitleRegular">
+ <g:Label addStyleNames="{style.titleRegular}" ui:field="lblRegularTitle">
+ Regular donation per month (the most necessary for us)
+ </g:Label>
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.pnlOptions}" ui:field="divRegularDonationsEuros">
+ <g:HTMLPanel addStyleNames="{style.option}" ui:field="optRegularDonationEuros1">
+ <g:Anchor addStyleNames="{style.lnkBotonBlue}" ui:field="lnkEuros1"></g:Anchor>
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.option}" ui:field="optRegularDonationEuros2">
+ <g:Anchor addStyleNames="{style.lnkBotonBlue}" ui:field="lnkEuros2"></g:Anchor>
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.option}" ui:field="optRegularDonationEuros3">
+ <g:Anchor addStyleNames="{style.lnkBotonBlue}" ui:field="lnkEuros3"></g:Anchor>
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.optionOther}" ui:field="optRegularDonationOtherEuros">
+ <g:FormPanel ui:field="formPanelEuros">
+ <g:FlowPanel ui:field="flowPanelEuros">
+ <g:TextBox addStyleNames="{style.otherValue}" ui:field="txtbxOtherValueEuros">
+ </g:TextBox>
+ <g:Hidden name="business" value="donate(a)ourproject.org"></g:Hidden>
+ <g:Hidden name="cmd" value="_xclick-subscriptions"></g:Hidden>
+ <g:Hidden name="item_name" value=" Donate to comunes.org"></g:Hidden>
+ <g:Hidden name="currency_code" value="EUR"></g:Hidden>
+ <g:Hidden name="no_shipping" value="1"></g:Hidden>
+ <g:Hidden name="t3" value="M"></g:Hidden>
+ <g:Hidden name="p3" value="1"></g:Hidden>
+ <g:Hidden name="src" value="1"></g:Hidden>
+ <g:Hidden name="image_url" value="http://comunes.org/cm/images/logo-pp.png"></g:Hidden>
+ <g:Hidden name="sra" value="1"></g:Hidden>
+ <g:Hidden name="lc" value="us"></g:Hidden>
+ <g:Label addStyleNames="{style.labelOther}" ui:field="lblOtherValueEuros">
+ €/month
+ </g:Label>
+ </g:FlowPanel>
+
+ </g:FormPanel>
+ </g:HTMLPanel>
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.pnlOptions}" ui:field="divRegularDonationsDollar">
+ <g:HTMLPanel addStyleNames="{style.option}" ui:field="optRegularDonationDollar1">
+ <g:Anchor addStyleNames="{style.lnkBotonBlue}" ui:field="lnkDollar1"></g:Anchor>
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.option}" ui:field="optRegularDonationDollar2">
+ <g:Anchor addStyleNames="{style.lnkBotonBlue}" ui:field="lnkDollar2"></g:Anchor>
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.option}" ui:field="optRegularDonationDollar3">
+ <g:Anchor addStyleNames="{style.lnkBotonBlue}" ui:field="lnkDollar3"></g:Anchor>
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.optionOther}" ui:field="optRegularDonationOtherDollar">
+ <g:FormPanel ui:field="formPanelDollar">
+ <g:FlowPanel ui:field="flowPanelDollar">
+ <g:TextBox addStyleNames="{style.otherValue}" ui:field="txtbxOtherValueDollar">
+ </g:TextBox>
+ <g:Hidden name="business" value="donate(a)ourproject.org"></g:Hidden>
+ <g:Hidden name="cmd" value="_xclick-subscriptions"></g:Hidden>
+ <g:Hidden name="item_name" value=" Donate to comunes.org"></g:Hidden>
+ <g:Hidden name="currency_code" value="USD"></g:Hidden>
+ <g:Hidden name="no_shipping" value="1"></g:Hidden>
+ <g:Hidden name="t3" value="M"></g:Hidden>
+ <g:Hidden name="p3" value="1"></g:Hidden>
+ <g:Hidden name="src" value="1"></g:Hidden>
+ <g:Hidden name="image_url" value="http://comunes.org/cm/images/logo-pp.png"></g:Hidden>
+ <g:Hidden name="sra" value="1"></g:Hidden>
+ <g:Hidden name="lc" value="us"></g:Hidden>
+ <g:Label addStyleNames="{style.labelOther}" ui:field="lblOtherValueDollar">
+ €/month
+ </g:Label>
+ </g:FlowPanel>
+ </g:FormPanel>
+ </g:HTMLPanel>
+ </g:HTMLPanel>
+ <g:HTMLPanel ui:field="divTitleSingle">
+ <g:Label addStyleNames="{style.titleRegular}" ui:field="lblSingleTitle">
+ Single donation
+ </g:Label>
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.pnlOptions}" ui:field="divSingleDonationEuros">
+ <g:HTMLPanel addStyleNames="{style.optionSingle}" ui:field="optSingleDonationEuros1">
+ <g:Anchor addStyleNames="{style.lnkBotonBlueSingle}" ui:field="lnkSingleEuros1"></g:Anchor>
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.optionSingle}" ui:field="optSingleDonationEuros2">
+ <g:Anchor addStyleNames="{style.lnkBotonBlueSingle}" ui:field="lnkSingleEuros2"></g:Anchor>
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.optionSingle}" ui:field="optSingleDonationEuros3">
+ <g:Anchor addStyleNames="{style.lnkBotonBlueSingle}" ui:field="lnkSingleEuros3"></g:Anchor>
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.optionSingle}" ui:field="optSingleDonationEuros4">
+ <g:Anchor addStyleNames="{style.lnkBotonBlueSingle}" ui:field="lnkSingleEuros4"></g:Anchor>
+ </g:HTMLPanel>
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.pnlOptions}" ui:field="divSingleDonationDollar">
+ <g:HTMLPanel addStyleNames="{style.optionSingle}" ui:field="optSingleDonationDollar1">
+ <g:Anchor addStyleNames="{style.lnkBotonBlueSingle}" ui:field="lnkSingleDollar1"></g:Anchor>
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.optionSingle}" ui:field="optSingleDonationDollar2">
+ <g:Anchor addStyleNames="{style.lnkBotonBlueSingle}" ui:field="lnkSingleDollar2"></g:Anchor>
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.optionSingle}" ui:field="optSingleDonationDollar3">
+ <g:Anchor addStyleNames="{style.lnkBotonBlueSingle}" ui:field="lnkSingleDollar3"></g:Anchor>
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.optionSingle}" ui:field="optSingleDonationDollar4">
+ <g:Anchor addStyleNames="{style.lnkBotonBlueSingle}" ui:field="lnkSingleDollar4"></g:Anchor>
+ </g:HTMLPanel>
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.divTextDonate}" ui:field="divTextOther">
+ For other amounts use
+ <g:Anchor ui:field="lnkTextSingleOtherEuros">this link for Euros</g:Anchor>
+ or
+ <g:Anchor ui:field="lnkTextSingleOtherDollar">this one for USD.</g:Anchor>
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.textDonateNewLine}" ui:field="divTextOther2">
+ Please consider donating more if you can afford it.
+ </g:HTMLPanel>
+ <g:HTMLPanel ui:field="divTitleBank">
+ <g:Label addStyleNames="{style.titleRegular}" ui:field="lblTitleBank">
+ Give using your Bank
+ </g:Label>
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.textDonateNewLine}" ui:field="divTextOther3">
+ <g:Anchor ui:field="lnkTextBank">See our Bank account info page</g:Anchor>
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.textDonateNewLine}" ui:field="divTextOther4">
+ Unless you specify the contrary, we will add you to our donor list.
+ </g:HTMLPanel>
+ <g:HTMLPanel addStyleNames="{style.textDonateNewLine}" ui:field="divTextOther5">
+ If you have doubts please contact us at donate at ourproject dot org.
+ </g:HTMLPanel>
+ <g:HTMLPanel ui:field="divTitleFinal">
+ <g:Label addStyleNames="{style.titleRegular}" ui:field="lblTitleFinal">
+ Thanks indeed!
+ </g:Label>
+ </g:HTMLPanel>
+ </g:HTMLPanel>
+ </g:HTMLPanel>
+</ui:UiBinder>
\ No newline at end of file
Property changes on: donate/src/cc/kune/sandbox/donate/client/DonatePanel.ui.xml
___________________________________________________________________
Name: svn:executable
+ *
1
0
Author: vjrj_
Date: 2011-06-26 05:26:13 +0200 (Sun, 26 Jun 2011)
New Revision: 1419
Added:
trunk/src/main/java/cc/kune/core/client/actions/xml/
trunk/src/main/java/cc/kune/core/client/actions/xml/NewGadgetAction.java
trunk/src/main/java/cc/kune/core/client/actions/xml/WaveExtension.java
trunk/src/main/java/cc/kune/core/client/actions/xml/XMLActionsParser.java
trunk/src/main/java/cc/kune/core/client/actions/xml/XMLGuiActionDescriptor.java
trunk/src/main/java/cc/kune/core/client/actions/xml/XMLKuneClientActions.java
trunk/src/main/java/cc/kune/core/client/actions/xml/XMLRol.java
trunk/src/main/java/cc/kune/core/client/actions/xml/XMLTypeId.java
trunk/src/main/java/cc/kune/core/client/actions/xml/XMLWaveExtension.java
trunk/src/main/java/cc/kune/core/server/content/XMLActionReader.java
trunk/src/main/webapp/others/kune-client-actions.xml
trunk/src/test/java/cc/kune/core/client/actions/xml/
trunk/src/test/java/cc/kune/core/client/actions/xml/XMLKuneClientActionsTest.java
Removed:
trunk/src/main/java/cc/kune/core/client/actions/WaveExtension.java
trunk/src/main/java/cc/kune/core/client/actions/XMLActionsParser.java
trunk/src/main/webapp/others/kune-wave-extensions.xml
trunk/src/test/java/org/ourproject/kune/chat/
Modified:
trunk/.classpath
trunk/pom.xml
trunk/src/main/java/cc/kune/client/KuneGinjector.java
trunk/src/main/java/cc/kune/core/KuneCore.gwt.xml
trunk/src/main/java/cc/kune/core/client/CoreGinModule.java
trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java
trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceAsync.java
trunk/src/main/java/cc/kune/core/public/ws.css
trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java
trunk/src/main/java/cc/kune/core/server/content/CreationService.java
trunk/src/main/java/cc/kune/core/server/content/CreationServiceDefault.java
trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java
trunk/src/main/java/cc/kune/gspace/client/actions/AbstractNewMenu.java
Log:
XML Actions almost finished
Modified: trunk/.classpath
===================================================================
--- trunk/.classpath 2011-06-25 02:06:47 UTC (rev 1418)
+++ trunk/.classpath 2011-06-26 03:26:13 UTC (rev 1419)
@@ -136,6 +136,7 @@
<classpathentry kind="var" path="M2_REPO/org/yaml/snakeyaml/1.6/snakeyaml-1.6.jar" sourcepath="M2_REPO/org/yaml/snakeyaml/1.6/snakeyaml-1.6-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar"/>
<classpathentry kind="var" path="M2_REPO/org/testng/testng/6.0.1/testng-6.0.1.jar" sourcepath="M2_REPO/org/testng/testng/6.0.1/testng-6.0.1-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/tigase/tigase-xmltools/3.3.5/tigase-xmltools-3.3.5.jar" sourcepath="M2_REPO/tigase/tigase-xmltools/3.3.5/tigase-xmltools-3.3.5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/waveprotocol/util-src/0.3.1-SNAPSHOT/util-src-0.3.1-SNAPSHOT.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5.jar" sourcepath="M2_REPO/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/waveprotocol/waveinabox-server-0.3/0.3.1-SNAPSHOT/waveinabox-server-0.3-0.3.1-SNAPSHOT.jar"/>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-06-25 02:06:47 UTC (rev 1418)
+++ trunk/pom.xml 2011-06-26 03:26:13 UTC (rev 1419)
@@ -144,6 +144,11 @@
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</repository>
+ <repository>
+ <id>tigase</id>
+ <name>Tigase Repository</name>
+ <url>http://maven.tigase.org</url>
+ </repository>
</repositories>
<pluginRepositories>
<!-- cc -->
@@ -528,6 +533,12 @@
<version>6.0.1</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>tigase</groupId>
+ <artifactId>tigase-xmltools</artifactId>
+ <version>3.3.5</version>
+ <!-- <scope>test</scope> -->
+ </dependency>
<!-- If you want to start a selenium server, you will need the following
dependency: -->
<!-- <dependency> -->
Modified: trunk/src/main/java/cc/kune/client/KuneGinjector.java
===================================================================
--- trunk/src/main/java/cc/kune/client/KuneGinjector.java 2011-06-25 02:06:47 UTC (rev 1418)
+++ trunk/src/main/java/cc/kune/client/KuneGinjector.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -32,7 +32,7 @@
import cc.kune.common.client.shortcuts.GlobalShortcutRegister;
import cc.kune.core.client.CoreGinModule;
import cc.kune.core.client.CoreParts;
-import cc.kune.core.client.actions.XMLActionsParser;
+import cc.kune.core.client.actions.xml.XMLActionsParser;
import cc.kune.core.client.auth.RegisterPresenter;
import cc.kune.core.client.auth.SignInPresenter;
import cc.kune.core.client.cookies.CookiesManager;
Modified: trunk/src/main/java/cc/kune/core/KuneCore.gwt.xml
===================================================================
--- trunk/src/main/java/cc/kune/core/KuneCore.gwt.xml 2011-06-25 02:06:47 UTC (rev 1418)
+++ trunk/src/main/java/cc/kune/core/KuneCore.gwt.xml 2011-06-26 03:26:13 UTC (rev 1419)
@@ -14,6 +14,8 @@
<inherits name="cc.kune.gspace.GSpace" />
<inherits name="cc.kune.msgs.KuneMsgs" />
<inherits name="cc.kune.common.KuneCommon" />
+ <!-- Because of XML actions -->
+ <inherits name='com.calclab.emite.core.EmiteCore' />
<inherits name="com.extjs.gxt.ui.GXT" />
<!-- <inherits name="com.jhickman.web.gwt.gxtuibinder.GxtUiBinder" />-->
<inherits name="com.calclab.suco.Suco" />
Modified: trunk/src/main/java/cc/kune/core/client/CoreGinModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2011-06-25 02:06:47 UTC (rev 1418)
+++ trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -30,7 +30,7 @@
import cc.kune.common.client.ui.MaskWidget;
import cc.kune.common.client.ui.MaskWidgetView;
import cc.kune.core.client.actions.ActionRegistryByType;
-import cc.kune.core.client.actions.XMLActionsParser;
+import cc.kune.core.client.actions.xml.XMLActionsParser;
import cc.kune.core.client.auth.Register;
import cc.kune.core.client.auth.RegisterPanel;
import cc.kune.core.client.auth.RegisterPresenter;
@@ -107,6 +107,8 @@
import cc.kune.msgs.client.UserMessagesPanel;
import cc.kune.msgs.client.UserMessagesPresenter;
+import com.calclab.emite.core.client.services.Services;
+import com.calclab.emite.core.client.services.gwt.GWTServices;
import com.google.gwt.event.shared.EventBus;
import com.google.inject.Singleton;
import com.gwtplatform.mvp.client.DefaultProxyFailureHandler;
@@ -215,6 +217,7 @@
s(ErrorsDialog.class);
s(XMLActionsParser.class);
+ bind(Services.class).to(GWTServices.class);
}
}
Deleted: trunk/src/main/java/cc/kune/core/client/actions/WaveExtension.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/WaveExtension.java 2011-06-25 02:06:47 UTC (rev 1418)
+++ trunk/src/main/java/cc/kune/core/client/actions/WaveExtension.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -1,78 +0,0 @@
-package cc.kune.core.client.actions;
-
-public class WaveExtension {
- public static class Builder {
- private String gadgetUrl;
- private String iconCss;
- private String iconUrl;
- private String installerUrl;
- private String name;
-
- public Builder() {
- }
-
- public WaveExtension build() {
- return new WaveExtension(this);
- }
-
- public Builder gadgetUrl(final String gadgetUrl) {
- this.gadgetUrl = gadgetUrl;
- return this;
- }
-
- public Builder iconCss(final String iconCss) {
- this.iconCss = iconCss;
- return this;
- }
-
- public Builder iconUrl(final String iconUrl) {
- this.iconUrl = iconUrl;
- return this;
- }
-
- public Builder installerUrl(final String installerUrl) {
- this.installerUrl = installerUrl;
- return this;
- }
-
- public Builder name(final String name) {
- this.name = name;
- return this;
- }
- }
-
- private final String gadgetUrl;
- private final String iconCss;
- private final String iconUrl;
- private final String installerUrl;
- private final String name;
-
- public WaveExtension(final Builder builder) {
- gadgetUrl = builder.gadgetUrl;
- iconCss = builder.iconCss;
- iconUrl = builder.iconUrl;
- installerUrl = builder.installerUrl;
- name = builder.name;
- }
-
- public String getGadgetUrl() {
- return gadgetUrl;
- }
-
- public String getIconCss() {
- return iconCss;
- }
-
- public String getIconUrl() {
- return iconUrl;
- }
-
- public String getInstallerUrl() {
- return installerUrl;
- }
-
- public String getName() {
- return name;
- }
-
-}
Deleted: trunk/src/main/java/cc/kune/core/client/actions/XMLActionsParser.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/XMLActionsParser.java 2011-06-25 02:06:47 UTC (rev 1418)
+++ trunk/src/main/java/cc/kune/core/client/actions/XMLActionsParser.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -1,192 +0,0 @@
-package cc.kune.core.client.actions;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import cc.kune.common.client.actions.Action;
-import cc.kune.common.client.actions.ActionEvent;
-import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
-import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
-import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
-import cc.kune.common.client.actions.ui.descrip.SubMenuDescriptor;
-import cc.kune.common.client.errors.UIException;
-import cc.kune.common.client.notify.NotifyUser;
-import cc.kune.common.client.utils.TextUtils;
-import cc.kune.core.client.actions.WaveExtension.Builder;
-import cc.kune.core.client.errors.ErrorHandler;
-import cc.kune.core.client.registry.NewMenusForTypeIdsRegistry;
-import cc.kune.core.client.rpcservices.ContentServiceAsync;
-import cc.kune.core.shared.dto.AccessRolDTO;
-import cc.kune.gspace.client.actions.ActionGroups;
-
-import com.google.gwt.http.client.Request;
-import com.google.gwt.http.client.RequestBuilder;
-import com.google.gwt.http.client.RequestCallback;
-import com.google.gwt.http.client.RequestException;
-import com.google.gwt.http.client.Response;
-import com.google.gwt.xml.client.Document;
-import com.google.gwt.xml.client.Element;
-import com.google.gwt.xml.client.Node;
-import com.google.gwt.xml.client.NodeList;
-import com.google.gwt.xml.client.XMLParser;
-import com.google.inject.Inject;
-import com.google.inject.Provider;
-
-public class XMLActionsParser {
-
- public static class GadgetAction extends RolAction {
-
- private final Provider<ContentServiceAsync> contentService;
- private final String gadgetName;
-
- public GadgetAction(final Provider<ContentServiceAsync> contentService, final AccessRolDTO rok,
- final boolean authNeeded, final String gadgetName, final String iconUrl) {
- super(rok, authNeeded);
- this.contentService = contentService;
- this.gadgetName = gadgetName;
- putValue(Action.SMALL_ICON, iconUrl);
- }
-
- @Override
- public void actionPerformed(final ActionEvent event) {
- NotifyUser.info("Created succesfully");
- }
-
- }
-
- private static final String SEP = "»";
-
- private final ActionRegistryByType actionRegistry;
- private final Provider<ContentServiceAsync> contentService;
- private final ErrorHandler errHandler;
- private final Map<String, WaveExtension> extensionsMap;
- private final NewMenusForTypeIdsRegistry newMenusRegistry;
- private final HashMap<String, SubMenuDescriptor> submenus;
-
- @Inject
- public XMLActionsParser(final ErrorHandler errHandler, final ActionRegistryByType actionRegistry,
- final Provider<ContentServiceAsync> contentService,
- final NewMenusForTypeIdsRegistry newMenusRegistry) {
- this.errHandler = errHandler;
- this.actionRegistry = actionRegistry;
- this.contentService = contentService;
- this.newMenusRegistry = newMenusRegistry;
- extensionsMap = new HashMap<String, WaveExtension>();
- submenus = new HashMap<String, SubMenuDescriptor>();
-
- // Based on:
- // http://www.roseindia.net/tutorials/gwt/retrieving-xml-data.shtml
- final RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET,
- "/others/kune-wave-extensions.xml");
- try {
- requestBuilder.sendRequest(null, new RequestCallback() {
- @Override
- public void onError(final Request request, final Throwable ex) {
- onFailed(ex);
- }
-
- @Override
- public void onResponseReceived(final Request request, final Response response) {
- parseXML(response.getText());
- }
- });
- } catch (final RequestException ex) {
- onFailed(ex);
- }
- }
-
- private String get(final Element extension, final String id) {
- final Node child = extension.getElementsByTagName(id).item(0).getFirstChild();
- return child != null ? child.getNodeValue() : "";
- }
-
- private SubMenuDescriptor getSubMenu(final MenuDescriptor menu, final String typeId,
- final String parentS) {
- final String[] path = parentS.split(SEP);
- SubMenuDescriptor current = null;
- for (int i = 0; i < path.length; i++) {
- final String name = path[i];
- final String subpathId = getSubPathId(typeId, path, i);
- SubMenuDescriptor subMenuDescriptor = submenus.get(subpathId);
- if (subMenuDescriptor == null) {
- final GuiActionDescrip parent = (i == 0 ? menu : submenus.get(getSubPathId(typeId, path, i - 1)));
- assert parent != null;
- subMenuDescriptor = new SubMenuDescriptor(parent, name);
- // subMenuDescriptor.setVisible(false);
- submenus.put(subpathId, subMenuDescriptor);
- actionRegistry.addAction(ActionGroups.TOOLBAR, subMenuDescriptor, typeId);
- }
- current = subMenuDescriptor;
- }
- assert current != null;
- return current;
- }
-
- private String getSubPathId(final String typeId, final String[] path, final int i) {
- final StringBuffer id = new StringBuffer().append(typeId);
- for (int j = 0; j <= i; j++) {
- id.append(SEP).append(path[j]);
- }
- return id.toString();
- }
-
- private void onFailed(final Throwable ex) {
- errHandler.process(ex);
- }
-
- private void parseXML(final String text) {
- final Document parse = XMLParser.parse(text);
- final NodeList extensions = ((Element) parse.getElementsByTagName("extensions").item(0)).getElementsByTagName("extension");
- for (int i = 0; i < extensions.getLength(); i++) {
- final Element extension = (Element) extensions.item(i);
- final Builder builder = new WaveExtension.Builder();
- final String name = get(extension, "name");
- builder.name(name);
- builder.gadgetUrl(get(extension, "gadgetUrl"));
- builder.iconUrl(get(extension, "iconUrl"));
- builder.iconCss(get(extension, "iconCss"));
- builder.installerUrl(get(extension, "installerUrl"));
- extensionsMap.put(name, builder.build());
- }
- final NodeList guiDescriptors = ((Element) parse.getElementsByTagName("guiActionDescriptors").item(0)).getElementsByTagName("guiActionDescriptor");
- for (int i = 0; i < guiDescriptors.getLength(); i++) {
- final Element guiDescriptor = (Element) guiDescriptors.item(i);
- if (Boolean.parseBoolean(get(guiDescriptor, "enabled"))) {
- final String type = get(guiDescriptor, "type");
- if (type.equals("wave-gadget")) {
- final String extensionName = get(guiDescriptor, "extensionName");
- final WaveExtension extension = extensionsMap.get(extensionName);
- if (extension == null) {
- throw new UIException("Undefined extension " + extensionName);
- }
- final String name = get(guiDescriptor, "name");
- final String description = get(guiDescriptor, "description");
- final AccessRolDTO rol = AccessRolDTO.valueOf(get(guiDescriptor, "rolRequired"));
- final GadgetAction action = new GadgetAction(contentService, rol, Boolean.parseBoolean(get(
- guiDescriptor, "authNeed")), extension.getGadgetUrl(), extension.getIconUrl());
- final NodeList typeIds = ((Element) guiDescriptor.getElementsByTagName("typeIds").item(0)).getElementsByTagName("typeId");
- final int length = typeIds.getLength();
-
- for (int j = 0; j < length; j++) {
- final Element typeIdElem = (Element) typeIds.item(j);
- final String typeId = typeIdElem.getFirstChild().getNodeValue();
- final MenuDescriptor menu = newMenusRegistry.get(typeId);
- assert menu != null;
- final String parent = get(guiDescriptor, "parent");
- final SubMenuDescriptor submenu = getSubMenu(menu, typeId, parent);
- final Provider<GuiActionDescrip> menuItemProvider = new Provider<GuiActionDescrip>() {
- @Override
- public GuiActionDescrip get() {
- final MenuItemDescriptor menuItem = new MenuItemDescriptor(action);
- menuItem.withText(name).withToolTip(description);
- menuItem.setParent(TextUtils.notEmpty(parent) ? submenu : menu);
- return menuItem;
- }
- };
- actionRegistry.addAction(ActionGroups.TOOLBAR, menuItemProvider, typeId);
- }
- }
- }
- }
- }
-}
Added: trunk/src/main/java/cc/kune/core/client/actions/xml/NewGadgetAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/xml/NewGadgetAction.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/actions/xml/NewGadgetAction.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -0,0 +1,56 @@
+package cc.kune.core.client.actions.xml;
+
+import cc.kune.common.client.actions.Action;
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.common.client.notify.NotifyUser;
+import cc.kune.core.client.actions.RolAction;
+import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
+import cc.kune.core.client.rpcservices.ContentServiceAsync;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.client.state.StateManager;
+import cc.kune.core.shared.dto.AccessRolDTO;
+import cc.kune.core.shared.dto.StateContentDTO;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+
+import com.google.inject.Provider;
+
+public class NewGadgetAction extends RolAction {
+
+ private final String body;
+ private final Provider<ContentServiceAsync> contentService;
+ private final String gadgetName;
+ private final I18nTranslationService i18n;
+ private final Session session;
+ private final StateManager stateManager;
+ private final String title;
+ private final String typeId;
+
+ public NewGadgetAction(final Provider<ContentServiceAsync> contentService,
+ final StateManager stateManager, final Session session, final I18nTranslationService i18n,
+ final AccessRolDTO rol, final boolean authNeeded, final String gadgetName, final String typeId,
+ final String iconUrl, final String title, final String body) {
+ super(rol, authNeeded);
+ this.contentService = contentService;
+ this.stateManager = stateManager;
+ this.i18n = i18n;
+ this.gadgetName = gadgetName;
+ this.session = session;
+ this.typeId = typeId;
+ this.title = title;
+ this.body = body;
+ putValue(Action.SMALL_ICON, iconUrl);
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ contentService.get().addGadget(session.getUserHash(), session.getCurrentStateToken(), gadgetName,
+ typeId, i18n.t(title), i18n.t(body), new AsyncCallbackSimple<StateContentDTO>() {
+ @Override
+ public void onSuccess(final StateContentDTO result) {
+ NotifyUser.info(i18n.t("[%s] created succesfully", title));
+ stateManager.setRetrievedStateAndGo(result);
+ }
+ });
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/src/main/java/cc/kune/core/client/actions/xml/NewGadgetAction.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: trunk/src/main/java/cc/kune/core/client/actions/xml/WaveExtension.java (from rev 1409, trunk/src/main/java/cc/kune/core/client/actions/WaveExtension.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/xml/WaveExtension.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/actions/xml/WaveExtension.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -0,0 +1,78 @@
+package cc.kune.core.client.actions.xml;
+
+public class WaveExtension {
+ public static class Builder {
+ private String gadgetUrl;
+ private String iconCss;
+ private String iconUrl;
+ private String installerUrl;
+ private String name;
+
+ public Builder() {
+ }
+
+ public WaveExtension build() {
+ return new WaveExtension(this);
+ }
+
+ public Builder gadgetUrl(final String gadgetUrl) {
+ this.gadgetUrl = gadgetUrl;
+ return this;
+ }
+
+ public Builder iconCss(final String iconCss) {
+ this.iconCss = iconCss;
+ return this;
+ }
+
+ public Builder iconUrl(final String iconUrl) {
+ this.iconUrl = iconUrl;
+ return this;
+ }
+
+ public Builder installerUrl(final String installerUrl) {
+ this.installerUrl = installerUrl;
+ return this;
+ }
+
+ public Builder name(final String name) {
+ this.name = name;
+ return this;
+ }
+ }
+
+ private final String gadgetUrl;
+ private final String iconCss;
+ private final String iconUrl;
+ private final String installerUrl;
+ private final String name;
+
+ public WaveExtension(final Builder builder) {
+ gadgetUrl = builder.gadgetUrl;
+ iconCss = builder.iconCss;
+ iconUrl = builder.iconUrl;
+ installerUrl = builder.installerUrl;
+ name = builder.name;
+ }
+
+ public String getGadgetUrl() {
+ return gadgetUrl;
+ }
+
+ public String getIconCss() {
+ return iconCss;
+ }
+
+ public String getIconUrl() {
+ return iconUrl;
+ }
+
+ public String getInstallerUrl() {
+ return installerUrl;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+}
Property changes on: trunk/src/main/java/cc/kune/core/client/actions/xml/WaveExtension.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: trunk/src/main/java/cc/kune/core/client/actions/xml/XMLActionsParser.java (from rev 1417, trunk/src/main/java/cc/kune/core/client/actions/XMLActionsParser.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/xml/XMLActionsParser.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/actions/xml/XMLActionsParser.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -0,0 +1,146 @@
+package cc.kune.core.client.actions.xml;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
+import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
+import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
+import cc.kune.common.client.actions.ui.descrip.SubMenuDescriptor;
+import cc.kune.common.client.utils.TextUtils;
+import cc.kune.core.client.actions.ActionRegistryByType;
+import cc.kune.core.client.errors.ErrorHandler;
+import cc.kune.core.client.registry.NewMenusForTypeIdsRegistry;
+import cc.kune.core.client.rpcservices.ContentServiceAsync;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.client.state.StateManager;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+import cc.kune.gspace.client.actions.ActionGroups;
+
+import com.calclab.emite.core.client.services.Services;
+import com.google.gwt.http.client.Request;
+import com.google.gwt.http.client.RequestBuilder;
+import com.google.gwt.http.client.RequestCallback;
+import com.google.gwt.http.client.RequestException;
+import com.google.gwt.http.client.Response;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class XMLActionsParser {
+
+ public static final String ACTIONS_XML_LOCATION = "/others/kune-client-actions.xml";
+
+ private static final String SEP = "»";
+
+ private final ActionRegistryByType actionRegistry;
+ private final Provider<ContentServiceAsync> contentService;
+ private final ErrorHandler errHandler;
+ private final I18nTranslationService i18n;
+ private final NewMenusForTypeIdsRegistry newMenusRegistry;
+
+ private final Session session;
+
+ private final StateManager stateManager;
+
+ private final HashMap<String, SubMenuDescriptor> submenus;
+
+ @Inject
+ public XMLActionsParser(final ErrorHandler errHandler, final ActionRegistryByType actionRegistry,
+ final Provider<ContentServiceAsync> contentService, final Session session,
+ final StateManager stateManager, final I18nTranslationService i18n,
+ final NewMenusForTypeIdsRegistry newMenusRegistry, final Services services) {
+ this.errHandler = errHandler;
+ this.actionRegistry = actionRegistry;
+ this.contentService = contentService;
+ this.session = session;
+ this.stateManager = stateManager;
+ this.i18n = i18n;
+ this.newMenusRegistry = newMenusRegistry;
+ submenus = new HashMap<String, SubMenuDescriptor>();
+
+ // Based on:
+ // http://www.roseindia.net/tutorials/gwt/retrieving-xml-data.shtml
+ final RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, ACTIONS_XML_LOCATION);
+ try {
+ requestBuilder.sendRequest(null, new RequestCallback() {
+ @Override
+ public void onError(final Request request, final Throwable ex) {
+ onFailed(ex);
+ }
+
+ @Override
+ public void onResponseReceived(final Request request, final Response response) {
+ parse(new XMLKuneClientActions(services, response.getText()));
+ }
+ });
+ } catch (final RequestException ex) {
+ onFailed(ex);
+ }
+ }
+
+ private SubMenuDescriptor getSubMenu(final MenuDescriptor menu, final String typeId,
+ final String parentS) {
+ final String[] path = parentS.split(SEP);
+ SubMenuDescriptor current = null;
+ for (int i = 0; i < path.length; i++) {
+ final String name = path[i];
+ final String subpathId = getSubPathId(typeId, path, i);
+ SubMenuDescriptor subMenuDescriptor = submenus.get(subpathId);
+ if (subMenuDescriptor == null) {
+ final GuiActionDescrip parent = (i == 0 ? menu : submenus.get(getSubPathId(typeId, path, i - 1)));
+ assert parent != null;
+ subMenuDescriptor = new SubMenuDescriptor(parent, i18n.t(name));
+ // subMenuDescriptor.setVisible(false);
+ submenus.put(subpathId, subMenuDescriptor);
+ actionRegistry.addAction(ActionGroups.TOOLBAR, subMenuDescriptor, typeId);
+ }
+ current = subMenuDescriptor;
+ }
+ assert current != null;
+ return current;
+ }
+
+ private String getSubPathId(final String typeId, final String[] path, final int i) {
+ final StringBuffer id = new StringBuffer().append(typeId);
+ for (int j = 0; j <= i; j++) {
+ id.append(SEP).append(path[j]);
+ }
+ return id.toString();
+ }
+
+ private void onFailed(final Throwable ex) {
+ errHandler.process(ex);
+ }
+
+ private void parse(final XMLKuneClientActions xml) {
+ final Map<String, XMLWaveExtension> extensions = xml.getExtensions();
+ for (final XMLGuiActionDescriptor descrip : xml.getGuiActionDescriptors()) {
+ if (descrip.isEnabled()) {
+ final XMLWaveExtension extension = extensions.get(descrip.getExtensionName());
+ assert extension != null;
+ for (final XMLTypeId typeId : descrip.getTypeIds()) {
+ final String origTypeId = typeId.getOrigTypeId();
+ final String contentIntro = descrip.getNewContentTextIntro();
+ final NewGadgetAction action = new NewGadgetAction(contentService, stateManager, session,
+ i18n, descrip.getRol().getRolRequired(), descrip.getRol().isAuthNeed(),
+ extension.getExtName(), typeId.getDestTypeId(), extension.getIconUrl(),
+ descrip.getNewContentTitle(), TextUtils.empty(contentIntro) ? "" : contentIntro);
+ final String path = descrip.getPath();
+ final MenuDescriptor menu = newMenusRegistry.get(origTypeId);
+ assert menu != null;
+ final SubMenuDescriptor submenu = getSubMenu(menu, origTypeId, path);
+ final Provider<GuiActionDescrip> menuItemProvider = new Provider<GuiActionDescrip>() {
+ @Override
+ public GuiActionDescrip get() {
+ final MenuItemDescriptor menuItem = new MenuItemDescriptor(action);
+ menuItem.withText(descrip.getDescName()).withToolTip(descrip.getDescription());
+ menuItem.setParent(TextUtils.notEmpty(path) ? submenu : menu);
+ return menuItem;
+ }
+ };
+ actionRegistry.addAction(ActionGroups.TOOLBAR, menuItemProvider, origTypeId);
+ }
+ }
+ }
+ }
+}
Property changes on: trunk/src/main/java/cc/kune/core/client/actions/xml/XMLActionsParser.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/main/java/cc/kune/core/client/actions/xml/XMLGuiActionDescriptor.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/xml/XMLGuiActionDescriptor.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/actions/xml/XMLGuiActionDescriptor.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -0,0 +1,71 @@
+package cc.kune.core.client.actions.xml;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.calclab.emite.core.client.packet.DelegatedPacket;
+import com.calclab.emite.core.client.packet.IPacket;
+
+public class XMLGuiActionDescriptor extends DelegatedPacket {
+
+ private XMLRol rol;
+
+ private List<XMLTypeId> typeIds;
+
+ public XMLGuiActionDescriptor(final IPacket xml) {
+ super(xml);
+ }
+
+ public String getDescName() {
+ return getFirstChild("name").getText();
+ }
+
+ public String getDescription() {
+ return getFirstChild("description").getText();
+ }
+
+ public String getExtensionName() {
+ return getFirstChild("extensionName").getText();
+ }
+
+ public String getNewContentTextIntro() {
+ return getFirstChild("new-content-textintro").getText();
+ }
+
+ public String getNewContentTitle() {
+ return getFirstChild("new-content-title").getText();
+ }
+
+ public String getParticipants() {
+ return getFirstChild("participants").getText();
+ }
+
+ public String getPath() {
+ return getFirstChild("path").getText();
+ }
+
+ public XMLRol getRol() {
+ if (rol == null) {
+ rol = new XMLRol(getFirstChild("rol"));
+ }
+ return rol;
+ }
+
+ public String getType() {
+ return getFirstChild("type").getText();
+ }
+
+ public List<XMLTypeId> getTypeIds() {
+ if (typeIds == null) {
+ typeIds = new ArrayList<XMLTypeId>();
+ for (final IPacket p : getFirstChild("typeIds").getChildren()) {
+ typeIds.add(new XMLTypeId(p));
+ }
+ }
+ return typeIds;
+ }
+
+ public boolean isEnabled() {
+ return Boolean.valueOf(getFirstChild("enabled").getText());
+ }
+}
Property changes on: trunk/src/main/java/cc/kune/core/client/actions/xml/XMLGuiActionDescriptor.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/main/java/cc/kune/core/client/actions/xml/XMLKuneClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/xml/XMLKuneClientActions.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/actions/xml/XMLKuneClientActions.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -0,0 +1,41 @@
+package cc.kune.core.client.actions.xml;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.calclab.emite.core.client.packet.DelegatedPacket;
+import com.calclab.emite.core.client.packet.IPacket;
+import com.calclab.emite.core.client.services.Services;
+
+public class XMLKuneClientActions extends DelegatedPacket {
+
+ private Map<String, XMLWaveExtension> extensions;
+ private List<XMLGuiActionDescriptor> guiActionDescriptors;
+
+ public XMLKuneClientActions(final Services services, final String xmlS) {
+ super(services.toXML(xmlS));
+ }
+
+ public Map<String, XMLWaveExtension> getExtensions() {
+ if (extensions == null) {
+ extensions = new HashMap<String, XMLWaveExtension>();
+ for (final IPacket x : getFirstChild("waveExtensions").getChildren()) {
+ final XMLWaveExtension extension = new XMLWaveExtension(x);
+ extensions.put(extension.getExtName(), extension);
+ }
+ }
+ return extensions;
+ }
+
+ public List<XMLGuiActionDescriptor> getGuiActionDescriptors() {
+ if (guiActionDescriptors == null) {
+ guiActionDescriptors = new ArrayList<XMLGuiActionDescriptor>();
+ for (final IPacket x : getFirstChild("guiActionDescriptors").getChildren()) {
+ guiActionDescriptors.add(new XMLGuiActionDescriptor(x));
+ }
+ }
+ return guiActionDescriptors;
+ }
+}
Property changes on: trunk/src/main/java/cc/kune/core/client/actions/xml/XMLKuneClientActions.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/main/java/cc/kune/core/client/actions/xml/XMLRol.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/xml/XMLRol.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/actions/xml/XMLRol.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -0,0 +1,21 @@
+package cc.kune.core.client.actions.xml;
+
+import cc.kune.core.shared.dto.AccessRolDTO;
+
+import com.calclab.emite.core.client.packet.DelegatedPacket;
+import com.calclab.emite.core.client.packet.IPacket;
+
+public class XMLRol extends DelegatedPacket {
+
+ public XMLRol(final IPacket delegate) {
+ super(delegate);
+ }
+
+ public AccessRolDTO getRolRequired() {
+ return AccessRolDTO.valueOf(getFirstChild("rolRequired").getText());
+ }
+
+ public boolean isAuthNeed() {
+ return Boolean.valueOf(getFirstChild("authNeed").getText());
+ }
+}
Property changes on: trunk/src/main/java/cc/kune/core/client/actions/xml/XMLRol.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/main/java/cc/kune/core/client/actions/xml/XMLTypeId.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/xml/XMLTypeId.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/actions/xml/XMLTypeId.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -0,0 +1,20 @@
+package cc.kune.core.client.actions.xml;
+
+import com.calclab.emite.core.client.packet.DelegatedPacket;
+import com.calclab.emite.core.client.packet.IPacket;
+
+public class XMLTypeId extends DelegatedPacket {
+
+ public XMLTypeId(final IPacket delegate) {
+ super(delegate);
+ }
+
+ public String getDestTypeId() {
+ return getAttribute("destTypeId");
+ }
+
+ public String getOrigTypeId() {
+ return getAttribute("origTypeId");
+ }
+
+}
Property changes on: trunk/src/main/java/cc/kune/core/client/actions/xml/XMLTypeId.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/main/java/cc/kune/core/client/actions/xml/XMLWaveExtension.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/xml/XMLWaveExtension.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/actions/xml/XMLWaveExtension.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -0,0 +1,32 @@
+package cc.kune.core.client.actions.xml;
+
+import com.calclab.emite.core.client.packet.DelegatedPacket;
+import com.calclab.emite.core.client.packet.IPacket;
+
+public class XMLWaveExtension extends DelegatedPacket {
+
+ public XMLWaveExtension(final IPacket xml) {
+ super(xml);
+ }
+
+ public String getExtName() {
+ return getFirstChild("name").getText();
+ }
+
+ public String getGadgetUrl() {
+ return getFirstChild("gadgetUrl").getText();
+ }
+
+ public String getIconCss() {
+ return getFirstChild("iconCss").getText();
+ }
+
+ public String getIconUrl() {
+ return getFirstChild("iconUrl").getText();
+ }
+
+ public String getInstallerUrl() {
+ return getFirstChild("installerUrl").getText();
+ }
+
+}
Property changes on: trunk/src/main/java/cc/kune/core/client/actions/xml/XMLWaveExtension.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java 2011-06-25 02:06:47 UTC (rev 1418)
+++ trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -46,6 +46,9 @@
StateContainerDTO addFolder(String hash, StateToken parentToken, String typeId, String title)
throws DefaultException;
+ StateContentDTO addGadget(String userHash, StateToken currentStateToken, String gadgetName,
+ String typeId, String title, String body);
+
void addParticipant(String userHash, StateToken token, String participant) throws DefaultException;
StateContainerDTO addRoom(String user, StateToken parentToken, String name) throws DefaultException;
@@ -80,5 +83,4 @@
StateAbstractDTO setStatusAsAdmin(String userHash, StateToken stateToken, ContentStatus status);
TagCloudResult setTags(String userHash, StateToken token, String tags) throws DefaultException;
-
}
Modified: trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceAsync.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceAsync.java 2011-06-25 02:06:47 UTC (rev 1418)
+++ trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceAsync.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -45,6 +45,9 @@
void addFolder(String hash, StateToken parentToken, String title, String typeId,
AsyncCallback<StateContainerDTO> callback);
+ void addGadget(String userHash, StateToken currentStateToken, String gadgetName, String typeId,
+ String title, String body, AsyncCallback<StateContentDTO> asyncCallback);
+
void addParticipant(String userHash, StateToken token, String authorShortName,
AsyncCallback<Void> asyncCallback) throws DefaultException;
Modified: trunk/src/main/java/cc/kune/core/public/ws.css
===================================================================
--- trunk/src/main/java/cc/kune/core/public/ws.css 2011-06-25 02:06:47 UTC (rev 1418)
+++ trunk/src/main/java/cc/kune/core/public/ws.css 2011-06-26 03:26:13 UTC (rev 1419)
@@ -1,5 +1,4 @@
-CHARSET "UTF-8 ";
-body {
+CHARSET "UTF-8 "; body {
background-color: transparent;
color: black;
font-family: 'Ubuntu', Arial;
@@ -271,14 +270,16 @@
}
-.gwt-SplitLayoutPanel .gwt-SplitLayoutPanel-HDragger {
+.gwt-SplitLayoutPanel .gwt-SplitLayoutPanel-HDragger,.gwt-SplitLayoutPanel-HDragger
+ {
background-color: transparent;
background: url("images/spliter-top.png") no-repeat scroll center bottom
transparent;
cursor: col-resize;
}
-.gwt-SplitLayoutPanel .gwt-SplitLayoutPanel-VDragger {
+.gwt-SplitLayoutPanel .gwt-SplitLayoutPanel-VDragger,.gwt-SplitLayoutPanel-VDragger
+ {
background-color: white;
background: none;
cursor: row-resize;
@@ -949,9 +950,11 @@
}
.k-sn-2nd-spanel {
+
}
.k-sn-3rd-panel {
+
}
.k-sn-adminsscroll,.k-sn-collabsscroll,.k-sn-pendingsscroll {
@@ -1127,6 +1130,7 @@
}
.k-tool-panel {
+
}
.k-tool-item {
@@ -1136,6 +1140,7 @@
}
.k-tool-item-focus {
+
}
.k-tool-item-nofocus {
@@ -1143,9 +1148,11 @@
}
.k-tool-item-selected {
+
}
.k-tool-item-notselected {
+
}
.k-def-docbtn span {
@@ -1194,7 +1201,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;
Modified: trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java 2011-06-25 02:06:47 UTC (rev 1418)
+++ trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -46,6 +46,7 @@
import cc.kune.core.server.content.ContentManagerDefault;
import cc.kune.core.server.content.CreationService;
import cc.kune.core.server.content.CreationServiceDefault;
+import cc.kune.core.server.content.XMLActionReader;
import cc.kune.core.server.i18n.I18nTranslationServiceDefault;
import cc.kune.core.server.manager.ExtMediaDescripManager;
import cc.kune.core.server.manager.FileManager;
@@ -151,6 +152,7 @@
bind(StateService.class).to(StateServiceDefault.class);
bind(I18nTranslationService.class).to(I18nTranslationServiceDefault.class);
bind(SessionService.class).to(SessionServiceDefault.class);
+ bind(XMLActionReader.class);
}
@Override
Modified: trunk/src/main/java/cc/kune/core/server/content/CreationService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/CreationService.java 2011-06-25 02:06:47 UTC (rev 1418)
+++ trunk/src/main/java/cc/kune/core/server/content/CreationService.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -19,7 +19,6 @@
*/
package cc.kune.core.server.content;
-
import cc.kune.domain.Container;
import cc.kune.domain.Content;
import cc.kune.domain.Group;
@@ -28,10 +27,14 @@
public interface CreationService {
- Content createContent(String title, String body, User user, Container container, String typeId);
+ Content createContent(String title, String body, User user, Container container, String typeId);
- Container createFolder(Group group, Long parentFolderId, String name, I18nLanguage language, String contentTypeId);
+ Container createFolder(Group group, Long parentFolderId, String name, I18nLanguage language,
+ String contentTypeId);
- Content saveContent(User editor, Content descriptor, String content);
+ Content createGadget(User user, Container container, String gadgetname, String typeId, String title,
+ String body);
+ Content saveContent(User editor, Content descriptor, String content);
+
}
Modified: trunk/src/main/java/cc/kune/core/server/content/CreationServiceDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/CreationServiceDefault.java 2011-06-25 02:06:47 UTC (rev 1418)
+++ trunk/src/main/java/cc/kune/core/server/content/CreationServiceDefault.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -19,8 +19,14 @@
*/
package cc.kune.core.server.content;
+import java.net.MalformedURLException;
import java.net.URL;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import cc.kune.core.client.actions.xml.XMLKuneClientActions;
+import cc.kune.core.client.actions.xml.XMLWaveExtension;
import cc.kune.core.server.tool.ServerTool;
import cc.kune.core.server.tool.ServerToolRegistry;
import cc.kune.core.server.tool.ServerWaveTool;
@@ -36,16 +42,21 @@
@Singleton
public class CreationServiceDefault implements CreationService {
+ private final XMLKuneClientActions actions;
private final ContainerManager containerManager;
private final ContentManager contentManager;
+ private final Log LOG = LogFactory.getLog(CreationServiceDefault.class);
+
private final ServerToolRegistry tools;
@Inject
public CreationServiceDefault(final ContainerManager containerManager,
- final ContentManager contentManager, final ServerToolRegistry toolRegistry) {
+ final ContentManager contentManager, final ServerToolRegistry toolRegistry,
+ final XMLActionReader xmlActionReader) {
this.containerManager = containerManager;
this.contentManager = contentManager;
this.tools = toolRegistry;
+ this.actions = xmlActionReader.getActions();
}
@Override
@@ -73,6 +84,27 @@
}
@Override
+ public Content createGadget(final User user, final Container container, final String gadgetname,
+ final String typeIdChild, final String title, final String body) {
+ final String toolName = container.getToolName();
+ final ServerTool tool = tools.get(toolName);
+ tool.checkTypesBeforeContentCreation(container.getTypeId(), typeIdChild);
+ final XMLWaveExtension extension = actions.getExtensions().get(gadgetname);
+ assert extension != null;
+ URL gadgetUrl = null;
+ final String urlS = extension.getGadgetUrl();
+ try {
+ gadgetUrl = new URL(urlS);
+ } catch (final MalformedURLException e) {
+ LOG.error("Parsing gadget URL: " + urlS, e);
+ }
+ final Content content = contentManager.createContent(title, body, user, container, typeIdChild,
+ gadgetUrl);
+ tool.onCreateContent(content, container);
+ return content;
+ }
+
+ @Override
public Content saveContent(final User editor, final Content content, final String body) {
return contentManager.save(editor, content, body);
}
Added: trunk/src/main/java/cc/kune/core/server/content/XMLActionReader.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/XMLActionReader.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/content/XMLActionReader.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -0,0 +1,40 @@
+package cc.kune.core.server.content;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.nio.MappedByteBuffer;
+import java.nio.channels.FileChannel;
+import java.nio.charset.Charset;
+
+import cc.kune.core.client.actions.xml.XMLActionsParser;
+import cc.kune.core.client.actions.xml.XMLKuneClientActions;
+
+import com.calclab.emite.xtesting.ServicesTester;
+import com.google.inject.Singleton;
+
+@Singleton
+public class XMLActionReader {
+
+ private XMLKuneClientActions actions;
+
+ public XMLActionReader() throws IOException {
+ final File xmlFile = new File("src/main/webapp/" + XMLActionsParser.ACTIONS_XML_LOCATION);
+
+ // Inspired in:
+ // http://stackoverflow.com/questions/326390/how-to-create-a-java-string-from-…
+ final FileInputStream stream = new FileInputStream(xmlFile);
+ try {
+ final FileChannel fc = stream.getChannel();
+ final MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());
+ final String xml = Charset.forName("UTF-8").decode(bb).toString();
+ actions = new XMLKuneClientActions(new ServicesTester(), xml);
+ } finally {
+ stream.close();
+ }
+ }
+
+ public XMLKuneClientActions getActions() {
+ return actions;
+ }
+}
Property changes on: trunk/src/main/java/cc/kune/core/server/content/XMLActionReader.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java 2011-06-25 02:06:47 UTC (rev 1418)
+++ trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -141,6 +141,21 @@
@Override
@Authenticated
+ @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = false)
+ @Transactional
+ public StateContentDTO addGadget(final String userHash, final StateToken parentToken,
+ final String gadgetname, final String typeId, final String title, final String body)
+ throws DefaultException {
+ final User user = getCurrentUser();
+ final Container container = accessService.accessToContainer(
+ ContentUtils.parseId(parentToken.getFolder()), user, AccessRol.Editor);
+ final Content addedContent = creationService.createGadget(user, container, gadgetname, typeId,
+ title, body);
+ return getState(user, addedContent);
+ }
+
+ @Override
+ @Authenticated
@Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false)
@Transactional
public void addParticipant(final String userHash, final StateToken token, final String participant)
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/AbstractNewMenu.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/AbstractNewMenu.java 2011-06-25 02:06:47 UTC (rev 1418)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/AbstractNewMenu.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -34,7 +34,7 @@
public AbstractNewMenu(final CoreResources res, final I18nTranslationService i18n,
final AccessRightsClientManager rightsManager) {
super();
- this.withIcon(res.arrowdownsitebar()).withStyles("k-button, k-btn, k-5corners, k-def-docbtn, k-fl").withText(
+ this.withIcon(res.addGreen()).withStyles("k-button, k-btn, k-5corners, k-def-docbtn, k-fl").withText(
"New");
rightsManager.onRightsChanged(true, new AccessRightsChangedHandler() {
Copied: trunk/src/main/webapp/others/kune-client-actions.xml (from rev 1418, trunk/src/main/webapp/others/kune-wave-extensions.xml)
===================================================================
--- trunk/src/main/webapp/others/kune-client-actions.xml (rev 0)
+++ trunk/src/main/webapp/others/kune-client-actions.xml 2011-06-26 03:26:13 UTC (rev 1419)
@@ -0,0 +1,215 @@
+<?xml version="1.0" ?>
+
+<kuneClientActions>
+
+ <!-- List of Wave extensions to use in Kune ===================== -->
+ <waveExtensions>
+
+ <extension>
+ <name>pollo</name>
+ <installerUrl>http://wavepollo.appspot.com/pollo.xml
+ </installerUrl>
+ <gadgetUrl>http://wavepollo.appspot.com/wavepollo/com.appspot.wavepollo.client.PolloWa…
+ </gadgetUrl>
+ <iconUrl>https://flinz-pollo.appspot.com/document_graph.png
+ </iconUrl>
+ <iconCss></iconCss>
+ </extension>
+
+ <extension>
+ <name>waffle</name>
+ <installerUrl>http://www.waffle.dk/install.xml
+ </installerUrl>
+ <gadgetUrl>http://www.waffle.dk/waffle.xml
+ </gadgetUrl>
+ <iconUrl>http://www.waffle.dk/waffleThumb.png
+ </iconUrl>
+ <iconCss></iconCss>
+ </extension>
+
+ <extension>
+ <name>massmob</name>
+ <installerUrl>http://mass-mob.appspot.com/massmob/massmob-extension.xml
+ </installerUrl>
+ <gadgetUrl>http://mass-mob.appspot.com/massmob/org.ourproject.massmob.client.MassmobGa…
+ </gadgetUrl>
+ <iconUrl>http://mass-mob.appspot.com/logo.png
+ </iconUrl>
+ <iconCss></iconCss>
+ </extension>
+
+ <extension>
+ <name>twitter-search</name>
+ <installerUrl>https://google-wave-resources.googlecode.com/svn/trunk/samples/extensions/g…
+ </installerUrl>
+ <gadgetUrl>http://google-wave-resources.googlecode.com/svn/trunk/samples/extensions/ga…
+ </gadgetUrl>
+ <iconUrl>http://google-wave-resources.googlecode.com/svn/trunk/samples/extensions/ga…
+ </iconUrl>
+ <iconCss></iconCss>
+ </extension>
+
+ <extension>
+ <name>wavetube</name>
+ <installerUrl>http://everybodywave.appspot.com/gadget/WaveTube/xt.xml
+ </installerUrl>
+ <gadgetUrl>http://everybodywave.appspot.com/gadget/WaveTube/main.xml
+ </gadgetUrl>
+ <iconUrl>http://everybodywave.appspot.com/gadget/WaveTube/thumb.png
+ </iconUrl>
+ <iconCss></iconCss>
+ </extension>
+
+ </waveExtensions>
+
+ <!-- Where and how to use the above extensions ================ -->
+
+ <guiActionDescriptors>
+
+ <guiActionDescriptor>
+ <type>wave-gadget</type>
+ <extensionName>massmob</extensionName>
+ <name>New meeting</name>
+ <path>Gadget»Calendar</path>
+ <description>Call and speed-up of events as meeting, smartmobs,
+ flashmobs, protest demonstrations, etc.</description>
+ <new-content-title>New meeting</new-content-title>
+ <new-content-textintro></new-content-textintro>
+ <enabled>true</enabled>
+ <typeIds>
+ <typeId origTypeId="docs.folder" destTypeId="docs.doc" />
+ <typeId origTypeId="docs.root" destTypeId="docs.doc" />
+ <typeId origTypeId="blogs.blog" destTypeId="blogs.post" />
+ </typeIds>
+ <rol>
+ <!-- Administrator, Editor, Viewer -->
+ <rolRequired>Editor</rolRequired>
+ <authNeed>true</authNeed>
+ </rol>
+ <!-- only for new waves: anyone, onlymembers, onlyadmins, ask (not
+ used yet) -->
+ <participants>ask</participants>
+ </guiActionDescriptor>
+
+ <guiActionDescriptor>
+ <type>wave-gadget</type>
+ <extensionName>pollo</extensionName>
+ <name>New poll</name>
+ <path>Gadget»Voting</path>
+ <description>Make some poll (allow single and multiple polls))
+ </description>
+ <new-content-title>New poll</new-content-title>
+ <new-content-textintro></new-content-textintro>
+ <enabled>true</enabled>
+ <typeIds>
+ <typeId origTypeId="docs.folder" destTypeId="docs.doc" />
+ <typeId origTypeId="docs.root" destTypeId="docs.doc" />
+ <typeId origTypeId="blogs.blog" destTypeId="blogs.post" />
+ </typeIds>
+ <rol>
+ <!-- Administrator, Editor, Viewer -->
+ <rolRequired>Editor</rolRequired>
+ <authNeed>true</authNeed>
+ </rol>
+ <!-- only for new waves: anyone, onlymembers, onlyadmins, ask (not
+ used yet) -->
+ <participants>ask</participants>
+ </guiActionDescriptor>
+
+ <guiActionDescriptor>
+ <type>wave-gadget</type>
+ <extensionName>waffle</extensionName>
+ <name>New meet coordination</name>
+ <path>Gadget»Calendar</path>
+ <description>Users are polled to determine the best time and date
+ to meet
+ </description>
+ <new-content-title>New meet coordination</new-content-title>
+ <new-content-textintro></new-content-textintro>
+ <enabled>true</enabled>
+ <typeIds>
+ <typeId origTypeId="docs.folder" destTypeId="docs.doc" />
+ <typeId origTypeId="docs.root" destTypeId="docs.doc" />
+ <typeId origTypeId="blogs.blog" destTypeId="blogs.post" />
+ </typeIds>
+ <rol>
+ <!-- Administrator, Editor, Viewer -->
+ <rolRequired>Editor</rolRequired>
+ <authNeed>true</authNeed>
+ </rol>
+ <!-- only for new waves: anyone, onlymembers, onlyadmins, ask (not
+ used yet) -->
+ <participants>ask</participants>
+ </guiActionDescriptor>
+
+ <guiActionDescriptor>
+ <type>wave-gadget</type>
+ <extensionName>twitter-search</extensionName>
+ <name>New twitter search</name>
+ <path>Gadget»News</path>
+ <description>Shows results from Twitter for a given search term.
+ Participants can edit to specify new term.</description>
+ <new-content-title>Twitter search</new-content-title>
+ <new-content-textintro></new-content-textintro>
+ <enabled>true</enabled>
+ <typeIds>
+ <typeId origTypeId="docs.folder" destTypeId="docs.doc" />
+ <typeId origTypeId="docs.root" destTypeId="docs.doc" />
+ <typeId origTypeId="blogs.blog" destTypeId="blogs.post" />
+ </typeIds>
+ <rol>
+ <!-- Administrator, Editor, Viewer -->
+ <rolRequired>Editor</rolRequired>
+ <authNeed>true</authNeed>
+ </rol>
+ <!-- only for new waves: anyone, onlymembers, onlyadmins, ask (not
+ used yet) -->
+ <participants>ask</participants>
+ </guiActionDescriptor>
+
+ <guiActionDescriptor>
+ <type>wave-gadget</type>
+ <extensionName>wavetube</extensionName>
+ <name>New Youtube video</name>
+ <path>Gadget»Media</path>
+ <description>Adds a YouTube player that displays the list of
+ viewers in real time</description>
+ <new-content-title>New Youtube video</new-content-title>
+ <new-content-textintro></new-content-textintro>
+ <enabled>true</enabled>
+ <typeIds>
+ <typeId origTypeId="docs.folder" destTypeId="docs.doc" />
+ <typeId origTypeId="docs.root" destTypeId="docs.doc" />
+ <typeId origTypeId="blogs.blog" destTypeId="blogs.post" />
+ </typeIds>
+ <rol>
+ <!-- Administrator, Editor, Viewer -->
+ <rolRequired>Editor</rolRequired>
+ <authNeed>true</authNeed>
+ </rol>
+ <!-- only for new waves: anyone, onlymembers, onlyadmins, ask (not
+ used yet) -->
+ <participants>ask</participants>
+ </guiActionDescriptor>
+
+ <guiActionDescriptor>
+ <type>wave-gadget</type>
+ <extensionName>massmob</extensionName>
+ <name>Add a meeting</name>
+ <path>Gadget»Calendar</path>
+ <description>Call and speed-up of events as meeting, smartmobs,
+ flashmobs, protest demonstrations, etc.</description>
+ <enabled>false</enabled>
+ <typeIds>
+ <typeId origTypeId="docs.folder" destTypeId="docs.doc" />
+ </typeIds>
+ <rol>
+ <!-- Administrator, Editor, Viewer -->
+ <rolRequired>Editor</rolRequired>
+ <authNeed>true</authNeed>
+ </rol>
+ </guiActionDescriptor>
+
+ </guiActionDescriptors>
+
+</kuneClientActions>
\ No newline at end of file
Property changes on: trunk/src/main/webapp/others/kune-client-actions.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted: trunk/src/main/webapp/others/kune-wave-extensions.xml
===================================================================
--- trunk/src/main/webapp/others/kune-wave-extensions.xml 2011-06-25 02:06:47 UTC (rev 1418)
+++ trunk/src/main/webapp/others/kune-wave-extensions.xml 2011-06-26 03:26:13 UTC (rev 1419)
@@ -1,223 +0,0 @@
-<?xml version="1.0" ?>
-
-<kuneWaveExtensions>
-
- <!-- List of Wave extensions to use in Kune ===================== -->
-
- <extensions>
-
- <extension>
- <name>pollo</name>
- <installerUrl>http://wavepollo.appspot.com/pollo.xml
- </installerUrl>
- <gadgetUrl>http://wavepollo.appspot.com/wavepollo/com.appspot.wavepollo.client.PolloWa…
- </gadgetUrl>
- <iconUrl>https://flinz-pollo.appspot.com/document_graph.png
- </iconUrl>
- <iconCss></iconCss>
- </extension>
-
- <extension>
- <name>waffle</name>
- <installerUrl>http://www.waffle.dk/install.xml
- </installerUrl>
- <gadgetUrl>http://www.waffle.dk/waffle.xml
- </gadgetUrl>
- <iconUrl>http://www.waffle.dk/waffleThumb.png
- </iconUrl>
- <iconCss></iconCss>
- </extension>
-
- <extension>
- <name>massmob</name>
- <installerUrl>http://mass-mob.appspot.com/massmob/massmob-extension.xml
- </installerUrl>
- <gadgetUrl>http://mass-mob.appspot.com/massmob/org.ourproject.massmob.client.MassmobGa…
- </gadgetUrl>
- <iconUrl>http://mass-mob.appspot.com/logo.png</iconUrl>
- <iconCss></iconCss>
- </extension>
-
- <extension>
- <name>twitter-search</name>
- <installerUrl>https://google-wave-resources.googlecode.com/svn/trunk/samples/extensions/g…
- </installerUrl>
- <gadgetUrl>http://google-wave-resources.googlecode.com/svn/trunk/samples/extensions/ga…
- </gadgetUrl>
- <iconUrl>http://google-wave-resources.googlecode.com/svn/trunk/samples/extensions/ga…
- </iconUrl>
- <iconCss></iconCss>
- </extension>
-
- <extension>
- <name>wavetube</name>
- <installerUrl>http://everybodywave.appspot.com/gadget/WaveTube/xt.xml
- </installerUrl>
- <gadgetUrl>http://everybodywave.appspot.com/gadget/WaveTube/main.xml
- </gadgetUrl>
- <iconUrl>http://everybodywave.appspot.com/gadget/WaveTube/thumb.png
- </iconUrl>
- <iconCss></iconCss>
- </extension>
-
- </extensions>
-
- <!-- Where and how to use the above extensions ================ -->
-
- <guiActionDescriptors>
-
- <guiActionDescriptor>
- <type>wave-gadget</type>
- <extensionName>massmob</extensionName>
- <name>New meeting</name>
- <parent>Gadget»Calendar</parent>
- <description>Call and speed-up of events as meeting, smartmobs,
- flashmobs, protest demonstrations, etc.</description>
- <enabled>true</enabled>
- <typeIds>
- <typeId>docs.folder</typeId>
- <typeId>docs.root</typeId>
- <typeId>blogs.blog</typeId>
- </typeIds>
- <name></name>
- <location>
- <rol>
- <!-- Administrator, Editor, Viewer -->
- <rolRequired>Editor</rolRequired>
- <authNeed>true</authNeed>
- </rol>
- </location>
- <!-- only for new waves: anyone, onlymembers, onlyadmins, ask (not
- used yet) -->
- <participants>ask</participants>
- </guiActionDescriptor>
-
- <guiActionDescriptor>
- <type>wave-gadget</type>
- <extensionName>pollo</extensionName>
- <name>New poll</name>
- <parent>Gadget»Voting</parent>
- <description>Make some poll (allow single and multiple polls))
- </description>
- <enabled>true</enabled>
- <typeIds>
- <typeId>docs.folder</typeId>
- <typeId>docs.root</typeId>
- <typeId>blogs.blog</typeId>
- </typeIds>
- <name></name>
- <location>
- <rol>
- <!-- Administrator, Editor, Viewer -->
- <rolRequired>Editor</rolRequired>
- <authNeed>true</authNeed>
- </rol>
- </location>
- <!-- only for new waves: anyone, onlymembers, onlyadmins, ask (not
- used yet) -->
- <participants>ask</participants>
- </guiActionDescriptor>
-
- <guiActionDescriptor>
- <type>wave-gadget</type>
- <extensionName>waffle</extensionName>
- <name>New meet coordination</name>
- <parent>Gadget»Calendar</parent>
- <description>Users are polled to determine the best time and date
- to meet
- </description>
- <enabled>true</enabled>
- <typeIds>
- <typeId>docs.folder</typeId>
- <typeId>docs.root</typeId>
- <typeId>blogs.blog</typeId>
- </typeIds>
- <name></name>
- <location>
- <rol>
- <!-- Administrator, Editor, Viewer -->
- <rolRequired>Editor</rolRequired>
- <authNeed>true</authNeed>
- </rol>
- </location>
- <!-- only for new waves: anyone, onlymembers, onlyadmins, ask (not
- used yet) -->
- <participants>ask</participants>
- </guiActionDescriptor>
-
- <guiActionDescriptor>
- <type>wave-gadget</type>
- <extensionName>twitter-search</extensionName>
- <name>New twitter search</name>
- <parent>Gadget»News</parent>
- <description>Shows results from Twitter for a given search term.
- Participants can edit to specify new term.</description>
- <enabled>true</enabled>
- <typeIds>
- <typeId>docs.folder</typeId>
- <typeId>docs.root</typeId>
- <typeId>blogs.blog</typeId>
- </typeIds>
- <name></name>
- <location>
- <rol>
- <!-- Administrator, Editor, Viewer -->
- <rolRequired>Editor</rolRequired>
- <authNeed>true</authNeed>
- </rol>
- </location>
- <!-- only for new waves: anyone, onlymembers, onlyadmins, ask (not
- used yet) -->
- <participants>ask</participants>
- </guiActionDescriptor>
-
- <guiActionDescriptor>
- <type>wave-gadget</type>
- <extensionName>wavetube</extensionName>
- <name>New youtube video</name>
- <parent>Gadget»Media</parent>
- <description>Adds a YouTube player that displays the list of viewers in real time</description>
- <enabled>true</enabled>
- <typeIds>
- <typeId>docs.folder</typeId>
- <typeId>docs.root</typeId>
- <typeId>blogs.blog</typeId>
- </typeIds>
- <name></name>
- <location>
- <rol>
- <!-- Administrator, Editor, Viewer -->
- <rolRequired>Editor</rolRequired>
- <authNeed>true</authNeed>
- </rol>
- </location>
- <!-- only for new waves: anyone, onlymembers, onlyadmins, ask (not
- used yet) -->
- <participants>ask</participants>
- </guiActionDescriptor>
-
-
- <guiActionDescriptor>
- <type>wave-gadget</type>
- <extensionName>massmob</extensionName>
- <name>Add a meeting</name>
- <parent>Gadget»Calendar</parent>
- <description>Call and speed-up of events as meeting, smartmobs,
- flashmobs, protest demonstrations, etc.</description>
- <enabled>false</enabled>
- <typeIds>
- <typeId>docs.doc</typeId>
- </typeIds>
- <name></name>
- <location>
- <rol>
- <!-- Administrator, Editor, Viewer -->
- <rolRequired>Editor</rolRequired>
- <authNeed>true</authNeed>
- </rol>
- </location>
- </guiActionDescriptor>
-
- </guiActionDescriptors>
-
-</kuneWaveExtensions>
\ No newline at end of file
Added: trunk/src/test/java/cc/kune/core/client/actions/xml/XMLKuneClientActionsTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/client/actions/xml/XMLKuneClientActionsTest.java (rev 0)
+++ trunk/src/test/java/cc/kune/core/client/actions/xml/XMLKuneClientActionsTest.java 2011-06-26 03:26:13 UTC (rev 1419)
@@ -0,0 +1,57 @@
+package cc.kune.core.client.actions.xml;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import cc.kune.core.server.content.XMLActionReader;
+
+public class XMLKuneClientActionsTest {
+
+ private XMLKuneClientActions actions;
+
+ @Before
+ public void before() throws IOException {
+ actions = new XMLActionReader().getActions();
+ }
+
+ @Test
+ public void testExtensions() {
+ final Map<String, XMLWaveExtension> extensions = actions.getExtensions();
+ assertTrue(extensions.size() > 0);
+ for (final XMLWaveExtension extension : extensions.values()) {
+ assertTrue(extension.getExtName().length() > 0);
+ assertTrue(extension.getGadgetUrl().length() > 0);
+ assertTrue(extension.getIconUrl().length() > 0 || extension.getIconCss().length() > 0);
+ }
+ }
+
+ @Test
+ public void testGuiActions() {
+ final List<XMLGuiActionDescriptor> guiActionDescriptors = actions.getGuiActionDescriptors();
+ assertTrue(guiActionDescriptors.size() > 0);
+ for (final XMLGuiActionDescriptor descrip : guiActionDescriptors) {
+ assertTrue(descrip.getDescName().length() > 0);
+ assertTrue(descrip.getType().length() > 0);
+ assertTrue(descrip.getExtensionName().length() > 0);
+ assertTrue(descrip.getPath().length() >= 0);
+ assertTrue(descrip.isEnabled() || !descrip.isEnabled());
+ final List<XMLTypeId> typeIds = descrip.getTypeIds();
+ assertTrue(typeIds.size() > 0);
+ for (final XMLTypeId typeId : typeIds) {
+ assertTrue(typeId.getOrigTypeId().length() > 0);
+ assertTrue(typeId.getDestTypeId().length() > 0);
+ }
+ final XMLRol rol = descrip.getRol();
+ assertNotNull(rol);
+ assertTrue(rol.isAuthNeed() || !rol.isAuthNeed());
+ assertTrue(rol.getRolRequired() != null);
+ }
+ }
+}
Property changes on: trunk/src/test/java/cc/kune/core/client/actions/xml/XMLKuneClientActionsTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
1
0
Author: vjrj_
Date: 2011-06-25 04:06:47 +0200 (Sat, 25 Jun 2011)
New Revision: 1418
Modified:
trunk/src/main/webapp/others/kune-wave-extensions.xml
Log:
More useful extensions
Modified: trunk/src/main/webapp/others/kune-wave-extensions.xml
===================================================================
--- trunk/src/main/webapp/others/kune-wave-extensions.xml 2011-06-24 23:04:18 UTC (rev 1417)
+++ trunk/src/main/webapp/others/kune-wave-extensions.xml 2011-06-25 02:06:47 UTC (rev 1418)
@@ -18,6 +18,17 @@
</extension>
<extension>
+ <name>waffle</name>
+ <installerUrl>http://www.waffle.dk/install.xml
+ </installerUrl>
+ <gadgetUrl>http://www.waffle.dk/waffle.xml
+ </gadgetUrl>
+ <iconUrl>http://www.waffle.dk/waffleThumb.png
+ </iconUrl>
+ <iconCss></iconCss>
+ </extension>
+
+ <extension>
<name>massmob</name>
<installerUrl>http://mass-mob.appspot.com/massmob/massmob-extension.xml
</installerUrl>
@@ -27,6 +38,28 @@
<iconCss></iconCss>
</extension>
+ <extension>
+ <name>twitter-search</name>
+ <installerUrl>https://google-wave-resources.googlecode.com/svn/trunk/samples/extensions/g…
+ </installerUrl>
+ <gadgetUrl>http://google-wave-resources.googlecode.com/svn/trunk/samples/extensions/ga…
+ </gadgetUrl>
+ <iconUrl>http://google-wave-resources.googlecode.com/svn/trunk/samples/extensions/ga…
+ </iconUrl>
+ <iconCss></iconCss>
+ </extension>
+
+ <extension>
+ <name>wavetube</name>
+ <installerUrl>http://everybodywave.appspot.com/gadget/WaveTube/xt.xml
+ </installerUrl>
+ <gadgetUrl>http://everybodywave.appspot.com/gadget/WaveTube/main.xml
+ </gadgetUrl>
+ <iconUrl>http://everybodywave.appspot.com/gadget/WaveTube/thumb.png
+ </iconUrl>
+ <iconCss></iconCss>
+ </extension>
+
</extensions>
<!-- Where and how to use the above extensions ================ -->
@@ -54,7 +87,8 @@
<authNeed>true</authNeed>
</rol>
</location>
- <!-- only for new waves: anyone, onlymembers, onlyadmins, ask -->
+ <!-- only for new waves: anyone, onlymembers, onlyadmins, ask (not
+ used yet) -->
<participants>ask</participants>
</guiActionDescriptor>
@@ -79,12 +113,92 @@
<authNeed>true</authNeed>
</rol>
</location>
- <!-- only for new waves: anyone, onlymembers, onlyadmins, ask -->
+ <!-- only for new waves: anyone, onlymembers, onlyadmins, ask (not
+ used yet) -->
<participants>ask</participants>
</guiActionDescriptor>
<guiActionDescriptor>
<type>wave-gadget</type>
+ <extensionName>waffle</extensionName>
+ <name>New meet coordination</name>
+ <parent>Gadget»Calendar</parent>
+ <description>Users are polled to determine the best time and date
+ to meet
+ </description>
+ <enabled>true</enabled>
+ <typeIds>
+ <typeId>docs.folder</typeId>
+ <typeId>docs.root</typeId>
+ <typeId>blogs.blog</typeId>
+ </typeIds>
+ <name></name>
+ <location>
+ <rol>
+ <!-- Administrator, Editor, Viewer -->
+ <rolRequired>Editor</rolRequired>
+ <authNeed>true</authNeed>
+ </rol>
+ </location>
+ <!-- only for new waves: anyone, onlymembers, onlyadmins, ask (not
+ used yet) -->
+ <participants>ask</participants>
+ </guiActionDescriptor>
+
+ <guiActionDescriptor>
+ <type>wave-gadget</type>
+ <extensionName>twitter-search</extensionName>
+ <name>New twitter search</name>
+ <parent>Gadget»News</parent>
+ <description>Shows results from Twitter for a given search term.
+ Participants can edit to specify new term.</description>
+ <enabled>true</enabled>
+ <typeIds>
+ <typeId>docs.folder</typeId>
+ <typeId>docs.root</typeId>
+ <typeId>blogs.blog</typeId>
+ </typeIds>
+ <name></name>
+ <location>
+ <rol>
+ <!-- Administrator, Editor, Viewer -->
+ <rolRequired>Editor</rolRequired>
+ <authNeed>true</authNeed>
+ </rol>
+ </location>
+ <!-- only for new waves: anyone, onlymembers, onlyadmins, ask (not
+ used yet) -->
+ <participants>ask</participants>
+ </guiActionDescriptor>
+
+ <guiActionDescriptor>
+ <type>wave-gadget</type>
+ <extensionName>wavetube</extensionName>
+ <name>New youtube video</name>
+ <parent>Gadget»Media</parent>
+ <description>Adds a YouTube player that displays the list of viewers in real time</description>
+ <enabled>true</enabled>
+ <typeIds>
+ <typeId>docs.folder</typeId>
+ <typeId>docs.root</typeId>
+ <typeId>blogs.blog</typeId>
+ </typeIds>
+ <name></name>
+ <location>
+ <rol>
+ <!-- Administrator, Editor, Viewer -->
+ <rolRequired>Editor</rolRequired>
+ <authNeed>true</authNeed>
+ </rol>
+ </location>
+ <!-- only for new waves: anyone, onlymembers, onlyadmins, ask (not
+ used yet) -->
+ <participants>ask</participants>
+ </guiActionDescriptor>
+
+
+ <guiActionDescriptor>
+ <type>wave-gadget</type>
<extensionName>massmob</extensionName>
<name>Add a meeting</name>
<parent>Gadget»Calendar</parent>
1
0
Author: vjrj_
Date: 2011-06-25 01:04:18 +0200 (Sat, 25 Jun 2011)
New Revision: 1417
Added:
trunk/src/main/java/cc/kune/chat/client/actions/StartAssemblyWithMembers.java
Modified:
trunk/TODO
trunk/src/main/java/cc/kune/chat/client/ChatParts.java
trunk/src/main/java/cc/kune/chat/client/actions/NewRoomBtn.java
trunk/src/main/java/cc/kune/chat/client/actions/OpenGroupPublicChatRoomAction.java
trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomBtn.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuGui.java
trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/SubMenuDescriptor.java
trunk/src/main/java/cc/kune/core/client/actions/ActionRegistryByType.java
trunk/src/main/java/cc/kune/core/client/actions/RolActionAutoUpdated.java
trunk/src/main/java/cc/kune/core/client/actions/XMLActionsParser.java
trunk/src/main/java/cc/kune/core/client/sn/GroupSNPresenter.java
trunk/src/main/java/cc/kune/core/client/sn/UserSNPresenter.java
trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupSNConfActions.java
trunk/src/main/java/cc/kune/core/client/sn/actions/registry/UserSNConfActions.java
trunk/src/main/java/cc/kune/gspace/client/actions/AbstractNewMenu.java
trunk/src/main/java/cc/kune/gspace/client/actions/NewContainerBtn.java
trunk/src/main/java/cc/kune/gspace/client/actions/NewContentBtn.java
trunk/src/main/java/cc/kune/gspace/client/actions/NewMenuProvider.java
trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerPresenter.java
trunk/src/main/webapp/others/kune-wave-extensions.xml
Log:
Gadgets hierarchy. Chat new actions (Assembly in chatroom, add as buddie menuitem)
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2011-06-24 16:50:59 UTC (rev 1416)
+++ trunk/TODO 2011-06-24 23:04:18 UTC (rev 1417)
@@ -371,6 +371,8 @@
** vjrj <v> IconHyperlink.java and IconLabel.java to gwt1.5
* MID-TERM
+** Menubar submenus problem
+https://groups.google.com/group/google-web-toolkit/browse_thread/thread/aa887d470ed609c/c76d622622e39a56?lnk=gst&q=menubar+left+#c76d622622e39a56
** Template system for new waves with legal free/open procedures
New
Templates
Modified: trunk/src/main/java/cc/kune/chat/client/ChatParts.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatParts.java 2011-06-24 16:50:59 UTC (rev 1416)
+++ trunk/src/main/java/cc/kune/chat/client/ChatParts.java 2011-06-24 23:04:18 UTC (rev 1417)
@@ -20,16 +20,22 @@
package cc.kune.chat.client;
import cc.kune.chat.client.actions.AddAsBuddieHeaderButton;
+import cc.kune.chat.client.actions.AddAsBuddieHeaderButton.AddAsBuddieAction;
import cc.kune.chat.client.actions.ChatClientActions;
import cc.kune.chat.client.actions.ChatSitebarActions;
import cc.kune.chat.client.actions.OpenGroupPublicChatRoomAction;
+import cc.kune.chat.client.actions.StartAssemblyWithMembers;
import cc.kune.chat.client.actions.StartChatWithMemberAction;
import cc.kune.chat.client.actions.StartChatWithThisBuddieAction;
import cc.kune.chat.client.actions.StartChatWithUserAction;
import cc.kune.chat.shared.ChatConstants;
+import cc.kune.common.client.actions.AbstractAction;
+import cc.kune.common.client.actions.PropertyChangeEvent;
+import cc.kune.common.client.actions.PropertyChangeListener;
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.core.client.init.AppStartEvent;
import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
+import cc.kune.core.client.sn.GroupSNPresenter;
import cc.kune.core.client.sn.actions.conditions.IsCurrentStateAGroupCondition;
import cc.kune.core.client.sn.actions.conditions.IsCurrentStateAdministrableCondition;
import cc.kune.core.client.sn.actions.conditions.IsCurrentStateEditableCondition;
@@ -58,15 +64,16 @@
final Provider<GroupSNAdminsMenuItemsRegistry> snAdminsRegistry,
final Provider<GroupSNCollabsMenuItemsRegistry> snCollabsItemsRegistry,
final Provider<GroupSNPendingsMenuItemsRegistry> snPendingItemsRegistry,
- final Provider<GroupSNConfActions> groupConfActions,
+ final Provider<GroupSNConfActions> groupConfActions, final Provider<GroupSNPresenter> groupSN,
final Provider<UserSNMenuItemsRegistry> userItemsRegistry, final IsNotMeCondition isNotMe,
final IsCurrentStateAdministrableCondition isAdministrableCondition,
final IsCurrentStateEditableCondition isEditableCondition,
final IsCurrentStateAGroupCondition isGroupCondition, final IsPersonCondition isPersonCondition,
+ final Provider<AddAsBuddieAction> addAsBuddie,
final Provider<StartChatWithMemberAction> startChatWithMemberAction,
final IsLoggedCondition isLogged, final Provider<StartChatWithUserAction> startChatWithUserAction,
final Provider<StartChatWithThisBuddieAction> startChatWithBuddieAction,
- final ChatClientActions chatActions,
+ final ChatClientActions chatActions, final Provider<StartAssemblyWithMembers> startAssembly,
final Provider<OpenGroupPublicChatRoomAction> openGroupRoomAction,
// final Provider<OpenGroupPublicChatRoomButton> openGroupRoom,
final ContentViewerSelector viewerSelector, final FolderViewerPresenter folderViewer) {
@@ -96,35 +103,47 @@
return item;
}
};
- final Provider<MenuItemDescriptor> startChatWithUserItem = new Provider<MenuItemDescriptor>() {
+ final Provider<MenuItemDescriptor> addAsBuddieItem = new Provider<MenuItemDescriptor>() {
@Override
public MenuItemDescriptor get() {
- final MenuItemDescriptor item = new MenuItemDescriptor(startChatWithUserAction.get());
+ final AddAsBuddieAction action = addAsBuddie.get();
+ final MenuItemDescriptor item = new MenuItemDescriptor(action);
item.add(isNotMe);
item.add(isLogged);
item.add(isPersonCondition);
+ /**
+ * FIXME Buggy & duplicate code with {@link AddAsBuddieHeaderButton}
+ */
+ action.addPropertyChangeListener(new PropertyChangeListener() {
+ @Override
+ public void propertyChange(final PropertyChangeEvent event) {
+ if (event.getPropertyName().equals(AbstractAction.ENABLED)) {
+ item.setVisible((Boolean) event.getNewValue());
+ }
+ }
+ });
return item;
}
};
- final Provider<MenuItemDescriptor> openChatAndInvite = new Provider<MenuItemDescriptor>() {
+ final Provider<MenuItemDescriptor> startChatWithUserItem = new Provider<MenuItemDescriptor>() {
@Override
public MenuItemDescriptor get() {
- final OpenGroupPublicChatRoomAction action = openGroupRoomAction.get();
- action.setInviteMembers(true);
- final MenuItemDescriptor item = new MenuItemDescriptor(action);
- item.withText(i18n.t("Open group's room with members")).withToolTip(
- i18n.t("Enter to this group public chat room and invite members"));
- item.setParent(GroupSNConfActions.OPTIONS_MENU);
- item.setPosition(0);
+ final MenuItemDescriptor item = new MenuItemDescriptor(startChatWithUserAction.get());
+ item.add(isNotMe);
+ item.add(isLogged);
+ item.add(isPersonCondition);
return item;
}
};
+
snAdminsRegistry.get().add(startChatWithMemberItem);
snCollabsItemsRegistry.get().add(startChatWithMemberItem);
snPendingItemsRegistry.get().add(startChatWithUserItem);
userItemsRegistry.get().add(startChatWithBuddieItem);
- groupConfActions.get().add(openChatAndInvite.get());
+ userItemsRegistry.get().add(addAsBuddieItem);
+ groupConfActions.get().add(startAssembly.get());
buddieButton.get();
+ groupSN.get().refreshActions();
// openGroupRoom.get();
}
});
Modified: trunk/src/main/java/cc/kune/chat/client/actions/NewRoomBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/NewRoomBtn.java 2011-06-24 16:50:59 UTC (rev 1416)
+++ trunk/src/main/java/cc/kune/chat/client/actions/NewRoomBtn.java 2011-06-24 23:04:18 UTC (rev 1417)
@@ -91,7 +91,7 @@
public NewRoomBtn(final I18nTranslationService i18n, final NewRoomAction action, final NavResources res) {
super(action);
this.withText(i18n.t("New room")).withToolTip(i18n.t("Create a new chat room")).withStyles(
- "k-def-docbtn, k-fr").withIcon(res.roomAdd());
+ "k-def-docbtn, k-fl").withIcon(res.roomAdd());
}
}
Modified: trunk/src/main/java/cc/kune/chat/client/actions/OpenGroupPublicChatRoomAction.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/OpenGroupPublicChatRoomAction.java 2011-06-24 16:50:59 UTC (rev 1416)
+++ trunk/src/main/java/cc/kune/chat/client/actions/OpenGroupPublicChatRoomAction.java 2011-06-24 23:04:18 UTC (rev 1417)
@@ -48,93 +48,96 @@
public class OpenGroupPublicChatRoomAction extends RolActionAutoUpdated {
- private final ChatClient chatClient;
- private final I18nTranslationService i18n;
- private boolean inviteMembers;
- private final RoomManager roomManager;
- private final Session session;
+ private final ChatClient chatClient;
+ private final I18nTranslationService i18n;
+ private boolean inviteMembers;
+ private final RoomManager roomManager;
+ private final Session session;
- @SuppressWarnings("deprecation")
- @Inject
- public OpenGroupPublicChatRoomAction(final Session session,
- final AccessRightsClientManager accessRightsClientManager, final ChatClient chatClient,
- final StateManager stateManager, final I18nTranslationService i18n, final ChatResources res) {
- super(stateManager, session, accessRightsClientManager, AccessRolDTO.Editor, true, false, true);
- this.session = session;
- this.chatClient = chatClient;
- this.i18n = i18n;
- roomManager = Suco.get(RoomManager.class);
- stateManager.onStateChanged(true, new StateChangedHandler() {
- @Override
- public void onStateChanged(final StateChangedEvent event) {
- setState(session.getCurrentState());
- }
- });
- putValue(Action.NAME, i18n.t("Group's public room"));
- putValue(Action.SHORT_DESCRIPTION, i18n.t("Enter to this group public chat room"));
- putValue(Action.SMALL_ICON, res.groupChat());
- setInviteMembersImpl(false);
- }
+ @SuppressWarnings("deprecation")
+ @Inject
+ public OpenGroupPublicChatRoomAction(final Session session,
+ final AccessRightsClientManager accessRightsClientManager, final ChatClient chatClient,
+ final StateManager stateManager, final I18nTranslationService i18n, final ChatResources res) {
+ super(stateManager, session, accessRightsClientManager, AccessRolDTO.Editor, true, false, true);
+ this.session = session;
+ this.chatClient = chatClient;
+ this.i18n = i18n;
+ roomManager = Suco.get(RoomManager.class);
+ stateManager.onStateChanged(true, new StateChangedHandler() {
+ @Override
+ public void onStateChanged(final StateChangedEvent event) {
+ // setState(session.getCurrentState());
+ }
+ });
+ putValue(Action.NAME, i18n.t("Group's public room"));
+ putValue(Action.SHORT_DESCRIPTION, i18n.t("Enter to this group public chat room"));
+ putValue(Action.SMALL_ICON, res.groupChat());
+ setInviteMembersImpl(false);
+ }
- @Override
- public void actionPerformed(final ActionEvent event) {
- final String currentGroupName = session.getCurrentGroupShortName();
- final Room room = chatClient.joinRoom(currentGroupName, session.getCurrentUser().getShortName());
- inviteMembers(room);
- chatClient.show();
- }
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ final String currentGroupName = session.getCurrentGroupShortName();
+ final Room room = chatClient.joinRoom(currentGroupName, session.getCurrentUser().getShortName());
+ inviteMembers(room);
+ chatClient.show();
+ }
- private void addGroup(final List<XmppURI> membersUris, final GroupDTO member) {
- membersUris.add(chatClient.uriFrom(member.getShortName()));
- }
+ private void addGroup(final List<XmppURI> membersUris, final GroupDTO member) {
+ membersUris.add(chatClient.uriFrom(member.getShortName()));
+ }
- private boolean currentGroupsIsAsPerson(final StateAbstractDTO state) {
- return state.getGroup().isPersonal();
- }
+ private boolean currentGroupsIsAsPerson(final StateAbstractDTO state) {
+ return state.getGroup().isPersonal();
+ }
- private void inviteMembers(final Room room) {
- if (inviteMembers) {
- room.addChatStateChangedHandler(true, new com.calclab.emite.core.client.events.StateChangedHandler() {
- @Override
- public void onStateChanged(final com.calclab.emite.core.client.events.StateChangedEvent event) {
- if (event.getState().equals(ChatStates.ready)) {
- // When ready we invite to the rest of members
- final SocialNetworkDTO groupMembers = session.getCurrentState().getGroupMembers();
- final List<XmppURI> membersUris = new ArrayList<XmppURI>();
- for (final GroupDTO member : groupMembers.getAccessLists().getAdmins().getList()) {
- addGroup(membersUris, member);
- }
- for (final GroupDTO member : groupMembers.getAccessLists().getEditors().getList()) {
- addGroup(membersUris, member);
- }
- for (final Occupant occupant : room.getOccupants()) {
- // Remove all member that are in the room
- membersUris.remove(occupant.getJID());
- }
- for (final XmppURI memberNotPresent : membersUris) {
- room.sendInvitationTo(memberNotPresent,
- i18n.t("Join us in [%s] public room!", room.getURI().getNode()));
- }
- }
+ private void inviteMembers(final Room room) {
+ if (inviteMembers) {
+ room.addChatStateChangedHandler(true,
+ new com.calclab.emite.core.client.events.StateChangedHandler() {
+ @Override
+ public void onStateChanged(final com.calclab.emite.core.client.events.StateChangedEvent event) {
+ if (event.getState().equals(ChatStates.ready)) {
+ // When ready we invite to the rest of members
+ final SocialNetworkDTO groupMembers = session.getCurrentState().getGroupMembers();
+ final List<XmppURI> membersUris = new ArrayList<XmppURI>();
+ for (final GroupDTO member : groupMembers.getAccessLists().getAdmins().getList()) {
+ addGroup(membersUris, member);
}
- });
- }
+ for (final GroupDTO member : groupMembers.getAccessLists().getEditors().getList()) {
+ addGroup(membersUris, member);
+ }
+ for (final Occupant occupant : room.getOccupants()) {
+ // Remove all member that are in the room
+ membersUris.remove(occupant.getJID());
+ }
+ for (final XmppURI memberNotPresent : membersUris) {
+ room.sendInvitationTo(memberNotPresent,
+ i18n.t("Join us in [%s] public room!", room.getURI().getNode()));
+ }
+ }
+ }
+ });
}
+ }
- public void setInviteMembers(final boolean inviteMembers) {
- setInviteMembersImpl(inviteMembers);
- }
+ public void setInviteMembers(final boolean inviteMembers) {
+ setInviteMembersImpl(inviteMembers);
+ }
- private void setInviteMembersImpl(final boolean inviteMembers) {
- this.inviteMembers = inviteMembers;
- }
+ private void setInviteMembersImpl(final boolean inviteMembers) {
+ this.inviteMembers = inviteMembers;
+ }
- private void setState(final StateAbstractDTO state) {
- final boolean imLogged = session.isLogged();
- if (imLogged && !currentGroupsIsAsPerson(state)) {
- setEnabled(true);
- } else {
- setEnabled(false);
- }
+ private void setState(final StateAbstractDTO state) {
+ final boolean imLogged = session.isLogged();
+ if (imLogged && !currentGroupsIsAsPerson(state)) {
+ setEnabled(false);
+ setEnabled(true);
+ } else {
+ setEnabled(true);
+ setEnabled(false);
}
+ }
}
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomBtn.java 2011-06-24 16:50:59 UTC (rev 1416)
+++ trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomBtn.java 2011-06-24 23:04:18 UTC (rev 1417)
@@ -12,6 +12,6 @@
public OpenRoomBtn(final I18nTranslationService i18n, final OpenChatAction action,
final NavResources res) {
super(action);
- this.withText(i18n.t("Enter to this room")).withIcon(res.room()).withStyles("k-def-docbtn, k-fr");
+ this.withText(i18n.t("Enter to this room")).withIcon(res.room()).withStyles("k-def-docbtn, k-fl");
}
}
\ No newline at end of file
Added: trunk/src/main/java/cc/kune/chat/client/actions/StartAssemblyWithMembers.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/StartAssemblyWithMembers.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/client/actions/StartAssemblyWithMembers.java 2011-06-24 23:04:18 UTC (rev 1417)
@@ -0,0 +1,21 @@
+package cc.kune.chat.client.actions;
+
+import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
+import cc.kune.core.client.sn.actions.registry.GroupSNConfActions;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+
+import com.google.inject.Inject;
+
+public class StartAssemblyWithMembers extends MenuItemDescriptor {
+
+ @Inject
+ public StartAssemblyWithMembers(final OpenGroupPublicChatRoomAction action,
+ final I18nTranslationService i18n) {
+ super(action);
+ action.setInviteMembers(true);
+ withText(i18n.t("Start a public assembly with members")).withToolTip(
+ i18n.t("Enter to this group public chat room and invite members"));
+ setParent(GroupSNConfActions.OPTIONS_MENU);
+ setPosition(0);
+ }
+}
Property changes on: trunk/src/main/java/cc/kune/chat/client/actions/StartAssemblyWithMembers.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuGui.java 2011-06-24 16:50:59 UTC (rev 1416)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuGui.java 2011-06-24 23:04:18 UTC (rev 1417)
@@ -40,112 +40,112 @@
public abstract class AbstractGwtMenuGui extends AbstractChildGuiItem implements ParentWidget {
- protected MenuBar menu;
- private PopupPanel popup;
+ protected MenuBar menu;
+ private PopupPanel popup;
- public AbstractGwtMenuGui() {
- }
+ public AbstractGwtMenuGui() {
+ }
- public AbstractGwtMenuGui(final GuiActionDescrip descriptor) {
- super(descriptor);
- }
+ public AbstractGwtMenuGui(final GuiActionDescrip descriptor) {
+ super(descriptor);
+ }
- @Override
- public void add(final UIObject item) {
- menu.addItem((MenuItem) item);
- }
+ @Override
+ public void add(final UIObject item) {
+ menu.addItem((MenuItem) item);
+ }
- public void addSeparator() {
- menu.addSeparator();
- }
+ public void addSeparator() {
+ menu.addSeparator();
+ }
- @Override
- public void configureItemFromProperties() {
- super.configureItemFromProperties();
- descriptor.addPropertyChangeListener(new PropertyChangeListener() {
- @Override
- public void propertyChange(final PropertyChangeEvent event) {
- if (event.getPropertyName().equals(MenuDescriptor.MENU_CLEAR)) {
- menu.clearItems();
- }
- }
- });
- }
+ @Override
+ public void configureItemFromProperties() {
+ super.configureItemFromProperties();
+ descriptor.addPropertyChangeListener(new PropertyChangeListener() {
+ @Override
+ public void propertyChange(final PropertyChangeEvent event) {
+ if (event.getPropertyName().equals(MenuDescriptor.MENU_CLEAR)) {
+ menu.clearItems();
+ }
+ }
+ });
+ }
- @Override
- public AbstractGuiItem create(final GuiActionDescrip descriptor) {
- super.create(descriptor);
- menu = new MenuBar(true, SubMenuResources.INSTANCE);
- menu.setAutoOpen(true);
- menu.setFocusOnHoverEnabled(true);
- menu.setAnimationEnabled(true);
- descriptor.addPropertyChangeListener(new PropertyChangeListener() {
- @Override
- public void propertyChange(final PropertyChangeEvent event) {
- if (event.getPropertyName().equals(MenuDescriptor.MENU_HIDE)) {
- if (popup != null && popup.isShowing()) {
- popup.hide();
- }
- }
- }
- });
- descriptor.addPropertyChangeListener(new PropertyChangeListener() {
- @Override
- public void propertyChange(final PropertyChangeEvent event) {
- if (event.getPropertyName().equals(MenuDescriptor.MENU_SHOW)) {
- show(descriptor.getValue(MenuDescriptor.MENU_SHOW_NEAR_TO));
- }
- }
- });
- return this;
- }
-
- private PopupPanel createPopup() {
- popup = new PopupPanel(true);
- popup.setStyleName("oc-menu");
- popup.add(menu);
- popup.addCloseHandler(new CloseHandler<PopupPanel>() {
- @Override
- public void onClose(final CloseEvent<PopupPanel> event) {
- descriptor.putValue(MenuDescriptor.MENU_ONHIDE, popup);
- }
- });
- return popup;
- }
-
- public void hide() {
- if (popup != null) {
- // if menu (not submenu)
+ @Override
+ public AbstractGuiItem create(final GuiActionDescrip descriptor) {
+ super.create(descriptor);
+ menu = new MenuBar(true, SubMenuResources.INSTANCE);
+ menu.setAutoOpen(true);
+ menu.setFocusOnHoverEnabled(true);
+ menu.setAnimationEnabled(true);
+ descriptor.addPropertyChangeListener(new PropertyChangeListener() {
+ @Override
+ public void propertyChange(final PropertyChangeEvent event) {
+ if (event.getPropertyName().equals(MenuDescriptor.MENU_HIDE)) {
+ if (popup != null && popup.isShowing()) {
popup.hide();
+ }
}
- }
+ }
+ });
+ descriptor.addPropertyChangeListener(new PropertyChangeListener() {
+ @Override
+ public void propertyChange(final PropertyChangeEvent event) {
+ if (event.getPropertyName().equals(MenuDescriptor.MENU_SHOW)) {
+ show(descriptor.getValue(MenuDescriptor.MENU_SHOW_NEAR_TO));
+ }
+ }
+ });
+ return this;
+ }
- @Override
- public void insert(final int position, final UIObject item) {
- menu.insertItem((MenuItem) item, position);
- }
+ private PopupPanel createPopup() {
+ popup = new PopupPanel(true);
+ popup.setStyleName("oc-menu");
+ popup.add(menu);
+ popup.addCloseHandler(new CloseHandler<PopupPanel>() {
+ @Override
+ public void onClose(final CloseEvent<PopupPanel> event) {
+ descriptor.putValue(MenuDescriptor.MENU_ONHIDE, popup);
+ }
+ });
+ return popup;
+ }
- @Override
- public boolean shouldBeAdded() {
- return !descriptor.isChild();
+ public void hide() {
+ if (popup != null) {
+ // if menu (not submenu)
+ popup.hide();
}
+ }
- public void show(final Object relative) {
- createPopup();
- if (relative instanceof String) {
- popup.showRelativeTo(RootPanel.get((String) relative));
- } else if (relative instanceof UIObject) {
- popup.showRelativeTo((UIObject) relative);
- } else if (relative instanceof Position) {
- popup.setPopupPositionAndShow(new PositionCallback() {
- @Override
- public void setPosition(final int offsetWidth, final int offsetHeight) {
- final Position position = (Position) relative;
- popup.setPopupPosition(position.getX(), position.getY());
- }
- });
+ @Override
+ public void insert(final int position, final UIObject item) {
+ menu.insertItem((MenuItem) item, position);
+ }
+
+ @Override
+ public boolean shouldBeAdded() {
+ return !descriptor.isChild();
+ }
+
+ public void show(final Object relative) {
+ createPopup();
+ if (relative instanceof String) {
+ popup.showRelativeTo(RootPanel.get((String) relative));
+ } else if (relative instanceof UIObject) {
+ popup.showRelativeTo((UIObject) relative);
+ } else if (relative instanceof Position) {
+ popup.setPopupPositionAndShow(new PositionCallback() {
+ @Override
+ public void setPosition(final int offsetWidth, final int offsetHeight) {
+ final Position position = (Position) relative;
+ popup.setPopupPosition(position.getX(), position.getY());
}
- descriptor.putValue(MenuDescriptor.MENU_ONSHOW, popup);
+ });
}
+ descriptor.putValue(MenuDescriptor.MENU_ONSHOW, popup);
+ }
}
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/SubMenuDescriptor.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/SubMenuDescriptor.java 2011-06-24 16:50:59 UTC (rev 1416)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/SubMenuDescriptor.java 2011-06-24 23:04:18 UTC (rev 1417)
@@ -26,46 +26,51 @@
public class SubMenuDescriptor extends MenuDescriptor {
- public SubMenuDescriptor() {
- this(new BaseAction(null, null));
- }
+ public SubMenuDescriptor() {
+ this(new BaseAction(null, null));
+ }
- public SubMenuDescriptor(final AbstractAction action) {
- this(NO_PARENT, action);
- }
+ public SubMenuDescriptor(final AbstractAction action) {
+ this(NO_PARENT, action);
+ }
- public SubMenuDescriptor(final GuiActionDescrip parent, final AbstractAction action) {
- super(action);
- setParent(parent);
- putValue(MENU_HIDE, false);
- putValue(MENU_SHOW, false);
- putValue(MENU_CLEAR, false);
- putValue(MENU_STANDALONE, false);
- }
+ public SubMenuDescriptor(final GuiActionDescrip parent, final AbstractAction action) {
+ super(action);
+ setParent(parent);
+ putValue(MENU_HIDE, false);
+ putValue(MENU_SHOW, false);
+ putValue(MENU_CLEAR, false);
+ putValue(MENU_STANDALONE, false);
+ }
- public SubMenuDescriptor(final String text) {
- this(new BaseAction(text, null));
- }
+ public SubMenuDescriptor(final GuiActionDescrip parent, final String text) {
+ this(text);
+ setParent(parent);
+ }
- public SubMenuDescriptor(final String text, final ImageResource icon) {
- this(new BaseAction(text, null, icon));
- }
+ public SubMenuDescriptor(final String text) {
+ this(new BaseAction(text, null));
+ }
- public SubMenuDescriptor(final String text, final String tooltip) {
- this(new BaseAction(text, tooltip));
- }
+ public SubMenuDescriptor(final String text, final ImageResource icon) {
+ this(new BaseAction(text, null, icon));
+ }
- public SubMenuDescriptor(final String text, final String tooltip, final ImageResource icon) {
- this(new BaseAction(text, tooltip, icon));
- }
+ public SubMenuDescriptor(final String text, final String tooltip) {
+ this(new BaseAction(text, tooltip));
+ }
- public SubMenuDescriptor(final String text, final String tooltip, final String icon) {
- this(new BaseAction(text, tooltip, icon));
- }
+ public SubMenuDescriptor(final String text, final String tooltip, final ImageResource icon) {
+ this(new BaseAction(text, tooltip, icon));
+ }
- @Override
- public Class<?> getType() {
- return SubMenuDescriptor.class;
- }
+ public SubMenuDescriptor(final String text, final String tooltip, final String icon) {
+ this(new BaseAction(text, tooltip, icon));
+ }
+ @Override
+ public Class<?> getType() {
+ return SubMenuDescriptor.class;
+ }
+
}
Modified: trunk/src/main/java/cc/kune/core/client/actions/ActionRegistryByType.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/ActionRegistryByType.java 2011-06-24 16:50:59 UTC (rev 1416)
+++ trunk/src/main/java/cc/kune/core/client/actions/ActionRegistryByType.java 2011-06-24 23:04:18 UTC (rev 1417)
@@ -59,6 +59,15 @@
addAction(GENERIC_GROUP_ACTION, action, GENERIC_TYPE_ID);
}
+ public void addAction(final String actionsGroupId, final GuiActionDescrip descrip, final String typeId) {
+ addAction(actionsGroupId, new Provider<GuiActionDescrip>() {
+ @Override
+ public GuiActionDescrip get() {
+ return descrip;
+ }
+ }, typeId);
+ }
+
public void addAction(@Nonnull final String actionsGroupId,
final Provider<? extends GuiActionDescrip> action) {
addAction(actionsGroupId, action, GENERIC_TYPE_ID);
Modified: trunk/src/main/java/cc/kune/core/client/actions/RolActionAutoUpdated.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/RolActionAutoUpdated.java 2011-06-24 16:50:59 UTC (rev 1416)
+++ trunk/src/main/java/cc/kune/core/client/actions/RolActionAutoUpdated.java 2011-06-24 23:04:18 UTC (rev 1417)
@@ -53,7 +53,6 @@
public void onAccessRightsChanged(final AccessRightsChangedEvent event) {
refreshStatus(rolRequired, authNeed, session.isLogged(), visibleForMembers, visibleForNonMemb,
event.getCurrentRights());
-
}
});
}
@@ -75,6 +74,7 @@
newVisibility = false;
}
}
+ setEnabled(!newEnabled);
setEnabled(newEnabled);
// Workaround to force change ...
putValue(GuiActionDescrip.VISIBLE, !newVisibility);
Modified: trunk/src/main/java/cc/kune/core/client/actions/XMLActionsParser.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/XMLActionsParser.java 2011-06-24 16:50:59 UTC (rev 1416)
+++ trunk/src/main/java/cc/kune/core/client/actions/XMLActionsParser.java 2011-06-24 23:04:18 UTC (rev 1417)
@@ -8,8 +8,10 @@
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
+import cc.kune.common.client.actions.ui.descrip.SubMenuDescriptor;
import cc.kune.common.client.errors.UIException;
import cc.kune.common.client.notify.NotifyUser;
+import cc.kune.common.client.utils.TextUtils;
import cc.kune.core.client.actions.WaveExtension.Builder;
import cc.kune.core.client.errors.ErrorHandler;
import cc.kune.core.client.registry.NewMenusForTypeIdsRegistry;
@@ -52,11 +54,14 @@
}
+ private static final String SEP = "»";
+
private final ActionRegistryByType actionRegistry;
private final Provider<ContentServiceAsync> contentService;
private final ErrorHandler errHandler;
private final Map<String, WaveExtension> extensionsMap;
private final NewMenusForTypeIdsRegistry newMenusRegistry;
+ private final HashMap<String, SubMenuDescriptor> submenus;
@Inject
public XMLActionsParser(final ErrorHandler errHandler, final ActionRegistryByType actionRegistry,
@@ -67,6 +72,7 @@
this.contentService = contentService;
this.newMenusRegistry = newMenusRegistry;
extensionsMap = new HashMap<String, WaveExtension>();
+ submenus = new HashMap<String, SubMenuDescriptor>();
// Based on:
// http://www.roseindia.net/tutorials/gwt/retrieving-xml-data.shtml
@@ -94,6 +100,36 @@
return child != null ? child.getNodeValue() : "";
}
+ private SubMenuDescriptor getSubMenu(final MenuDescriptor menu, final String typeId,
+ final String parentS) {
+ final String[] path = parentS.split(SEP);
+ SubMenuDescriptor current = null;
+ for (int i = 0; i < path.length; i++) {
+ final String name = path[i];
+ final String subpathId = getSubPathId(typeId, path, i);
+ SubMenuDescriptor subMenuDescriptor = submenus.get(subpathId);
+ if (subMenuDescriptor == null) {
+ final GuiActionDescrip parent = (i == 0 ? menu : submenus.get(getSubPathId(typeId, path, i - 1)));
+ assert parent != null;
+ subMenuDescriptor = new SubMenuDescriptor(parent, name);
+ // subMenuDescriptor.setVisible(false);
+ submenus.put(subpathId, subMenuDescriptor);
+ actionRegistry.addAction(ActionGroups.TOOLBAR, subMenuDescriptor, typeId);
+ }
+ current = subMenuDescriptor;
+ }
+ assert current != null;
+ return current;
+ }
+
+ private String getSubPathId(final String typeId, final String[] path, final int i) {
+ final StringBuffer id = new StringBuffer().append(typeId);
+ for (int j = 0; j <= i; j++) {
+ id.append(SEP).append(path[j]);
+ }
+ return id.toString();
+ }
+
private void onFailed(final Throwable ex) {
errHandler.process(ex);
}
@@ -116,34 +152,39 @@
for (int i = 0; i < guiDescriptors.getLength(); i++) {
final Element guiDescriptor = (Element) guiDescriptors.item(i);
if (Boolean.parseBoolean(get(guiDescriptor, "enabled"))) {
- final String extensionName = get(guiDescriptor, "extensionName");
- final WaveExtension extension = extensionsMap.get(extensionName);
- if (extension == null) {
- throw new UIException("Undefined extension " + extensionName);
- }
- final String name = get(guiDescriptor, "name");
- final String description = get(guiDescriptor, "description");
- final AccessRolDTO rol = AccessRolDTO.valueOf(get(guiDescriptor, "rolRequired"));
- final GadgetAction action = new GadgetAction(contentService, rol, Boolean.parseBoolean(get(
- guiDescriptor, "authNeed")), extension.getGadgetUrl(), extension.getIconUrl());
- final NodeList typeIds = ((Element) guiDescriptor.getElementsByTagName("typeIds").item(0)).getElementsByTagName("typeId");
- final int length = typeIds.getLength();
+ final String type = get(guiDescriptor, "type");
+ if (type.equals("wave-gadget")) {
+ final String extensionName = get(guiDescriptor, "extensionName");
+ final WaveExtension extension = extensionsMap.get(extensionName);
+ if (extension == null) {
+ throw new UIException("Undefined extension " + extensionName);
+ }
+ final String name = get(guiDescriptor, "name");
+ final String description = get(guiDescriptor, "description");
+ final AccessRolDTO rol = AccessRolDTO.valueOf(get(guiDescriptor, "rolRequired"));
+ final GadgetAction action = new GadgetAction(contentService, rol, Boolean.parseBoolean(get(
+ guiDescriptor, "authNeed")), extension.getGadgetUrl(), extension.getIconUrl());
+ final NodeList typeIds = ((Element) guiDescriptor.getElementsByTagName("typeIds").item(0)).getElementsByTagName("typeId");
+ final int length = typeIds.getLength();
- for (int j = 0; j < length; j++) {
- final Element typeIdElem = (Element) typeIds.item(j);
- final String typeId = typeIdElem.getFirstChild().getNodeValue();
- final MenuDescriptor menu = newMenusRegistry.get(typeId);
- assert menu != null;
- final Provider<GuiActionDescrip> menuItemProvider = new Provider<GuiActionDescrip>() {
- @Override
- public GuiActionDescrip get() {
- final MenuItemDescriptor menuItem = new MenuItemDescriptor(action);
- menuItem.withText(name).withToolTip(description);
- menuItem.setParent(menu);
- return menuItem;
- }
- };
- actionRegistry.addAction(ActionGroups.TOOLBAR, menuItemProvider, typeId);
+ for (int j = 0; j < length; j++) {
+ final Element typeIdElem = (Element) typeIds.item(j);
+ final String typeId = typeIdElem.getFirstChild().getNodeValue();
+ final MenuDescriptor menu = newMenusRegistry.get(typeId);
+ assert menu != null;
+ final String parent = get(guiDescriptor, "parent");
+ final SubMenuDescriptor submenu = getSubMenu(menu, typeId, parent);
+ final Provider<GuiActionDescrip> menuItemProvider = new Provider<GuiActionDescrip>() {
+ @Override
+ public GuiActionDescrip get() {
+ final MenuItemDescriptor menuItem = new MenuItemDescriptor(action);
+ menuItem.withText(name).withToolTip(description);
+ menuItem.setParent(TextUtils.notEmpty(parent) ? submenu : menu);
+ return menuItem;
+ }
+ };
+ actionRegistry.addAction(ActionGroups.TOOLBAR, menuItemProvider, typeId);
+ }
}
}
}
Modified: trunk/src/main/java/cc/kune/core/client/sn/GroupSNPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/GroupSNPresenter.java 2011-06-24 16:50:59 UTC (rev 1416)
+++ trunk/src/main/java/cc/kune/core/client/sn/GroupSNPresenter.java 2011-06-24 23:04:18 UTC (rev 1417)
@@ -133,15 +133,10 @@
public void onUserSignOut(final UserSignOutEvent event) {
refreshOnSignInSignOut(session);
}
-
});
- createActions();
+ refreshActionsImpl();
}
- private void createActions() {
- getView().getBottomToolbar().addAll(actionsRegistry);
- }
-
@Override
public GroupSNView getView() {
return (GroupSNView) super.getView();
@@ -162,6 +157,15 @@
}
}
+ public void refreshActions() {
+ refreshActionsImpl();
+ }
+
+ private void refreshActionsImpl() {
+ getView().getBottomToolbar().clear();
+ getView().getBottomToolbar().addAll(actionsRegistry);
+ }
+
private void refreshOnSignInSignOut(final Session session) {
final StateAbstractDTO currentState = session.getCurrentState();
if (currentState != null) {
Modified: trunk/src/main/java/cc/kune/core/client/sn/UserSNPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/UserSNPresenter.java 2011-06-24 16:50:59 UTC (rev 1416)
+++ trunk/src/main/java/cc/kune/core/client/sn/UserSNPresenter.java 2011-06-24 23:04:18 UTC (rev 1417)
@@ -126,13 +126,9 @@
UserSNPresenter.this.onStateChanged(event.getState());
}
});
- createActions();
+ refreshActionsImpl();
}
- private void createActions() {
- getView().getBottomToolbar().addAll(confActionsRegistry);
- }
-
@Override
public UserSNView getView() {
return (UserSNView) super.getView();
@@ -156,6 +152,15 @@
}
}
+ public void refreshActions() {
+ refreshActionsImpl();
+ }
+
+ private void refreshActionsImpl() {
+ getView().getBottomToolbar().clear();
+ getView().getBottomToolbar().addAll(confActionsRegistry);
+ }
+
private void refreshOnSignInSignOut(final Session session) {
final StateAbstractDTO currentState = session.getCurrentState();
if (currentState != null) {
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupSNConfActions.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupSNConfActions.java 2011-06-24 16:50:59 UTC (rev 1416)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupSNConfActions.java 2011-06-24 23:04:18 UTC (rev 1417)
@@ -26,6 +26,7 @@
import cc.kune.common.client.actions.ui.descrip.MenuTitleItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.SubMenuDescriptor;
import cc.kune.core.client.resources.CoreResources;
+import cc.kune.core.client.sn.GroupSNPresenter;
import cc.kune.core.client.sn.actions.JoinGroupAction;
import cc.kune.core.client.sn.actions.MembersModerationMenuItem;
import cc.kune.core.client.sn.actions.MembersVisibilityMenuItem;
@@ -45,6 +46,13 @@
import com.google.inject.Inject;
import com.google.inject.Provider;
+/**
+ *
+ * You must call {@link GroupSNPresenter#refreshActions()} when adding some
+ * action externally with
+ * {@link #add(cc.kune.common.client.actions.ui.descrip.GuiActionDescrip)}
+ *
+ */
@SuppressWarnings("serial")
public class GroupSNConfActions extends AbstractSNActionsRegistry {
@@ -73,24 +81,24 @@
final MenuRadioItemDescriptor moderatedItem = membersModeration.get().withModeration(
AdmissionType.Moderated);
final MenuRadioItemDescriptor openItem = membersModeration.get().withModeration(AdmissionType.Open);
- add(OPTIONS_MENU);
- add(optionsTitle);
- add(VISIBILITY_SUBMENU.withText(i18n.t("Those who can view this member list")).withParent(
+ addImpl(OPTIONS_MENU);
+ addImpl(optionsTitle);
+ addImpl(VISIBILITY_SUBMENU.withText(i18n.t("Those who can view this member list")).withParent(
OPTIONS_MENU));
- add(MODERATION_SUBMENU.withText(i18n.t("New members policy")).withParent(OPTIONS_MENU));
- add(anyoneItem.withParent(VISIBILITY_SUBMENU).withText(i18n.t("anyone")));
- add(onlyMembersItem.withParent(VISIBILITY_SUBMENU).withText(i18n.t("only members")));
- add(onlyAdminsItem.withParent(VISIBILITY_SUBMENU).withText(i18n.t("only admins")));
- add(moderatedItem.withParent(MODERATION_SUBMENU).withText(i18n.t("moderate request to join")));
- add(openItem.withParent(MODERATION_SUBMENU).withText(i18n.t("auto accept request to join")));
+ addImpl(MODERATION_SUBMENU.withText(i18n.t("New members policy")).withParent(OPTIONS_MENU));
+ addImpl(anyoneItem.withParent(VISIBILITY_SUBMENU).withText(i18n.t("anyone")));
+ addImpl(onlyMembersItem.withParent(VISIBILITY_SUBMENU).withText(i18n.t("only members")));
+ addImpl(onlyAdminsItem.withParent(VISIBILITY_SUBMENU).withText(i18n.t("only admins")));
+ addImpl(moderatedItem.withParent(MODERATION_SUBMENU).withText(i18n.t("moderate request to join")));
+ addImpl(openItem.withParent(MODERATION_SUBMENU).withText(i18n.t("auto accept request to join")));
// add(closedItem.withParent(MODERATION_SUBMENU).withText(
// i18n.t("closed for new members")));
final ButtonDescriptor joinBtn = new ButtonDescriptor(joinGroupAction);
final ButtonDescriptor unJoinBtn = new ButtonDescriptor(unJoinGroupAction);
// unJoinBtn.add(isLoggedCondition);
- add(joinBtn); // .withStyles("k-no-backimage, k-noborder, k-nobackcolor"));
- add(unJoinBtn); // .withStyles("k-no-backimage, k-noborder, k-nobackcolor"));
+ addImpl(joinBtn); // .withStyles("k-no-backimage, k-noborder, k-nobackcolor"));
+ addImpl(unJoinBtn); // .withStyles("k-no-backimage, k-noborder, k-nobackcolor"));
stateManager.onStateChanged(true, new StateChangedHandler() {
@Override
@@ -128,4 +136,21 @@
}
});
}
+
+ /**
+ *
+ * You must call {@link GroupSNPresenter#refreshActions()} when adding some
+ * action externally with
+ * {@link #add(cc.kune.common.client.actions.ui.descrip.GuiActionDescrip)}
+ *
+ */
+ @Override
+ public boolean add(final GuiActionDescrip action) {
+ return addImpl(action);
+ }
+
+ private boolean addImpl(final GuiActionDescrip action) {
+ return super.add(action);
+ }
+
}
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/registry/UserSNConfActions.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/registry/UserSNConfActions.java 2011-06-24 16:50:59 UTC (rev 1416)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/registry/UserSNConfActions.java 2011-06-24 23:04:18 UTC (rev 1417)
@@ -20,10 +20,12 @@
package cc.kune.core.client.sn.actions.registry;
import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
+import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuRadioItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.SubMenuDescriptor;
import cc.kune.core.client.resources.CoreResources;
+import cc.kune.core.client.sn.UserSNPresenter;
import cc.kune.core.client.sn.actions.AddNewBuddiesAction;
import cc.kune.core.client.sn.actions.UserSNVisibilityMenuItem;
import cc.kune.core.client.sn.actions.conditions.IsGroupCondition;
@@ -38,6 +40,13 @@
import com.google.inject.Inject;
import com.google.inject.Provider;
+/**
+ *
+ * You must call {@link UserSNPresenter#refreshActions()} when adding some
+ * action externally with
+ * {@link #add(cc.kune.common.client.actions.ui.descrip.GuiActionDescrip)}
+ *
+ */
@SuppressWarnings("serial")
public class UserSNConfActions extends AbstractSNActionsRegistry {
@@ -59,15 +68,16 @@
UserSNetVisibility.onlyyou);
assert anyoneItem.getAction() != onlyYourBuddiesItem.getAction();
assert anyoneItem.getAction() != onlyYou.getAction();
- add(OPTIONS_MENU);
- add(VISIBILITY_SUBMENU.withText(i18n.t("Those who can view your network")).withParent(OPTIONS_MENU));
- add(anyoneItem.withParent(VISIBILITY_SUBMENU).withText(i18n.t("anyone")));
- add(onlyYourBuddiesItem.withParent(VISIBILITY_SUBMENU).withText(i18n.t("only your buddies")));
- add(onlyYou.withParent(VISIBILITY_SUBMENU).withText(i18n.t("only you")));
+ addImpl(OPTIONS_MENU);
+ addImpl(VISIBILITY_SUBMENU.withText(i18n.t("Those who can view your network")).withParent(
+ OPTIONS_MENU));
+ addImpl(anyoneItem.withParent(VISIBILITY_SUBMENU).withText(i18n.t("anyone")));
+ addImpl(onlyYourBuddiesItem.withParent(VISIBILITY_SUBMENU).withText(i18n.t("only your buddies")));
+ addImpl(onlyYou.withParent(VISIBILITY_SUBMENU).withText(i18n.t("only you")));
final ButtonDescriptor addBuddieBtn = new ButtonDescriptor(addNewBuddiesAction);
- add(addBuddieBtn.withStyles("k-no-backimage"));
+ addImpl(addBuddieBtn.withStyles("k-no-backimage"));
stateManager.onStateChanged(true, new StateChangedHandler() {
@Override
@@ -97,4 +107,21 @@
}
});
}
+
+ /**
+ *
+ * You must call {@link UserSNPresenter#refreshActions()} when adding some
+ * action externally with
+ * {@link #add(cc.kune.common.client.actions.ui.descrip.GuiActionDescrip)}
+ *
+ */
+ @Override
+ public boolean add(final GuiActionDescrip action) {
+ return addImpl(action);
+ }
+
+ private boolean addImpl(final GuiActionDescrip action) {
+ return super.add(action);
+ }
+
}
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/AbstractNewMenu.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/AbstractNewMenu.java 2011-06-24 16:50:59 UTC (rev 1416)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/AbstractNewMenu.java 2011-06-24 23:04:18 UTC (rev 1417)
@@ -21,9 +21,9 @@
import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
import cc.kune.core.client.resources.CoreResources;
-import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.UserSignInOrSignOutEvent;
-import cc.kune.core.client.state.UserSignInOrSignOutEvent.UserSignInOrSignOutHandler;
+import cc.kune.core.client.state.AccessRightsChangedEvent;
+import cc.kune.core.client.state.AccessRightsChangedEvent.AccessRightsChangedHandler;
+import cc.kune.core.client.state.AccessRightsClientManager;
import cc.kune.core.shared.i18n.I18nTranslationService;
import com.google.inject.Inject;
@@ -32,14 +32,15 @@
@Inject
public AbstractNewMenu(final CoreResources res, final I18nTranslationService i18n,
- final Session session) {
+ final AccessRightsClientManager rightsManager) {
super();
- this.withIcon(res.arrowdownsitebar()).withStyles("k-button, k-btn, k-5corners, k-def-docbtn, k-fr").withText(
+ this.withIcon(res.arrowdownsitebar()).withStyles("k-button, k-btn, k-5corners, k-def-docbtn, k-fl").withText(
"New");
- session.onUserSignInOrSignOut(true, new UserSignInOrSignOutHandler() {
+
+ rightsManager.onRightsChanged(true, new AccessRightsChangedHandler() {
@Override
- public void onUserSignInOrSignOut(final UserSignInOrSignOutEvent event) {
- AbstractNewMenu.this.setVisible(event.isLogged());
+ public void onAccessRightsChanged(final AccessRightsChangedEvent event) {
+ AbstractNewMenu.this.setVisible(event.getCurrentRights().isEditable());
}
});
}
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/NewContainerBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/NewContainerBtn.java 2011-06-24 16:50:59 UTC (rev 1416)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/NewContainerBtn.java 2011-06-24 23:04:18 UTC (rev 1417)
@@ -93,6 +93,6 @@
// The name given to this new content
action.putValue(NEW_NAME, newName);
action.putValue(ID, id);
- this.withText(title).withToolTip(tooltip).withIcon(icon).withStyles("k-def-docbtn, k-fr");
+ this.withText(title).withToolTip(tooltip).withIcon(icon).withStyles("k-def-docbtn, k-fl");
}
}
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/NewContentBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/NewContentBtn.java 2011-06-24 16:50:59 UTC (rev 1416)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/NewContentBtn.java 2011-06-24 23:04:18 UTC (rev 1417)
@@ -97,7 +97,7 @@
// final KeyStroke shortcut = Shortcut.getShortcut(false, true, false,
// false, Character.valueOf('N'));
// shorcutReg.put(shortcut, action);
- this.withText(title).withToolTip(tooltip).withIcon(icon).withStyles("k-def-docbtn, k-fr");
+ this.withText(title).withToolTip(tooltip).withIcon(icon).withStyles("k-def-docbtn, k-fl");
}
}
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/NewMenuProvider.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/NewMenuProvider.java 2011-06-24 16:50:59 UTC (rev 1416)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/NewMenuProvider.java 2011-06-24 23:04:18 UTC (rev 1417)
@@ -5,7 +5,7 @@
import com.google.inject.Provider;
/**
- * The Class NewMenusProvider ins a way to create a kind of singeltons for menu
+ * The Class NewMenusProvider is a way to create a kind of singletons for menu
* entries. This can be register in a list of Providers<GuiDescriptor> but in
* fact only references one item and can be used to select the parent of some
* menu items
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerPresenter.java 2011-06-24 16:50:59 UTC (rev 1416)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerPresenter.java 2011-06-24 23:04:18 UTC (rev 1417)
@@ -100,10 +100,10 @@
void showEmptyMsg(String contentTypeId);
}
- 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";
+ protected static final String CSSBTN = "k-button, k-fr";
+ protected static final String CSSBTNC = "k-button, k-button-center, k-fr";
+ protected static final String CSSBTNL = "k-button, k-button-left, k-fr";
+ protected static final String CSSBTNR = "k-button, k-button-right, k-fr";
private final ActionRegistryByType actionsRegistry;
@@ -236,7 +236,7 @@
final ContainerSimpleDTO[] path = container.getAbsolutePath();
final int pathLength = path.length;
if (pathLength > 0) {
- for (int i = 0; i < pathLength; i++) {
+ for (int i = pathLength - 1; i >= 0; i--) {
final ButtonDescriptor btn = createPathButton(path[i], pathLength, i);
actions.add(btn);
}
Modified: trunk/src/main/webapp/others/kune-wave-extensions.xml
===================================================================
--- trunk/src/main/webapp/others/kune-wave-extensions.xml 2011-06-24 16:50:59 UTC (rev 1416)
+++ trunk/src/main/webapp/others/kune-wave-extensions.xml 2011-06-24 23:04:18 UTC (rev 1417)
@@ -2,99 +2,108 @@
<kuneWaveExtensions>
-<!-- List of Wave extensions to use in Kune ===================== -->
+ <!-- List of Wave extensions to use in Kune ===================== -->
-<extensions>
+ <extensions>
- <extension>
- <name>pollo</name>
- <installerUrl>http://wavepollo.appspot.com/pollo.xml
- </installerUrl>
- <gadgetUrl>http://wavepollo.appspot.com/wavepollo/com.appspot.wavepollo.client.PolloWa…
- </gadgetUrl>
- <iconUrl>https://flinz-pollo.appspot.com/document_graph.png</iconUrl>
- <iconCss></iconCss>
- </extension>
- <extension>
- <name>massmob</name>
- <installerUrl>http://mass-mob.appspot.com/massmob/massmob-extension.xml
- </installerUrl>
- <gadgetUrl>http://mass-mob.appspot.com/massmob/org.ourproject.massmob.client.MassmobGa…
- </gadgetUrl>
- <iconUrl>http://mass-mob.appspot.com/logo.png</iconUrl>
- <iconCss></iconCss>
- </extension>
+ <extension>
+ <name>pollo</name>
+ <installerUrl>http://wavepollo.appspot.com/pollo.xml
+ </installerUrl>
+ <gadgetUrl>http://wavepollo.appspot.com/wavepollo/com.appspot.wavepollo.client.PolloWa…
+ </gadgetUrl>
+ <iconUrl>https://flinz-pollo.appspot.com/document_graph.png
+ </iconUrl>
+ <iconCss></iconCss>
+ </extension>
-</extensions>
+ <extension>
+ <name>massmob</name>
+ <installerUrl>http://mass-mob.appspot.com/massmob/massmob-extension.xml
+ </installerUrl>
+ <gadgetUrl>http://mass-mob.appspot.com/massmob/org.ourproject.massmob.client.MassmobGa…
+ </gadgetUrl>
+ <iconUrl>http://mass-mob.appspot.com/logo.png</iconUrl>
+ <iconCss></iconCss>
+ </extension>
-<!-- Where and how to use the above extensions ================ -->
+ </extensions>
-<guiActionDescriptors>
+ <!-- Where and how to use the above extensions ================ -->
- <guiActionDescriptor>
- <extensionName>massmob</extensionName>
- <name>New meeting</name>
- <description>Call and speed-up of events as meeting, smartmobs,
- flashmobs, protest demonstrations, etc.</description>
- <enabled>true</enabled>
- <typeIds>
- <typeId>docs.folder</typeId>
- <typeId>docs.root</typeId>
- <typeId>blogs.blog</typeId>
- </typeIds>
- <name></name>
- <location>
- <rol>
- <!-- Administrator, Editor, Viewer -->
- <rolRequired>Editor</rolRequired>
- <authNeed>true</authNeed>
- </rol>
- </location>
- <!-- only for new waves: anyone, onlymembers, onlyadmins, ask -->
- <participants>ask</participants>
- </guiActionDescriptor>
+ <guiActionDescriptors>
- <guiActionDescriptor>
- <extensionName>pollo</extensionName>
- <name>New poll</name>
- <description>Make some poll (allow single and multiple polls))</description>
- <enabled>true</enabled>
- <typeIds>
- <typeId>docs.folder</typeId>
- <typeId>docs.root</typeId>
- <typeId>blogs.blog</typeId>
- </typeIds>
- <name></name>
- <location>
- <rol>
- <!-- Administrator, Editor, Viewer -->
- <rolRequired>Editor</rolRequired>
- <authNeed>true</authNeed>
- </rol>
- </location>
- <!-- only for new waves: anyone, onlymembers, onlyadmins, ask -->
- <participants>ask</participants>
- </guiActionDescriptor>
+ <guiActionDescriptor>
+ <type>wave-gadget</type>
+ <extensionName>massmob</extensionName>
+ <name>New meeting</name>
+ <parent>Gadget»Calendar</parent>
+ <description>Call and speed-up of events as meeting, smartmobs,
+ flashmobs, protest demonstrations, etc.</description>
+ <enabled>true</enabled>
+ <typeIds>
+ <typeId>docs.folder</typeId>
+ <typeId>docs.root</typeId>
+ <typeId>blogs.blog</typeId>
+ </typeIds>
+ <name></name>
+ <location>
+ <rol>
+ <!-- Administrator, Editor, Viewer -->
+ <rolRequired>Editor</rolRequired>
+ <authNeed>true</authNeed>
+ </rol>
+ </location>
+ <!-- only for new waves: anyone, onlymembers, onlyadmins, ask -->
+ <participants>ask</participants>
+ </guiActionDescriptor>
- <guiActionDescriptor>
- <extensionName>massmob</extensionName>
- <name>Add a meeting</name>
- <description>Call and speed-up of events as meeting, smartmobs,
- flashmobs, protest demonstrations, etc.</description>
- <enabled>false</enabled>
- <typeIds>
- <typeId>docs.doc</typeId>
- </typeIds>
- <name></name>
- <location>
- <rol>
- <!-- Administrator, Editor, Viewer -->
- <rolRequired>Editor</rolRequired>
- <authNeed>true</authNeed>
- </rol>
- </location>
- </guiActionDescriptor>
+ <guiActionDescriptor>
+ <type>wave-gadget</type>
+ <extensionName>pollo</extensionName>
+ <name>New poll</name>
+ <parent>Gadget»Voting</parent>
+ <description>Make some poll (allow single and multiple polls))
+ </description>
+ <enabled>true</enabled>
+ <typeIds>
+ <typeId>docs.folder</typeId>
+ <typeId>docs.root</typeId>
+ <typeId>blogs.blog</typeId>
+ </typeIds>
+ <name></name>
+ <location>
+ <rol>
+ <!-- Administrator, Editor, Viewer -->
+ <rolRequired>Editor</rolRequired>
+ <authNeed>true</authNeed>
+ </rol>
+ </location>
+ <!-- only for new waves: anyone, onlymembers, onlyadmins, ask -->
+ <participants>ask</participants>
+ </guiActionDescriptor>
-</guiActionDescriptors>
+ <guiActionDescriptor>
+ <type>wave-gadget</type>
+ <extensionName>massmob</extensionName>
+ <name>Add a meeting</name>
+ <parent>Gadget»Calendar</parent>
+ <description>Call and speed-up of events as meeting, smartmobs,
+ flashmobs, protest demonstrations, etc.</description>
+ <enabled>false</enabled>
+ <typeIds>
+ <typeId>docs.doc</typeId>
+ </typeIds>
+ <name></name>
+ <location>
+ <rol>
+ <!-- Administrator, Editor, Viewer -->
+ <rolRequired>Editor</rolRequired>
+ <authNeed>true</authNeed>
+ </rol>
+ </location>
+ </guiActionDescriptor>
+ </guiActionDescriptors>
+
</kuneWaveExtensions>
\ No newline at end of file
1
0
r1416 - in trunk: . script src/main/java/cc/kune/gspace/client/viewers src/main/java/cc/kune/wave/client src/main/java/cc/kune/wave/server
by Vicente J. Ruiz Jurado 24 Jun '11
by Vicente J. Ruiz Jurado 24 Jun '11
24 Jun '11
Author: vjrj_
Date: 2011-06-24 18:50:59 +0200 (Fri, 24 Jun 2011)
New Revision: 1416
Modified:
trunk/.classpath
trunk/.project
trunk/pom.xml
trunk/script/repopubli.sh
trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPanel.java
trunk/src/main/java/cc/kune/wave/client/WebClient.java
trunk/src/main/java/cc/kune/wave/client/WebClient.ui.xml
trunk/src/main/java/cc/kune/wave/server/CustomWaveClientServlet.java
trunk/src/main/java/cc/kune/wave/server/WaveMain.java
Log:
wave code updated (with several fixes)
Modified: trunk/.classpath
===================================================================
--- trunk/.classpath 2011-06-24 01:51:23 UTC (rev 1415)
+++ trunk/.classpath 2011-06-24 16:50:59 UTC (rev 1416)
@@ -11,15 +11,18 @@
<classpathentry kind="var" path="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" sourcepath="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/appengine/appengine-api-1.0-sdk/1.3.1/appengine-api-1.0-sdk-1.3.1.jar"/>
<classpathentry kind="var" path="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/box-src/0.3.0-SNAPSHOT/box-src-0.3.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/box/0.3.1-SNAPSHOT/box-0.3.1-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/box-src/0.3.1-SNAPSHOT/box-src-0.3.1-SNAPSHOT.jar"/>
<classpathentry kind="var" path="M2_REPO/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar"/>
<classpathentry kind="var" path="M2_REPO/c3p0/c3p0/0.9.1/c3p0-0.9.1.jar" sourcepath="M2_REPO/c3p0/c3p0/0.9.1/c3p0-0.9.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-common-src/0.3.0-SNAPSHOT/client-common-src-0.3.0-SNAPSHOT.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-scheduler-src/0.3.0-SNAPSHOT/client-scheduler-src-0.3.0-SNAPSHOT.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-src/0.3.0-SNAPSHOT/client-src-0.3.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client/0.3.1-SNAPSHOT/client-0.3.1-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-common/0.3.1-SNAPSHOT/client-common-0.3.1-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-common-src/0.3.1-SNAPSHOT/client-common-src-0.3.1-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-scheduler-src/0.3.1-SNAPSHOT/client-scheduler-src-0.3.1-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-src/0.3.1-SNAPSHOT/client-src-0.3.1-SNAPSHOT.jar"/>
<classpathentry kind="var" path="M2_REPO/org/cobogw/gwt/cobogw/1.3.1/cobogw-1.3.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/common-src/0.3.0-SNAPSHOT/common-src-0.3.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/common-src/0.3.1-SNAPSHOT/common-src-0.3.1-SNAPSHOT.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar" sourcepath="M2_REPO/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-cli/commons-cli/1.2/commons-cli-1.2.jar" sourcepath="M2_REPO/commons-cli/commons-cli/1.2/commons-cli-1.2-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-codec/commons-codec/1.4/commons-codec-1.4.jar" sourcepath="M2_REPO/commons-codec/commons-codec/1.4/commons-codec-1.4-sources.jar"/>
@@ -29,8 +32,8 @@
<classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar" sourcepath="M2_REPO/commons-io/commons-io/1.3.1/commons-io-1.3.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.5/commons-lang-2.5.jar" sourcepath="M2_REPO/commons-lang/commons-lang/2.5/commons-lang-2.5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/communication-src/0.3.0-SNAPSHOT/communication-src-0.3.0-SNAPSHOT.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/concurrencycontrol-src/0.3.0-SNAPSHOT/concurrencycontrol-src-0.3.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/communication-src/0.3.1-SNAPSHOT/communication-src-0.3.1-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/concurrencycontrol-src/0.3.1-SNAPSHOT/concurrencycontrol-src-0.3.1-SNAPSHOT.jar"/>
<classpathentry kind="var" path="M2_REPO/net/sourceforge/htmlunit/crawl_htmlunit/r5662-gae/crawl_htmlunit-r5662-gae.jar"/>
<classpathentry kind="var" path="M2_REPO/net/sourceforge/cssparser/cssparser/0.9.5/cssparser-0.9.5.jar" sourcepath="M2_REPO/net/sourceforge/cssparser/cssparser/0.9.5/cssparser-0.9.5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar" sourcepath="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1-sources.jar"/>
@@ -40,7 +43,7 @@
<classpathentry kind="var" path="M2_REPO/com/calclab/emite/emite-proxy/0.1/emite-proxy-0.1.jar"/>
<classpathentry kind="var" path="M2_REPO/net/sf/ezmorph/ezmorph/1.0.3/ezmorph-1.0.3.jar" sourcepath="M2_REPO/net/sf/ezmorph/ezmorph/1.0.3/ezmorph-1.0.3-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/freemarker/freemarker/2.3.8/freemarker-2.3.8.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/google/guava/guava-gwt/r07/guava-gwt-r07.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/guava/guava-gwt/r09/guava-gwt-r09.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/inject/guice/3.0-rc2/guice-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/guice/3.0-rc2/guice-3.0-rc2-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-assisted-inject/2.0/guice-assisted-inject-2.0.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-persist/3.0-rc2/guice-persist-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/extensions/guice-persist/3.0-rc2/guice-persist-3.0-rc2-sources.jar"/>
@@ -50,7 +53,7 @@
<classpathentry kind="var" path="M2_REPO/com/allen_sauer/gwt/log/gwt-log/gwt-log/3.0.1/gwt-log-3.0.1.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/gwt/gwt-servlet/2.1.1/gwt-servlet-2.1.1.jar" sourcepath="M2_REPO/com/google/gwt/gwt-servlet/2.1.1/gwt-servlet-2.1.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/gwt/gwt-user/2.1.1/gwt-user-2.1.1.jar" sourcepath="M2_REPO/com/google/gwt/gwt-user/2.1.1/gwt-user-2.1.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/gwt-util-src/0.3.0-SNAPSHOT/gwt-util-src-0.3.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/gwt-util-src/0.3.1-SNAPSHOT/gwt-util-src-0.3.1-SNAPSHOT.jar"/>
<classpathentry kind="var" path="M2_REPO/com/allen_sauer/gwt/voices/gwt-voices/gwt-voices/2.0.0/gwt-voices-2.0.0.jar"/>
<classpathentry kind="var" path="M2_REPO/com/gwtext/gwtext/2.0.5/gwtext-2.0.5.jar"/>
<classpathentry kind="var" path="M2_REPO/com/gwtextux/gwtextux/0.4.0.924/gwtextux-0.4.0.924.jar"/>
@@ -81,7 +84,7 @@
<classpathentry kind="var" path="M2_REPO/net/sourceforge/htmlunit/htmlunit-core-js/2.7/htmlunit-core-js-2.7.jar" sourcepath="M2_REPO/net/sourceforge/htmlunit/htmlunit-core-js/2.7/htmlunit-core-js-2.7-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/javassist/javassist/3.4.GA/javassist-3.4.GA.jar"/>
<classpathentry kind="var" path="M2_REPO/org/slf4j/jcl-over-slf4j/1.6.1/jcl-over-slf4j-1.6.1.jar" sourcepath="M2_REPO/org/slf4j/jcl-over-slf4j/1.6.1/jcl-over-slf4j-1.6.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/beust/jcommander/1.5/jcommander-1.5.jar" sourcepath="M2_REPO/com/beust/jcommander/1.5/jcommander-1.5-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/beust/jcommander/1.12/jcommander-1.12.jar" sourcepath="M2_REPO/com/beust/jcommander/1.12/jcommander-1.12-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/codehaus/jettison/jettison/1.0-RC2/jettison-1.0-RC2.jar" sourcepath="M2_REPO/org/codehaus/jettison/jettison/1.0-RC2/jettison-1.0-RC2-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/jmagick/jmagick/6.2.6-0/jmagick-6.2.6-0.jar"/>
<classpathentry kind="var" path="M2_REPO/net/java/dev/jna/jna/3.2.2/jna-3.2.2.jar" sourcepath="M2_REPO/net/java/dev/jna/jna/3.2.2/jna-3.2.2-sources.jar"/>
@@ -92,7 +95,7 @@
<classpathentry kind="var" path="M2_REPO/net/sourceforge/findbugs/jsr-305/v0r47/jsr-305-v0r47.jar" sourcepath="M2_REPO/net/sourceforge/findbugs/jsr-305/v0r47/jsr-305-v0r47-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/hibernate/jtidy/r8-20060801/jtidy-r8-20060801.jar"/>
<classpathentry kind="var" path="M2_REPO/org/jukito/jukito/1.0/jukito-1.0.jar" sourcepath="M2_REPO/org/jukito/jukito/1.0/jukito-1.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/4.8.1/junit-4.8.1.jar" sourcepath="M2_REPO/junit/junit/4.8.1/junit-4.8.1-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.8.2/junit-4.8.2.jar" sourcepath="M2_REPO/junit/junit/4.8.2/junit-4.8.2-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/liquibase/liquibase-core/1.7.0/liquibase-core-1.7.0.jar"/>
<classpathentry kind="var" path="M2_REPO/org/liquibase/liquibase-plugin/1.7.0.0/liquibase-plugin-1.7.0.0.jar"/>
<classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.16/log4j-1.2.16.jar" sourcepath="M2_REPO/log4j/log4j/1.2.16/log4j-1.2.16-sources.jar"/>
@@ -105,15 +108,15 @@
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-profile/2.0/maven-profile-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-profile/2.0/maven-profile-2.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-project/2.0/maven-project-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-project/2.0/maven-project-2.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/media-src/0.3.0-SNAPSHOT/media-src-0.3.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/media-src/0.3.1-SNAPSHOT/media-src-0.3.1-SNAPSHOT.jar"/>
<classpathentry kind="var" path="M2_REPO/org/mockito/mockito-core/1.8.5/mockito-core-1.8.5.jar" sourcepath="M2_REPO/org/mockito/mockito-core/1.8.5/mockito-core-1.8.5-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/model-src/0.3.0-SNAPSHOT/model-src-0.3.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/model-src/0.3.1-SNAPSHOT/model-src-0.3.1-SNAPSHOT.jar"/>
<classpathentry kind="var" path="M2_REPO/mysql/mysql-connector-java/5.1.13/mysql-connector-java-5.1.13.jar"/>
<classpathentry kind="var" path="M2_REPO/net/sourceforge/nekohtml/nekohtml/1.9.14/nekohtml-1.9.14.jar" sourcepath="M2_REPO/net/sourceforge/nekohtml/nekohtml/1.9.14/nekohtml-1.9.14-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar" sourcepath="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.jar" sourcepath="M2_REPO/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar" sourcepath="M2_REPO/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/proto-msg/0.3.0-SNAPSHOT/proto-msg-0.3.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/proto-msg/0.3.1-SNAPSHOT/proto-msg-0.3.1-SNAPSHOT.jar"/>
<classpathentry kind="var" path="M2_REPO/org/w3c/css/sac/1.3/sac-1.3.jar" sourcepath="M2_REPO/org/w3c/css/sac/1.3/sac-1.3-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/seleniumhq/selenium/selenium/2.0a4/selenium-2.0a4.jar" sourcepath="M2_REPO/org/seleniumhq/selenium/selenium/2.0a4/selenium-2.0a4-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/seleniumhq/selenium/selenium-chrome-driver/2.0a4/selenium-chrome-driver-2.0a4.jar" sourcepath="M2_REPO/org/seleniumhq/selenium/selenium-chrome-driver/2.0a4/selenium-chrome-driver-2.0a4-sources.jar"/>
@@ -130,11 +133,12 @@
<classpathentry kind="var" path="M2_REPO/jivesoftware/smack/3.1.0/smack-3.1.0.jar"/>
<classpathentry kind="var" path="M2_REPO/jivesoftware/smackx/3.1.0/smackx-3.1.0.jar"/>
<classpathentry kind="var" path="M2_REPO/org/jivesoftware/smackx/debugger/smackx-debugger/3.0.4/smackx-debugger-3.0.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/yaml/snakeyaml/1.6/snakeyaml-1.6.jar" sourcepath="M2_REPO/org/yaml/snakeyaml/1.6/snakeyaml-1.6-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/testng/testng/5.14/testng-5.14.jar" sourcepath="M2_REPO/org/testng/testng/5.14/testng-5.14-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/util-src/0.3.0-SNAPSHOT/util-src-0.3.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/testng/testng/6.0.1/testng-6.0.1.jar" sourcepath="M2_REPO/org/testng/testng/6.0.1/testng-6.0.1-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/util-src/0.3.1-SNAPSHOT/util-src-0.3.1-SNAPSHOT.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5.jar" sourcepath="M2_REPO/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/waveinabox-server-0.3/0.3.0-SNAPSHOT/waveinabox-server-0.3-0.3.0-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/waveinabox-server-0.3/0.3.1-SNAPSHOT/waveinabox-server-0.3-0.3.1-SNAPSHOT.jar"/>
<classpathentry kind="var" path="M2_REPO/xalan/xalan/2.7.1/xalan-2.7.1.jar" sourcepath="M2_REPO/xalan/xalan/2.7.1/xalan-2.7.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar"/>
<classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar" sourcepath="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2-sources.jar"/>
Modified: trunk/.project
===================================================================
--- trunk/.project 2011-06-24 01:51:23 UTC (rev 1415)
+++ trunk/.project 2011-06-24 16:50:59 UTC (rev 1416)
@@ -1,66 +1,46 @@
-<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>kune</name>
- <comment>kune free/open/libre collaboration platform. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>com.google.gdt.eclipse.core.webAppProjectValidator</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.google.gwt.eclipse.core.gwtProjectValidator</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.wst.common.project.facet.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.wst.validation.validationbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>edu.umd.cs.findbugs.plugin.eclipse.findbugsBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.instantiations.assist.eclipse.coverage.instrumentationBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>net.sourceforge.pmd.eclipse.plugin.pmdBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.recommenders.rcp.analysis.RecommendersBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
- <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
- <nature>org.eclipse.ajdt.ui.ajnature</nature>
- <nature>com.google.gwt.eclipse.core.gwtNature</nature>
- <nature>edu.umd.cs.findbugs.plugin.eclipse.findbugsNature</nature>
- <nature>com.instantiations.assist.eclipse.coverage.codeCoverageNature</nature>
- <nature>net.sourceforge.pmd.eclipse.plugin.pmdNature</nature>
- <nature>org.eclipse.recommenders.rcp.analysis.RecommendersNature</nature>
- </natures>
-</projectDescription>
+ <name>kune</name>
+ <comment>kune free/open/libre collaboration platform. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects/>
+ <buildSpec>
+ <buildCommand>
+ <name>com.google.gdt.eclipse.core.webAppProjectValidator</name>
+ </buildCommand>
+ <buildCommand>
+ <name>com.google.gwt.eclipse.core.gwtProjectValidator</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.common.project.facet.core.builder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>edu.umd.cs.findbugs.plugin.eclipse.findbugsBuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>com.instantiations.assist.eclipse.coverage.instrumentationBuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>net.sourceforge.pmd.eclipse.plugin.pmdBuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.recommenders.rcp.analysis.RecommendersBuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+ <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+ <nature>org.eclipse.ajdt.ui.ajnature</nature>
+ <nature>com.google.gwt.eclipse.core.gwtNature</nature>
+ <nature>edu.umd.cs.findbugs.plugin.eclipse.findbugsNature</nature>
+ <nature>com.instantiations.assist.eclipse.coverage.codeCoverageNature</nature>
+ <nature>net.sourceforge.pmd.eclipse.plugin.pmdNature</nature>
+ <nature>org.eclipse.recommenders.rcp.analysis.RecommendersNature</nature>
+ </natures>
+</projectDescription>
\ No newline at end of file
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-06-24 01:51:23 UTC (rev 1415)
+++ trunk/pom.xml 2011-06-24 16:50:59 UTC (rev 1416)
@@ -547,72 +547,87 @@
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>waveinabox-server-0.3</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.3.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>proto-msg</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.3.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>gwt-util-src</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.3.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava-gwt</artifactId>
- <version>r07</version>
+ <version>r09</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
+ <artifactId>box</artifactId>
+ <version>0.3.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.waveprotocol</groupId>
<artifactId>box-src</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.3.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>model-src</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.3.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
+ <artifactId>client</artifactId>
+ <version>0.3.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.waveprotocol</groupId>
<artifactId>client-src</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.3.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
+ <artifactId>client-common</artifactId>
+ <version>0.3.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.waveprotocol</groupId>
<artifactId>client-common-src</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.3.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>common-src</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.3.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>util-src</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.3.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>concurrencycontrol-src</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.3.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>client-scheduler-src</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.3.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>media-src</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.3.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>communication-src</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.3.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>net.sourceforge.findbugs</groupId>
Modified: trunk/script/repopubli.sh
===================================================================
--- trunk/script/repopubli.sh 2011-06-24 01:51:23 UTC (rev 1415)
+++ trunk/script/repopubli.sh 2011-06-24 16:50:59 UTC (rev 1416)
@@ -47,5 +47,5 @@
-Dversion=$VER \
-Dpackaging=$PACKAGING \
-Dfile=$JAR \
- -Durl=scpexe://kune.ourproject.org/home/groups/kune/htdocs/mavenrepo/ \
+ -Durl=scpexe://ourproject.org/home/groups/kune/htdocs/mavenrepo/ \
-DrepositoryId=kune.ourproject.org
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPanel.java 2011-06-24 01:51:23 UTC (rev 1415)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPanel.java 2011-06-24 16:50:59 UTC (rev 1416)
@@ -212,7 +212,7 @@
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);
+ profiles, waveStore, isNewWave, org.waveprotocol.box.webclient.client.Session.get().getDomain());
this.wave = wave;
wave.load(new Command() {
@Override
Modified: trunk/src/main/java/cc/kune/wave/client/WebClient.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WebClient.java 2011-06-24 01:51:23 UTC (rev 1415)
+++ trunk/src/main/java/cc/kune/wave/client/WebClient.java 2011-06-24 16:50:59 UTC (rev 1416)
@@ -196,49 +196,34 @@
// Please also see WebClientDemo.gwt.xml.
private static final Logger REMOTE_LOG = Logger.getLogger("REMOTE_LOG");
- /**
- * Returns <code>ws://yourhost[:port]/</code>.
- */
- // XXX check formatting wrt GPE
- public native static String getWebSocketBaseUrl(String moduleBase) /*-{
- return "ws" + /:\/\/[^\/]+/.exec(moduleBase)[0] + "/";
- }-*/;
+ // TODO (Yuri Z.) Change the implementation to RemoteProfileManagerImpl when
+ // it will be ready.
+ private final ProfileManager profiles = new ProfileManagerImpl();
- public native static boolean useSocketIO() /*-{
- return !!$wnd.__useSocketIO
- }-*/;
+ @UiField
+ SplitLayoutPanel splitPanel;
- private RemoteViewServiceMultiplexer channel;
-
private final EventBus eventBus;
- private IdGenerator idGenerator;
- private final Element loading = new LoadingIndicator().getElement();
+ @UiField
+ Style style;
- private ParticipantId loggedInUser;
-
@UiField
- DebugMessagePanel logPanel;
+ FramedPanel waveFrame;
- private final ProfileManager profiles = new ProfileManagerImpl(Session.get().getDomain());
+ ImplPanel waveHolder;
+ private final Element loading = new LoadingIndicator().getElement();
+
@UiField(provided = true)
final SearchPanelWidget searchPanel = new SearchPanelWidget(new SearchPanelRenderer(profiles));
@UiField
- SplitLayoutPanel splitPanel;
+ DebugMessagePanel logPanel;
- @UiField
- Style style;
-
/** The wave panel, if a wave is open. */
private StagesProvider wave;
-@UiField
-FramedPanel waveFrame;
-
- ImplPanel waveHolder;
-
private final WaveStore waveStore = new SimpleWaveStore();
/**
@@ -246,6 +231,12 @@
*/
private WaveWebSocketClient websocket;
+ private ParticipantId loggedInUser;
+
+ private IdGenerator idGenerator;
+
+ private RemoteViewServiceMultiplexer channel;
+
/**
* This is the entry point method.
*/
@@ -279,7 +270,7 @@
setupUi();
- // History.fireCurrentHistoryState();
+ // History.fireCurrentHistoryState();
LOG.info("SimpleWebClient.onModuleLoad() done");
}
@@ -328,7 +319,19 @@
return websocket;
}
/**
+ * Returns <code>ws://yourhost[:port]/</code>.
*/
+ // XXX check formatting wrt GPE
+ private native String getWebSocketBaseUrl(String moduleBase) /*-{
+ return "ws" + /:\/\/[^\/]+/.exec(moduleBase)[0] + "/";
+ }-*/;
+
+ private native boolean useSocketIO() /*-{
+ return !!$wnd.__useSocketIO
+ }-*/;
+
+ /**
+ */
private void loginToServer() {
assert loggedInUser != null;
channel = new RemoteViewServiceMultiplexer(websocket, loggedInUser.getAddress());
@@ -369,7 +372,7 @@
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);
+ holder, waveHolder, waveRef, channel, idGenerator, profiles, waveStore, isNewWave, Session.get().getDomain());
this.wave = wave;
wave.load(new Command() {
@Override
@@ -426,17 +429,18 @@
private void setupSearchPanel() {
// On wave selection, fire an event.
- final SearchPresenter.WaveSelectionHandler selectHandler =
+ SearchPresenter.WaveSelectionHandler selectHandler =
new SearchPresenter.WaveSelectionHandler() {
@Override
- public void onWaveSelected(final WaveId id) {
+ public void onWaveSelected(WaveId id) {
ClientEvents.get().fireEvent(new WaveSelectionEvent(WaveRef.of(id)));
}
};
- final Search search = SimpleSearch.create(RemoteSearchService.create(), waveStore);
- SearchPresenter.create(search, searchPanel, selectHandler);
+ Search search = SimpleSearch.create(RemoteSearchService.create(), waveStore);
+ SearchPresenter.create(search, searchPanel, selectHandler, profiles);
}
+
private void setupUi() {
// Set up UI
final DockLayoutPanel self = BINDER.createAndBindUi(this);
Modified: trunk/src/main/java/cc/kune/wave/client/WebClient.ui.xml
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WebClient.ui.xml 2011-06-24 01:51:23 UTC (rev 1415)
+++ trunk/src/main/java/cc/kune/wave/client/WebClient.ui.xml 2011-06-24 16:50:59 UTC (rev 1416)
@@ -22,20 +22,19 @@
}
.splitPanel {
-
}
@external gwt-SplitLayoutPanel-HDragger;
@external gwt-SplitLayoutPanel-VDragger;
- .splitPanel .gwt-SplitLayoutPanel-HDragger,.splitPanel .gwt-SplitLayoutPanel-VDragger
- {
+ .splitPanel .gwt-SplitLayoutPanel-HDragger,.splitPanel .gwt-SplitLayoutPanel-VDragger {
background-color: rootBackground;
}
- .searchPanel { /*
- * GWT's drag panel separators are already huge, so no margin needed on
- * sides that have drag panels.
- */
+ .searchPanel {
+ /*
+ * GWT's drag panel separators are already huge, so no margin needed on
+ * sides that have drag panels.
+ */
margin: gap 0 0 gap;
}
@@ -46,10 +45,11 @@
margin: 0 gap gap gap;
}
- .wavePanel { /*
- * GWT's drag panel separators are already huge, so no margin needed on
- * sides that have drag panels.
- */
+ .wavePanel {
+ /*
+ * GWT's drag panel separators are already huge, so no margin needed on
+ * sides that have drag panels.
+ */
margin: gap 0 0 0;
}
@@ -63,19 +63,15 @@
</ui:style>
<g:DockLayoutPanel unit="PX" styleName="{style.root}">
<g:center>
- <g:SplitLayoutPanel ui:field="splitPanel"
- stylePrimaryName="{style.splitPanel}">
+ <g:SplitLayoutPanel ui:field="splitPanel" stylePrimaryName="{style.splitPanel}">
<g:south size="200">
- <d:DebugMessagePanel ui:field="logPanel"
- addStyleNames="{style.debugPanel}" />
+ <d:DebugMessagePanel ui:field="logPanel" addStyleNames="{style.debugPanel}" />
</g:south>
<g:west size="400">
- <s:SearchPanelWidget ui:field="searchPanel"
- addStyleNames="{style.searchPanel}" />
+ <s:SearchPanelWidget ui:field="searchPanel" addStyleNames="{style.searchPanel}"/>
</g:west>
<g:center>
- <f:FramedPanel ui:field="waveFrame"
- addStyleNames="{style.wavePanel}">
+ <f:FramedPanel ui:field="waveFrame" addStyleNames="{style.wavePanel}">
<!-- <w:ImplPanel ui:field="waveHolder"
addStyleNames="{style.waveHolder}" /> -->
</f:FramedPanel>
Modified: trunk/src/main/java/cc/kune/wave/server/CustomWaveClientServlet.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/CustomWaveClientServlet.java 2011-06-24 01:51:23 UTC (rev 1415)
+++ trunk/src/main/java/cc/kune/wave/server/CustomWaveClientServlet.java 2011-06-24 16:50:59 UTC (rev 1416)
@@ -23,6 +23,7 @@
import java.util.Enumeration;
import java.util.HashMap;
+import javax.inject.Singleton;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -45,7 +46,6 @@
import com.google.common.collect.Maps;
import com.google.gxp.base.GxpContext;
import com.google.inject.Inject;
-import com.google.inject.Singleton;
import com.google.inject.name.Named;
/**
Modified: trunk/src/main/java/cc/kune/wave/server/WaveMain.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/WaveMain.java 2011-06-24 01:51:23 UTC (rev 1415)
+++ trunk/src/main/java/cc/kune/wave/server/WaveMain.java 2011-06-24 16:50:59 UTC (rev 1416)
@@ -19,8 +19,17 @@
package cc.kune.wave.server;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.Map;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServlet;
+
import org.apache.commons.configuration.ConfigurationException;
-import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.servlets.ProxyServlet;
import org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolWaveClientRpc;
import org.waveprotocol.box.server.CoreSettings;
@@ -37,11 +46,14 @@
import org.waveprotocol.box.server.robots.RobotApiModule;
import org.waveprotocol.box.server.robots.RobotRegistrationServlet;
import org.waveprotocol.box.server.robots.active.ActiveApiServlet;
+import org.waveprotocol.box.server.robots.agent.passwd.PasswordAdminRobot;
+import org.waveprotocol.box.server.robots.agent.passwd.PasswordRobot;
import org.waveprotocol.box.server.robots.dataapi.DataApiOAuthServlet;
import org.waveprotocol.box.server.robots.dataapi.DataApiServlet;
import org.waveprotocol.box.server.robots.passive.RobotsGateway;
import org.waveprotocol.box.server.rpc.AttachmentServlet;
import org.waveprotocol.box.server.rpc.AuthenticationServlet;
+import org.waveprotocol.box.server.rpc.FetchProfilesServlet;
import org.waveprotocol.box.server.rpc.FetchServlet;
import org.waveprotocol.box.server.rpc.SearchServlet;
import org.waveprotocol.box.server.rpc.ServerRpcProvider;
@@ -62,9 +74,12 @@
import com.google.gwt.logging.server.RemoteLoggingServiceImpl;
import com.google.inject.Guice;
+import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.Module;
+import com.google.inject.Singleton;
+import com.google.inject.name.Named;
import com.google.inject.name.Names;
/**
@@ -72,66 +87,40 @@
*/
public class WaveMain {
- /**
- * This is the name of the system property used to find the server config file.
- */
- private static final String PROPERTIES_FILE_KEY = "wave.server.config";
+ @SuppressWarnings("serial")
+ @Singleton
+ public static class GadgetProxyServlet extends HttpServlet {
- private static final Log LOG = Log.get(WaveMain.class);
+ ProxyServlet.Transparent proxyServlet;
- public static void main(String... args) {
- try {
- Module coreSettings = SettingsBinder.bindSettings(PROPERTIES_FILE_KEY, CoreSettings.class);
- run(coreSettings);
- return;
- } catch (PersistenceException e) {
- LOG.severe("PersistenceException when running server:", e);
- } catch (ConfigurationException e) {
- LOG.severe("ConfigurationException when running server:", e);
- } catch (WaveServerException e) {
- LOG.severe("WaveServerException when running server:", e);
+ @Inject
+ public GadgetProxyServlet((a)Named(CoreSettings.GADGET_SERVER_HOSTNAME) final String gadgetServerHostname,
+ @Named(CoreSettings.GADGET_SERVER_PORT) final int gadgetServerPort){
+
+ LOG.info("Starting GadgetProxyServlet for " + gadgetServerHostname + ":" + gadgetServerPort);
+ proxyServlet = new ProxyServlet.Transparent("/gadgets", "http", gadgetServerHostname,
+ gadgetServerPort,"/gadgets");
}
- }
- public static void run(Module coreSettings) throws PersistenceException,
- ConfigurationException, WaveServerException {
- Injector settingsInjector = Guice.createInjector(coreSettings);
- boolean enableFederation = settingsInjector.getInstance(Key.get(Boolean.class,
- Names.named(CoreSettings.ENABLE_FEDERATION)));
-
- if (enableFederation) {
- Module federationSettings =
- SettingsBinder.bindSettings(PROPERTIES_FILE_KEY, FederationSettings.class);
- // This MUST happen first, or bindings will fail if federation is enabled.
- settingsInjector = settingsInjector.createChildInjector(federationSettings);
+ @Override
+ public void init(final ServletConfig config) throws ServletException {
+ proxyServlet.init(config);
}
- Module federationModule = buildFederationModule(settingsInjector, enableFederation);
- PersistenceModule persistenceModule = settingsInjector.getInstance(PersistenceModule.class);
- Injector injector =
- settingsInjector.createChildInjector(new ServerModule(enableFederation),
- new RobotApiModule(), federationModule, persistenceModule);
-
- ServerRpcProvider server = injector.getInstance(ServerRpcProvider.class);
- WaveBus waveBus = injector.getInstance(WaveBus.class);
-
- String domain =
- injector.getInstance(Key.get(String.class, Names.named(CoreSettings.WAVE_SERVER_DOMAIN)));
- if (!ParticipantIdUtil.isDomainAddress(ParticipantIdUtil.makeDomainAddress(domain))) {
- throw new WaveServerException("Invalid wave domain: " + domain);
+ @Override
+ public void service(final ServletRequest req, final ServletResponse res) throws ServletException, IOException {
+ proxyServlet.service(req, res);
}
+ }
- initializeServer(injector, domain);
- initializeServlets(injector, server);
- initializeRobots(injector, waveBus);
- initializeFrontend(injector, server, waveBus);
- initializeFederation(injector);
+ private static final Log LOG = Log.get(WaveMain.class);
- LOG.info("Starting server");
- server.startWebSocketServer(injector);
- }
+ /**
+ * This is the name of the system property used to find the server config file.
+ */
+ private static final String PROPERTIES_FILE_KEY = "wave.server.config";
- private static Module buildFederationModule(Injector settingsInjector, boolean enableFederation)
+ private static Module buildFederationModule(final Injector settingsInjector, final boolean enableFederation)
throws ConfigurationException {
Module federationModule;
if (enableFederation) {
@@ -142,78 +131,132 @@
return federationModule;
}
- private static void initializeServer(Injector injector, String waveDomain)
+ private static void initializeFederation(final Injector injector) {
+ final FederationTransport federationManager = injector.getInstance(FederationTransport.class);
+ federationManager.startFederation();
+ }
+
+ private static void initializeFrontend(final Injector injector, final ServerRpcProvider server,
+ final WaveBus waveBus) throws WaveServerException {
+ final HashedVersionFactory hashFactory = injector.getInstance(HashedVersionFactory.class);
+
+ final WaveletProvider provider = injector.getInstance(WaveletProvider.class);
+ final ClientFrontend frontend =
+ ClientFrontendImpl.create(hashFactory, provider, waveBus);
+
+ final ProtocolWaveClientRpc.Interface rpcImpl = WaveClientRpcImpl.create(frontend, false);
+ server.registerService(ProtocolWaveClientRpc.newReflectiveService(rpcImpl));
+ }
+
+ private static void initializeRobotAgents(final Injector injector, final ServerRpcProvider server) {
+ final PasswordRobot passRobot = new PasswordRobot(injector);
+ final PasswordAdminRobot passAdminRobot = new PasswordAdminRobot(injector);
+ injector.injectMembers(passRobot);
+ server.addServlet(PasswordRobot.ROBOT_URI + "/*", passRobot);
+ server.addServlet(PasswordAdminRobot.ROBOT_URI + "/*", passAdminRobot);
+ }
+
+ private static void initializeRobots(final Injector injector, final WaveBus waveBus) {
+ final RobotsGateway robotsGateway = injector.getInstance(RobotsGateway.class);
+ waveBus.subscribe(robotsGateway);
+ }
+
+ private static void initializeServer(final Injector injector, final String waveDomain)
throws PersistenceException, WaveServerException {
- AccountStore accountStore = injector.getInstance(AccountStore.class);
+ final AccountStore accountStore = injector.getInstance(AccountStore.class);
accountStore.initializeAccountStore();
AccountStoreHolder.init(accountStore, waveDomain);
// Initialize the SignerInfoStore.
- CertPathStore certPathStore = injector.getInstance(CertPathStore.class);
+ final CertPathStore certPathStore = injector.getInstance(CertPathStore.class);
if (certPathStore instanceof SignerInfoStore) {
((SignerInfoStore)certPathStore).initializeSignerInfoStore();
}
// Initialize the server.
- WaveletProvider waveServer = injector.getInstance(WaveletProvider.class);
+ final WaveletProvider waveServer = injector.getInstance(WaveletProvider.class);
waveServer.initialize();
}
- private static void initializeServlets(Injector injector, ServerRpcProvider server) {
+ private static void initializeServlets(final Injector injector, final ServerRpcProvider server) {
server.addServlet("/attachment/*", injector.getInstance(AttachmentServlet.class));
- server.addServlet(SessionManager.SIGN_IN_URL,
- injector.getInstance(AuthenticationServlet.class));
+ server.addServlet(SessionManager.SIGN_IN_URL, injector.getInstance(AuthenticationServlet.class));
server.addServlet("/auth/signout", injector.getInstance(SignOutServlet.class));
server.addServlet("/auth/register", injector.getInstance(UserRegistrationServlet.class));
-
server.addServlet("/fetch/*", injector.getInstance(FetchServlet.class));
-
server.addServlet("/search/*", injector.getInstance(SearchServlet.class));
server.addServlet("/robot/dataapi", injector.getInstance(DataApiServlet.class));
- server.addServlet(DataApiOAuthServlet.DATA_API_OAUTH_PATH + "/*",
- injector.getInstance(DataApiOAuthServlet.class));
+ server.addServlet(DataApiOAuthServlet.DATA_API_OAUTH_PATH + "/*", injector.getInstance(DataApiOAuthServlet.class));
server.addServlet("/robot/dataapi/rpc", injector.getInstance(DataApiServlet.class));
server.addServlet("/robot/register/*", injector.getInstance(RobotRegistrationServlet.class));
server.addServlet("/robot/rpc", injector.getInstance(ActiveApiServlet.class));
+ server.addServlet("/webclient/remote_logging", injector.getInstance(RemoteLoggingServiceImpl.class));
+ server.addServlet("/profile/*", injector.getInstance(FetchProfilesServlet.class));
- String gadgetServerHostname =injector.getInstance(Key.get(String.class,
- Names.named(CoreSettings.GADGET_SERVER_HOSTNAME)));
- int gadgetServerPort =
- injector.getInstance(Key.get(int.class, Names.named(CoreSettings.GADGET_SERVER_PORT)));
- String gadgetServerPath =
- injector.getInstance(Key.get(String.class, Names.named(CoreSettings.GADGET_SERVER_PATH)));
- ProxyServlet.Transparent proxyServlet =
- new ProxyServlet.Transparent("/gadgets", "http", gadgetServerHostname,gadgetServerPort,
- gadgetServerPath);
- ServletHolder proxyServletHolder = server.addServlet("/gadgets/*", proxyServlet);
- proxyServletHolder.setInitParameter("HostHeader", gadgetServerHostname);
-
- server.addServlet("/webclient/remote_logging",
- injector.getInstance(RemoteLoggingServiceImpl.class));
- // server.addServlet("/", injector.getInstance(WaveClientServlet.class));
+ final String gadgetHostName =
+ injector
+ .getInstance(Key.get(String.class, Names.named(CoreSettings.GADGET_SERVER_HOSTNAME)));
+ final int port =
+ injector.getInstance(Key.get(Integer.class, Names.named(CoreSettings.GADGET_SERVER_PORT)));
+ final Map<String, String> initParams =
+ Collections.singletonMap("HostHeader", gadgetHostName + ":" + port);
+ server.addServlet("/gadgets/*", injector.getInstance(GadgetProxyServlet.class), initParams);
+
+ //server.addServlet("/", injector.getInstance(WaveClientServlet.class));
}
- private static void initializeRobots(Injector injector, WaveBus waveBus) {
- RobotsGateway robotsGateway = injector.getInstance(RobotsGateway.class);
- waveBus.subscribe(robotsGateway);
+ public static void main(final String... args) {
+ try {
+ final Module coreSettings = SettingsBinder.bindSettings(PROPERTIES_FILE_KEY, CoreSettings.class);
+ run(coreSettings);
+ return;
+ } catch (final PersistenceException e) {
+ LOG.severe("PersistenceException when running server:", e);
+ } catch (final ConfigurationException e) {
+ LOG.severe("ConfigurationException when running server:", e);
+ } catch (final WaveServerException e) {
+ LOG.severe("WaveServerException when running server:", e);
+ }
}
- private static void initializeFrontend(Injector injector, ServerRpcProvider server,
- WaveBus waveBus) throws WaveServerException {
- HashedVersionFactory hashFactory = injector.getInstance(HashedVersionFactory.class);
-
- WaveletProvider provider = injector.getInstance(WaveletProvider.class);
- ClientFrontend frontend =
- ClientFrontendImpl.create(hashFactory, provider, waveBus);
+ public static void run(final Module coreSettings) throws PersistenceException,
+ ConfigurationException, WaveServerException {
+ Injector settingsInjector = Guice.createInjector(coreSettings);
+ final boolean enableFederation = settingsInjector.getInstance(Key.get(Boolean.class,
+ Names.named(CoreSettings.ENABLE_FEDERATION)));
- ProtocolWaveClientRpc.Interface rpcImpl = WaveClientRpcImpl.create(frontend, false);
- server.registerService(ProtocolWaveClientRpc.newReflectiveService(rpcImpl));
- }
+ if (enableFederation) {
+ final Module federationSettings =
+ SettingsBinder.bindSettings(PROPERTIES_FILE_KEY, FederationSettings.class);
+ // This MUST happen first, or bindings will fail if federation is enabled.
+ settingsInjector = settingsInjector.createChildInjector(federationSettings);
+ }
- private static void initializeFederation(Injector injector) {
- FederationTransport federationManager = injector.getInstance(FederationTransport.class);
- federationManager.startFederation();
+ final Module federationModule = buildFederationModule(settingsInjector, enableFederation);
+ final PersistenceModule persistenceModule = settingsInjector.getInstance(PersistenceModule.class);
+ final Injector injector =
+ settingsInjector.createChildInjector(new ServerModule(enableFederation),
+ new RobotApiModule(), federationModule, persistenceModule);
+
+ final ServerRpcProvider server = injector.getInstance(ServerRpcProvider.class);
+ final WaveBus waveBus = injector.getInstance(WaveBus.class);
+
+ final String domain =
+ injector.getInstance(Key.get(String.class, Names.named(CoreSettings.WAVE_SERVER_DOMAIN)));
+ if (!ParticipantIdUtil.isDomainAddress(ParticipantIdUtil.makeDomainAddress(domain))) {
+ throw new WaveServerException("Invalid wave domain: " + domain);
+ }
+
+ initializeServer(injector, domain);
+ initializeServlets(injector, server);
+ initializeRobotAgents(injector, server);
+ initializeRobots(injector, waveBus);
+ initializeFrontend(injector, server, waveBus);
+ initializeFederation(injector);
+
+ LOG.info("Starting server");
+ server.startWebSocketServer(injector);
}
}
1
0