Author: vjrj Date: 2008-11-26 14:41:04 +0100 (Wed, 26 Nov 2008) New Revision: 970 Added: trunk/HOWTO_ADD_A_NEW_TOOL trunk/src/main/java/org/ourproject/kune/gallery/ trunk/src/main/java/org/ourproject/kune/gallery/Kune-Gallery.gwt.xml trunk/src/main/java/org/ourproject/kune/gallery/client/ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContent.java trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPanel.java trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPresenter.java trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentView.java trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewer.java trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPanel.java trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerView.java trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/ trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/GalleryContext.java trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/GalleryContextPresenter.java trunk/src/main/java/org/ourproject/kune/gallery/public/ trunk/src/main/java/org/ourproject/kune/gallery/server/ trunk/src/main/java/org/ourproject/kune/gallery/server/GalleryServerModule.java trunk/src/main/java/org/ourproject/kune/gallery/server/GalleryServerTool.java Modified: trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPresenter.java trunk/src/main/java/org/ourproject/kune/blogs/server/BlogServerTool.java trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java trunk/src/main/java/org/ourproject/kune/platf/client/tool/FoldableAbstractClientTool.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/FileParams.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/AbstractUploader.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderPresenter.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderView.java trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManagerAbstract.java trunk/src/main/java/org/ourproject/kune/platf/server/tool/ServerTool.java trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentPresenter.java trunk/src/main/java/org/ourproject/kune/wiki/server/WikiServerTool.java trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java trunk/src/test/java/org/ourproject/kune/platf/client/ui/dialogs/upload/FileUploaderPresenterTest.java trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManagerTest.java trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/FileUploadManagerTest.java Log: Gallery new tool. Incomplete - task UI tools & workspace refactorization Added: trunk/HOWTO_ADD_A_NEW_TOOL =================================================================== --- trunk/HOWTO_ADD_A_NEW_TOOL 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/HOWTO_ADD_A_NEW_TOOL 2008-11-26 13:41:04 UTC (rev 970) @@ -0,0 +1,32 @@ +Here we try to describe a easy way to add a new Tool of type "Foldeable", that is, a tool with a folder/files structure. For other kind of tools (like, for instance a rich Web Calendar tool), better start from scratch creating the NewTool{ClientTool|ClientActions|ServerTool} classes and implementing the specific functionality. + +The stpes (substitute 'wiki' and 'Wiki' for the new tool name): + +cd src/main/java/org/ourproject/kune/ +rsync -r -C docs/ wiki +cd wiki/ +find . -name '*.java' | xargs rename 's/Document/Wiki/g' +find . -name '*.java' | xargs rename 's/Docs/Wiki/g' +find . -name '*.java' | xargs rename 's/Doc/Wiki/g' +find . -name '*.xml' | xargs rename 's/Docs/Wiki/g' +find . -name *java | xargs perl -p -i -e 's/Documents/Wiki/g' +find . -name *java | xargs perl -p -i -e 's/Document/Wiki/g' +find . -name *java | xargs perl -p -i -e 's/Docs/Wiki/g' +find . -name *java | xargs perl -p -i -e 's/Doc/Wiki/g' +find . -name *java | xargs perl -p -i -e 's/\.docs\./\.wiki\./g' +find . -name *java | xargs perl -p -i -e 's/documents/wiki/g' +find . -name *java | xargs perl -p -i -e 's/docs/wiki/g' + +Edit WikiClientTool and WikiServerTool and WikiClientActions with the specific actions and types the tool will have. + +Add + <inherits name='org.ourproject.kune.wiki.Kune-Wiki' /> +to Kune.gwt.xml + +Add + builder.use(new WikiServerModule()); +to KuneRackModule.java. + +Add the WikiClientModule to KuneEntryPoint. + + Modified: trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml =================================================================== --- trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2008-11-26 13:41:04 UTC (rev 970) @@ -16,6 +16,7 @@ <inherits name='org.ourproject.kune.blogs.Kune-Blogs' /> <inherits name='org.ourproject.kune.wiki.Kune-Wiki' /> <inherits name='org.ourproject.kune.chat.Kune-Chat' /> + <inherits name='org.ourproject.kune.gallery.Kune-Gallery' /> <!-- gwt-ext --> <inherits name='com.gwtext.GwtExt' /> Modified: trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java 2008-11-26 13:41:04 UTC (rev 970) @@ -22,6 +22,7 @@ import org.ourproject.kune.blogs.client.BlogClientModule; import org.ourproject.kune.chat.client.ChatClientModule; import org.ourproject.kune.docs.client.DocumentClientModule; +import org.ourproject.kune.gallery.client.GalleryClientModule; import org.ourproject.kune.platf.client.services.KuneCoreModule; import org.ourproject.kune.platf.client.services.KuneModule; import org.ourproject.kune.platf.client.services.KunePlatformModule; @@ -57,6 +58,6 @@ public void onModuleLoadCont() { Suco.install(new KuneCoreModule(), new KuneRegistryModule(), new KunePlatformModule(), new KuneWorkspaceModule(), new EmiteUIModule(), new DocumentClientModule(), new BlogClientModule(), - new WikiClientModule(), new ChatClientModule(), new KuneModule()); + new WikiClientModule(), new ChatClientModule(), new GalleryClientModule(), new KuneModule()); } } Modified: trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java 2008-11-26 13:41:04 UTC (rev 970) @@ -22,6 +22,7 @@ import org.ourproject.kune.blogs.server.BlogServerModule; import org.ourproject.kune.chat.server.ChatServerModule; import org.ourproject.kune.docs.server.DocumentServerModule; +import org.ourproject.kune.gallery.server.GalleryServerModule; import org.ourproject.kune.platf.client.rpc.ContentService; import org.ourproject.kune.platf.client.rpc.GroupService; import org.ourproject.kune.platf.client.rpc.I18nService; @@ -114,6 +115,7 @@ builder.use(new BlogServerModule()); builder.use(new WikiServerModule()); builder.use(new ChatServerModule()); + builder.use(new GalleryServerModule()); builder.use(new RESTServicesModule()); builder.use(configModule); } Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java 2008-11-26 13:41:04 UTC (rev 970) @@ -27,11 +27,11 @@ import org.ourproject.kune.workspace.client.themes.WsThemePresenter; public class BlogClientTool extends FoldableAbstractClientTool { - public static final String TYPE_ROOT = "blogs.root"; - public static final String TYPE_BLOG = "blogs.blog"; - public static final String TYPE_POST = "blogs.post"; - public static final String TYPE_UPLOADEDFILE = "blogs.uploaded"; public static final String NAME = "blogs"; + public static final String TYPE_ROOT = NAME + "." + "root"; + public static final String TYPE_BLOG = NAME + "." + "blog"; + public static final String TYPE_POST = NAME + "." + "post"; + public static final String TYPE_UPLOADEDFILE = NAME + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX; public BlogClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector, final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws, Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPresenter.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPresenter.java 2008-11-26 13:41:04 UTC (rev 970) @@ -20,7 +20,6 @@ package org.ourproject.kune.blogs.client.cnt; import org.ourproject.kune.blogs.client.BlogClientTool; -import org.ourproject.kune.chat.client.ChatClientTool; import org.ourproject.kune.platf.client.actions.ActionRegistry; import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar; import org.ourproject.kune.platf.client.dto.StateContainerDTO; @@ -48,7 +47,7 @@ @Override protected void setState(StateContainerDTO state) { - if (state.getTypeId().equals(ChatClientTool.TYPE_ROOT)) { + if (state.getTypeId().equals(BlogClientTool.TYPE_ROOT)) { if (state.getRootContainer().getChilds().size() == 0) { view.setInfo(i18n.t("This group has no blogs.")); } else { Modified: trunk/src/main/java/org/ourproject/kune/blogs/server/BlogServerTool.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/blogs/server/BlogServerTool.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/blogs/server/BlogServerTool.java 2008-11-26 13:41:04 UTC (rev 970) @@ -39,12 +39,12 @@ import com.google.inject.Inject; public class BlogServerTool implements ServerTool { - public static final String TYPE_ROOT = "blogs.root"; - public static final String TYPE_BLOG = "blogs.blog"; - public static final String TYPE_POST = "blogs.post"; - public static final String TYPE_UPLOADEDFILE = "blogs.uploaded"; + public static final String NAME = "blogs"; + public static final String TYPE_ROOT = NAME + "." + "root"; + public static final String TYPE_BLOG = NAME + "." + "blog"; + public static final String TYPE_POST = NAME + "." + "post"; + public static final String TYPE_UPLOADEDFILE = NAME + "." + ServerTool.UPLOADEDFILE_SUFFIX; - public static final String NAME = "blogs"; public static final String ROOT_NAME = "blogs"; private final ContentManager contentManager; @@ -92,14 +92,14 @@ final Container blog = containerManager.createFolder(group, rootFolder, i18n.t("Blog sample"), language, TYPE_BLOG); - final Content descriptor = contentManager.createContent(i18n.t("A post sample"), "", user, blog, + final Content content = contentManager.createContent(i18n.t("A post sample"), "", user, blog, BlogServerTool.TYPE_POST); - descriptor.addAuthor(user); - descriptor.setLanguage(language); - descriptor.setTypeId(TYPE_POST); - descriptor.setStatus(ContentStatus.publishedOnline); + content.addAuthor(user); + content.setLanguage(language); + content.setTypeId(TYPE_POST); + content.setStatus(ContentStatus.publishedOnline); - contentManager.save(user, descriptor, + contentManager.save(user, content, i18n.t("This is only a post sample. You can edit it, and rename this post and this blog")); return group; } Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2008-11-26 13:41:04 UTC (rev 970) @@ -27,12 +27,12 @@ import org.ourproject.kune.workspace.client.themes.WsThemePresenter; public class DocumentClientTool extends FoldableAbstractClientTool { - public static final String TYPE_ROOT = "docs.root"; - public static final String TYPE_FOLDER = "docs.folder"; - public static final String TYPE_DOCUMENT = "docs.doc"; - public static final String TYPE_GALLERY = "docs.gallery"; - public static final String TYPE_UPLOADEDFILE = "docs.uploaded"; public static final String NAME = "docs"; + public static final String TYPE_ROOT = NAME + "." + "root"; + public static final String TYPE_FOLDER = NAME + "." + "folder"; + public static final String TYPE_DOCUMENT = NAME + "." + "doc"; + public static final String TYPE_GALLERY = NAME + "." + "gallery"; + public static final String TYPE_UPLOADEDFILE = NAME + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX; public DocumentClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector, final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws, Modified: trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java 2008-11-26 13:41:04 UTC (rev 970) @@ -19,6 +19,8 @@ */ package org.ourproject.kune.docs.server; +import java.util.Date; + import org.ourproject.kune.platf.client.errors.ContainerNotPermittedException; import org.ourproject.kune.platf.client.errors.ContentNotPermittedException; import org.ourproject.kune.platf.client.services.I18nTranslationService; @@ -40,17 +42,18 @@ import com.google.inject.Inject; public class DocumentServerTool implements ServerTool { - public static final String TYPE_ROOT = "docs.root"; - public static final String TYPE_FOLDER = "docs.folder"; - public static final String TYPE_DOCUMENT = "docs.doc"; - public static final String TYPE_GALLERY = "docs.gallery"; + public static final String NAME = "docs"; + public static final String TYPE_ROOT = NAME + "." + "root"; + public static final String TYPE_FOLDER = NAME + "." + "folder"; + public static final String TYPE_DOCUMENT = NAME + "." + "doc"; + public static final String TYPE_GALLERY = NAME + "." + "gallery"; + public static final String TYPE_UPLOADEDFILE = NAME + "." + ServerTool.UPLOADEDFILE_SUFFIX; + public static final String TYPE_BLOG = "docs.blog"; public static final String TYPE_POST = "docs.post"; public static final String TYPE_WIKI = "docs.wiki"; public static final String TYPE_WIKIPAGE = "docs.wikipage"; - public static final String TYPE_UPLOADEDFILE = "docs.uploaded"; - public static final String NAME = "docs"; public static final String ROOT_NAME = "documents"; private final ContentManager contentManager; @@ -94,13 +97,14 @@ group.setToolConfig(NAME, config); configurationManager.persist(config); final String longName = group.getLongName(); - final Content descriptor = contentManager.createContent(i18n.t("About [%s]", longName), "", user, rootFolder, + final Content content = contentManager.createContent(i18n.t("About [%s]", longName), "", user, rootFolder, DocumentServerTool.TYPE_DOCUMENT); - descriptor.addAuthor(user); - descriptor.setLanguage(user.getLanguage()); - descriptor.setTypeId(TYPE_DOCUMENT); - descriptor.setStatus(ContentStatus.publishedOnline); - group.setDefaultContent(descriptor); + content.addAuthor(user); + content.setLanguage(user.getLanguage()); + content.setTypeId(TYPE_DOCUMENT); + content.setStatus(ContentStatus.publishedOnline); + content.setPublishedOn(new Date()); + group.setDefaultContent(content); return group; } Added: trunk/src/main/java/org/ourproject/kune/gallery/Kune-Gallery.gwt.xml =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/Kune-Gallery.gwt.xml 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/gallery/Kune-Gallery.gwt.xml 2008-11-26 13:41:04 UTC (rev 970) @@ -0,0 +1,5 @@ +<!DOCTYPE document SYSTEM "src/main/java/gwt-module.dtd"> +<module> + <inherits name='org.ourproject.kune.platf.Kune-Platform' /> + <inherits name='org.ourproject.kune.workspace.Kune-Workspace' /> +</module> Added: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java 2008-11-26 13:41:04 UTC (rev 970) @@ -0,0 +1,109 @@ +/* + * + * Copyright (C) 2007-2008 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */package org.ourproject.kune.gallery.client; + +import static org.ourproject.kune.gallery.client.GalleryClientTool.TYPE_ALBUM; +import static org.ourproject.kune.gallery.client.GalleryClientTool.TYPE_ROOT; +import static org.ourproject.kune.gallery.client.GalleryClientTool.TYPE_UPLOADEDFILE; + +import org.ourproject.kune.gallery.client.cnt.GalleryViewer; +import org.ourproject.kune.platf.client.actions.ContentActionRegistry; +import org.ourproject.kune.platf.client.actions.ContextActionRegistry; +import org.ourproject.kune.platf.client.rpc.ContentServiceAsync; +import org.ourproject.kune.platf.client.rpc.GroupServiceAsync; +import org.ourproject.kune.platf.client.services.KuneErrorHandler; +import org.ourproject.kune.platf.client.state.Session; +import org.ourproject.kune.platf.client.state.StateManager; +import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils; +import org.ourproject.kune.platf.client.ui.upload.FileUploader; +import org.ourproject.kune.platf.client.utils.DeferredCommandWrapper; +import org.ourproject.kune.workspace.client.AbstractFoldableContentActions; +import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator; +import org.ourproject.kune.workspace.client.cxt.ContextPropEditor; +import org.ourproject.kune.workspace.client.editor.TextEditor; +import org.ourproject.kune.workspace.client.entitylogo.EntityLogo; +import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; + +import com.calclab.suco.client.ioc.Provider; + +public class GalleryClientActions extends AbstractFoldableContentActions { + public GalleryClientActions(final I18nUITranslationService i18n, final ContextNavigator contextNavigator, + final Session session, final StateManager stateManager, + final DeferredCommandWrapper deferredCommandWrapper, + final Provider<ContentServiceAsync> contentServiceProvider, + final Provider<GroupServiceAsync> groupServiceProvider, final Provider<FileUploader> fileUploaderProvider, + final ContentActionRegistry contentActionRegistry, final ContextActionRegistry contextActionRegistry, + final Provider<FileDownloadUtils> fileDownloadProvider, final EntityLogo entityLogo, + final Provider<TextEditor> textEditorProvider, final KuneErrorHandler errorHandler, + final GalleryViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider) { + super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider, + contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry, + contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider, + documentViewer, entityLogo); + } + + @Override + protected void createActions() { + final String[] all = { TYPE_ROOT, TYPE_ALBUM, TYPE_UPLOADEDFILE }; + final String[] containers = { TYPE_ROOT, TYPE_ALBUM }; + final String[] contentsModerated = { TYPE_UPLOADEDFILE }; + final String[] containersNoRoot = { TYPE_ALBUM }; + final String[] contents = { TYPE_UPLOADEDFILE }; + + String parentMenuTitle = i18n.t("File"); + String parentMenuTitleCtx = i18n.t("Album"); + + createNewContainerAction(TYPE_ALBUM, "images/nav/gallery_add.png", i18n.t("New sub-album"), parentMenuTitleCtx, + i18n.t("New"), i18n.t("New sub-album"), Position.ctx, TYPE_ALBUM); + createNewContainerAction(TYPE_ALBUM, "images/nav/gallery_add.png", i18n.t("New album"), parentMenuTitleCtx, + i18n.t("New"), i18n.t("New album"), Position.ctx, TYPE_ROOT); + + createContentModeratedActions(parentMenuTitle, contentsModerated); + + createContentRenameAction(parentMenuTitle, i18n.t("Rename"), contents); + createRenameContentInCtxAction(parentMenuTitleCtx, i18n.t("Rename"), containersNoRoot); + + // final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupCxt = + // createSetAsDefContent(parentMenuTitleCtx); + + createRefreshCntAction(parentMenuTitle, contents); + createRefreshCxtAction(parentMenuTitleCtx, containers); + + createSetAsDefContent(parentMenuTitle, contents); + + // 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); + + createTranslateAction(TYPE_ALBUM, TYPE_UPLOADEDFILE); + + createDelContainerAction("Delete folder", parentMenuTitleCtx, containersNoRoot); + createDelContentAction(parentMenuTitle, i18n.t("Delete"), contents); + } + + @Override + protected void createPostSessionInitActions() { + super.createUploadMediaAction(TYPE_ALBUM); + } +} Added: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java 2008-11-26 13:41:04 UTC (rev 970) @@ -0,0 +1,119 @@ +/* + * + * Copyright (C) 2007-2008 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */package org.ourproject.kune.gallery.client; + +import org.ourproject.kune.gallery.client.cnt.GalleryFolderContent; +import org.ourproject.kune.gallery.client.cnt.GalleryFolderContentPanel; +import org.ourproject.kune.gallery.client.cnt.GalleryFolderContentPresenter; +import org.ourproject.kune.gallery.client.cnt.GalleryFolderContentView; +import org.ourproject.kune.gallery.client.cnt.GalleryViewer; +import org.ourproject.kune.gallery.client.cnt.GalleryViewerPanel; +import org.ourproject.kune.gallery.client.cnt.GalleryViewerPresenter; +import org.ourproject.kune.gallery.client.cnt.GalleryViewerView; +import org.ourproject.kune.gallery.client.ctx.GalleryContext; +import org.ourproject.kune.gallery.client.ctx.GalleryContextPresenter; +import org.ourproject.kune.platf.client.actions.ContentActionRegistry; +import org.ourproject.kune.platf.client.actions.ContextActionRegistry; +import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar; +import org.ourproject.kune.platf.client.app.ToolGroup; +import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry; +import org.ourproject.kune.platf.client.rpc.ContentServiceAsync; +import org.ourproject.kune.platf.client.rpc.GroupServiceAsync; +import org.ourproject.kune.platf.client.services.I18nTranslationService; +import org.ourproject.kune.platf.client.services.KuneErrorHandler; +import org.ourproject.kune.platf.client.state.Session; +import org.ourproject.kune.platf.client.state.StateManager; +import org.ourproject.kune.platf.client.tool.ToolSelector; +import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils; +import org.ourproject.kune.platf.client.ui.upload.FileUploader; +import org.ourproject.kune.platf.client.utils.DeferredCommandWrapper; +import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator; +import org.ourproject.kune.workspace.client.cxt.ContextPropEditor; +import org.ourproject.kune.workspace.client.editor.TextEditor; +import org.ourproject.kune.workspace.client.entitylogo.EntityLogo; +import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; +import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; +import org.ourproject.kune.workspace.client.themes.WsThemePresenter; + +import com.calclab.suco.client.ioc.decorator.Singleton; +import com.calclab.suco.client.ioc.module.AbstractModule; +import com.calclab.suco.client.ioc.module.Factory; + +public class GalleryClientModule extends AbstractModule { + + @Override + public void onInstall() { + + register(ToolGroup.class, new Factory<GalleryClientTool>(GalleryClientTool.class) { + @Override + public GalleryClientTool create() { + $(GalleryClientActions.class); + return new GalleryClientTool($(I18nUITranslationService.class), $(ToolSelector.class), + $(WsThemePresenter.class), $(WorkspaceSkeleton.class), $(ContentCapabilitiesRegistry.class)); + } + }); + + register(ToolGroup.class, new Factory<GalleryClientActions>(GalleryClientActions.class) { + @Override + public GalleryClientActions create() { + return new GalleryClientActions($(I18nUITranslationService.class), $(ContextNavigator.class), + $(Session.class), $(StateManager.class), $(DeferredCommandWrapper.class), + $$(ContentServiceAsync.class), $$(GroupServiceAsync.class), $$(FileUploader.class), + $(ContentActionRegistry.class), $(ContextActionRegistry.class), $$(FileDownloadUtils.class), + $(EntityLogo.class), $$(TextEditor.class), $(KuneErrorHandler.class), $(GalleryViewer.class), + $$(ContextPropEditor.class)); + } + }); + + register(ToolGroup.class, new Factory<GalleryContext>(GalleryContext.class) { + @Override + public GalleryContext create() { + final GalleryContextPresenter presenter = new GalleryContextPresenter($(StateManager.class), + $$(ContextNavigator.class), $$(ContextPropEditor.class)); + return presenter; + } + }); + + register(Singleton.class, new Factory<GalleryViewer>(GalleryViewer.class) { + @Override + public GalleryViewer create() { + final GalleryViewerPresenter presenter = new GalleryViewerPresenter($(StateManager.class), + $(Session.class), $(I18nUITranslationService.class), $(ActionContentToolbar.class), + $(ContentActionRegistry.class), $$(FileDownloadUtils.class)); + final GalleryViewerView view = new GalleryViewerPanel($(WorkspaceSkeleton.class), + $(I18nTranslationService.class)); + presenter.init(view); + return presenter; + } + }); + + register(ToolGroup.class, new Factory<GalleryFolderContent>(GalleryFolderContent.class) { + @Override + public GalleryFolderContent create() { + final GalleryFolderContentPresenter presenter = new GalleryFolderContentPresenter( + $(StateManager.class), $(Session.class), $(ActionContentToolbar.class), + $(ContentActionRegistry.class), $(I18nTranslationService.class)); + final GalleryFolderContentView view = new GalleryFolderContentPanel($(WorkspaceSkeleton.class), + $(I18nTranslationService.class)); + presenter.init(view); + return presenter; + } + }); + } +} Added: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java 2008-11-26 13:41:04 UTC (rev 970) @@ -0,0 +1,62 @@ +/* + * + * Copyright (C) 2007-2008 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.ourproject.kune.gallery.client; + +import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry; +import org.ourproject.kune.platf.client.tool.FoldableAbstractClientTool; +import org.ourproject.kune.platf.client.tool.ToolSelector; +import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; +import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; +import org.ourproject.kune.workspace.client.themes.WsThemePresenter; + +public class GalleryClientTool extends FoldableAbstractClientTool { + public static final String NAME = "gallery"; + public static final String TYPE_ROOT = NAME + "." + "root"; + public static final String TYPE_ALBUM = NAME + "." + "album"; + public static final String TYPE_UPLOADEDFILE = NAME + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX; + + public GalleryClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector, + final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws, + ContentCapabilitiesRegistry contentCapabilitiesRegistry) { + super(NAME, i18n.t("gallery"), toolSelector, wsThemePresenter, ws, contentCapabilitiesRegistry); + + // registerAclEditableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE); + registerAuthorableTypes(TYPE_UPLOADEDFILE); + registerDragableTypes(TYPE_ALBUM, TYPE_UPLOADEDFILE); + registerDropableTypes(TYPE_ROOT, TYPE_ALBUM); + registerPublishModerableTypes(TYPE_UPLOADEDFILE); + registerRateableTypes(TYPE_UPLOADEDFILE); + registerRenamableTypes(TYPE_ALBUM, TYPE_UPLOADEDFILE); + registerTageableTypes(TYPE_UPLOADEDFILE); + registerTranslatableTypes(TYPE_ALBUM, TYPE_UPLOADEDFILE); + + registerIcons(); + } + + public String getName() { + return NAME; + } + + protected void registerIcons() { + registerContentTypeIcon(TYPE_ALBUM, "images/nav/gallery.png"); + registerUploadTypesAndMimes(TYPE_UPLOADEDFILE); + } + +} Added: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContent.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContent.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContent.java 2008-11-26 13:41:04 UTC (rev 970) @@ -0,0 +1,23 @@ +/* + * + * Copyright (C) 2007-2008 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.ourproject.kune.gallery.client.cnt; + +public interface GalleryFolderContent { +} Added: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPanel.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPanel.java 2008-11-26 13:41:04 UTC (rev 970) @@ -0,0 +1,33 @@ +/* + * + * Copyright (C) 2007-2008 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.ourproject.kune.gallery.client.cnt; + +import org.ourproject.kune.platf.client.services.I18nTranslationService; +import org.ourproject.kune.workspace.client.cnt.FoldableContentPanel; +import org.ourproject.kune.workspace.client.site.Site; +import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; + +public class GalleryFolderContentPanel extends FoldableContentPanel implements GalleryFolderContentView { + + public GalleryFolderContentPanel(WorkspaceSkeleton ws, I18nTranslationService i18n) { + super(ws, i18n); + super.setLabel("Folder properties, translations ..." + Site.IN_DEVELOPMENT); + } +} Added: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPresenter.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPresenter.java 2008-11-26 13:41:04 UTC (rev 970) @@ -0,0 +1,63 @@ +/* + * + * Copyright (C) 2007-2008 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.ourproject.kune.gallery.client.cnt; + +import org.ourproject.kune.gallery.client.GalleryClientTool; +import org.ourproject.kune.platf.client.actions.ActionRegistry; +import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar; +import org.ourproject.kune.platf.client.dto.ContainerDTO; +import org.ourproject.kune.platf.client.dto.StateContainerDTO; +import org.ourproject.kune.platf.client.dto.StateToken; +import org.ourproject.kune.platf.client.services.I18nTranslationService; +import org.ourproject.kune.platf.client.state.Session; +import org.ourproject.kune.platf.client.state.StateManager; +import org.ourproject.kune.workspace.client.cnt.FoldableContentPresenter; + +public class GalleryFolderContentPresenter extends FoldableContentPresenter implements GalleryFolderContent { + + private GalleryFolderContentView view; + private final I18nTranslationService i18n; + + public GalleryFolderContentPresenter(StateManager stateManager, Session session, ActionContentToolbar toolbar, + final ActionRegistry<StateToken> actionRegistry, I18nTranslationService i18n) { + super(GalleryClientTool.NAME, stateManager, session, toolbar, actionRegistry); + this.i18n = i18n; + } + + public void init(final GalleryFolderContentView view) { + super.init(view); + this.view = view; + } + + @Override + protected void setState(StateContainerDTO state) { + if (state.getTypeId().equals(GalleryClientTool.TYPE_ROOT)) { + ContainerDTO rootContainer = state.getRootContainer(); + if (rootContainer.getChilds().size() == 0 && rootContainer.getContents().size() == 0) { + view.setInfo(i18n.t("This gallery has no content")); + } else { + view.setInfo(""); + } + } else { + view.setInfo(""); + } + super.setState(state); + } +} Added: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentView.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentView.java 2008-11-26 13:41:04 UTC (rev 970) @@ -0,0 +1,25 @@ +/* + * + * Copyright (C) 2007-2008 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.ourproject.kune.gallery.client.cnt; + +import org.ourproject.kune.workspace.client.cnt.AbstractContentView; + +public interface GalleryFolderContentView extends AbstractContentView { +} Added: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewer.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewer.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewer.java 2008-11-26 13:41:04 UTC (rev 970) @@ -0,0 +1,25 @@ +/* + * + * Copyright (C) 2007-2008 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.ourproject.kune.gallery.client.cnt; + +import org.ourproject.kune.workspace.client.cnt.FoldableContent; + +public interface GalleryViewer extends FoldableContent { +} Added: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPanel.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPanel.java 2008-11-26 13:41:04 UTC (rev 970) @@ -0,0 +1,30 @@ +/* + * + * Copyright (C) 2007-2008 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.ourproject.kune.gallery.client.cnt; + +import org.ourproject.kune.platf.client.services.I18nTranslationService; +import org.ourproject.kune.workspace.client.cnt.FoldableContentPanel; +import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; + +public class GalleryViewerPanel extends FoldableContentPanel implements GalleryViewerView { + public GalleryViewerPanel(final WorkspaceSkeleton ws, I18nTranslationService i18n) { + super(ws, i18n); + } +} Added: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java 2008-11-26 13:41:04 UTC (rev 970) @@ -0,0 +1,83 @@ +/* + * + * Copyright (C) 2007-2008 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.ourproject.kune.gallery.client.cnt; + +import org.ourproject.kune.gallery.client.GalleryClientTool; +import org.ourproject.kune.platf.client.actions.ContentActionRegistry; +import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar; +import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO; +import org.ourproject.kune.platf.client.dto.StateContentDTO; +import org.ourproject.kune.platf.client.dto.StateToken; +import org.ourproject.kune.platf.client.state.Session; +import org.ourproject.kune.platf.client.state.StateManager; +import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils; +import org.ourproject.kune.platf.client.ui.download.ImageSize; +import org.ourproject.kune.workspace.client.cnt.FoldableContentPresenter; +import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; + +import com.calclab.suco.client.ioc.Provider; + +public class GalleryViewerPresenter extends FoldableContentPresenter implements GalleryViewer { + private GalleryViewerView view; + private final Provider<FileDownloadUtils> downloadProvider; + + public GalleryViewerPresenter(StateManager stateManager, Session session, I18nUITranslationService i18n, + ActionContentToolbar toolbar, ContentActionRegistry actionRegistry, + Provider<FileDownloadUtils> downloadProvider) { + super(GalleryClientTool.NAME, stateManager, session, toolbar, actionRegistry); + this.downloadProvider = downloadProvider; + } + + public void init(GalleryViewerView view) { + super.init(view); + this.view = view; + } + + @Override + protected void setState(StateContentDTO state) { + super.setState(state); + setContent(state, GalleryClientTool.TYPE_UPLOADEDFILE); + } + + private void setContent(StateContentDTO state, String uploadedfileType) { + String typeId = state.getTypeId(); + String contentBody = state.getContent(); + StateToken token = state.getStateToken(); + BasicMimeTypeDTO mimeType = state.getMimeType(); + if (typeId.equals(uploadedfileType)) { + if (mimeType != null) { + FileDownloadUtils fileDownloadUtils = downloadProvider.get(); + if (mimeType.getType().equals("image")) { + view.showImage(fileDownloadUtils.getImageUrl(token), fileDownloadUtils.getImageResizedUrl(token, + ImageSize.sized)); + } else if (mimeType.toString().equals("text/plain") || mimeType.toString().equals("application/pdf")) { + view.setContent(contentBody); + } else { + view.setContent(""); + } + } else { + view.setContent(""); + } + } else { + view.setContent(contentBody); + } + view.attach(); + } +} Added: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerView.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerView.java 2008-11-26 13:41:04 UTC (rev 970) @@ -0,0 +1,30 @@ +/* + * + * Copyright (C) 2007-2008 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.ourproject.kune.gallery.client.cnt; + +import org.ourproject.kune.workspace.client.cnt.AbstractContentView; + +public interface GalleryViewerView extends AbstractContentView { + + void setContent(String content); + + void showImage(String imageUrl, String imageResizedUrl); + +} Added: trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/GalleryContext.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/GalleryContext.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/GalleryContext.java 2008-11-26 13:41:04 UTC (rev 970) @@ -0,0 +1,24 @@ +/* + * + * Copyright (C) 2007-2008 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.ourproject.kune.gallery.client.ctx; + +public interface GalleryContext { + +} Added: trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/GalleryContextPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/GalleryContextPresenter.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/GalleryContextPresenter.java 2008-11-26 13:41:04 UTC (rev 970) @@ -0,0 +1,36 @@ +/* + * + * Copyright (C) 2007-2008 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.ourproject.kune.gallery.client.ctx; + +import org.ourproject.kune.gallery.client.GalleryClientTool; +import org.ourproject.kune.platf.client.state.StateManager; +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 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); + } +} Added: trunk/src/main/java/org/ourproject/kune/gallery/server/GalleryServerModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/server/GalleryServerModule.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/gallery/server/GalleryServerModule.java 2008-11-26 13:41:04 UTC (rev 970) @@ -0,0 +1,29 @@ +/* + * + * Copyright (C) 2007-2008 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.ourproject.kune.gallery.server; + +import com.google.inject.Binder; +import com.google.inject.Module; + +public class GalleryServerModule implements Module { + public void configure(final Binder binder) { + binder.bind(GalleryServerTool.class).asEagerSingleton(); + } +} Added: trunk/src/main/java/org/ourproject/kune/gallery/server/GalleryServerTool.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/gallery/server/GalleryServerTool.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/gallery/server/GalleryServerTool.java 2008-11-26 13:41:04 UTC (rev 970) @@ -0,0 +1,125 @@ +/* + * + * Copyright (C) 2007-2008 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.ourproject.kune.gallery.server; + +import org.ourproject.kune.platf.client.errors.ContainerNotPermittedException; +import org.ourproject.kune.platf.client.errors.ContentNotPermittedException; +import org.ourproject.kune.platf.client.services.I18nTranslationService; +import org.ourproject.kune.platf.server.content.ContainerManager; +import org.ourproject.kune.platf.server.domain.Container; +import org.ourproject.kune.platf.server.domain.Content; +import org.ourproject.kune.platf.server.domain.Group; +import org.ourproject.kune.platf.server.domain.ToolConfiguration; +import org.ourproject.kune.platf.server.domain.User; +import org.ourproject.kune.platf.server.manager.ToolConfigurationManager; +import org.ourproject.kune.platf.server.tool.ServerTool; +import org.ourproject.kune.platf.server.tool.ServerToolRegistry; +import org.ourproject.kune.platf.server.tool.ServerToolTarget; + +import com.google.inject.Inject; + +public class GalleryServerTool implements ServerTool { + public static final String NAME = "gallery"; + public static final String TYPE_ROOT = NAME + "." + "root"; + public static final String TYPE_ALBUM = NAME + "." + "album"; + public static final String TYPE_UPLOADEDFILE = NAME + "." + ServerTool.UPLOADEDFILE_SUFFIX; + + public static final String ROOT_NAME = "gallery"; + + private final ToolConfigurationManager configurationManager; + private final ContainerManager containerManager; + private final I18nTranslationService i18n; + + @Inject + public GalleryServerTool(final ContainerManager containerManager, + final ToolConfigurationManager configurationManager, final I18nTranslationService translationService) { + this.containerManager = containerManager; + this.configurationManager = configurationManager; + this.i18n = translationService; + } + + public void checkTypesBeforeContainerCreation(String parentTypeId, String typeId) { + checkContainerTypeId(parentTypeId, typeId); + } + + public void checkTypesBeforeContentCreation(String parentTypeId, String typeId) { + checkContentTypeId(parentTypeId, typeId); + } + + public String getName() { + return NAME; + } + + public String getRootName() { + return ROOT_NAME; + } + + public ServerToolTarget getTarget() { + return ServerToolTarget.forBoth; + } + + public Group initGroup(final User user, final Group group) { + final ToolConfiguration config = new ToolConfiguration(); + final Container rootFolder = containerManager.createRootFolder(group, NAME, ROOT_NAME, TYPE_ROOT); + config.setRoot(rootFolder); + group.setToolConfig(NAME, config); + configurationManager.persist(config); + + containerManager.createFolder(group, rootFolder, i18n.t("Album sample"), user.getLanguage(), TYPE_ALBUM); + return group; + } + + public void onCreateContainer(final Container container, final Container parent) { + } + + public void onCreateContent(final Content content, final Container parent) { + } + + @Inject + public void register(final ServerToolRegistry registry) { + registry.register(this); + } + + void checkContainerTypeId(final String parentTypeId, final String typeId) { + if (typeId.equals(TYPE_ALBUM)) { + // ok valid container + if ((typeId.equals(TYPE_ALBUM) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_ALBUM)))) { + // ok + } else { + throw new ContainerNotPermittedException(); + } + } else { + throw new ContainerNotPermittedException(); + } + } + + void checkContentTypeId(final String parentTypeId, final String typeId) { + if (typeId.equals(TYPE_UPLOADEDFILE)) { + // ok valid content + if (typeId.equals(TYPE_UPLOADEDFILE) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_ALBUM))) { + // ok + } else { + throw new ContentNotPermittedException(); + } + } else { + throw new ContentNotPermittedException(); + } + } +} Modified: trunk/src/main/java/org/ourproject/kune/platf/client/tool/FoldableAbstractClientTool.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/tool/FoldableAbstractClientTool.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/platf/client/tool/FoldableAbstractClientTool.java 2008-11-26 13:41:04 UTC (rev 970) @@ -6,6 +6,8 @@ import org.ourproject.kune.workspace.client.themes.WsThemePresenter; public abstract class FoldableAbstractClientTool extends AbstractClientTool { + public static final String UPLOADEDFILE_SUFFIX = "uploaded"; + protected final ContentCapabilitiesRegistry contentCapabilitiesRegistry; public FoldableAbstractClientTool(String shortName, String longName, ToolSelector toolSelector, @@ -71,18 +73,6 @@ contentCapabilitiesRegistry.getTranslatable().register(typeIds); } - protected void registerVersionableTypes(String... typeIds) { - contentCapabilitiesRegistry.getVersionable().register(typeIds); - } - - protected void registerXmppComentableTypes(String... typeIds) { - contentCapabilitiesRegistry.getXmppComentable().register(typeIds); - } - - protected void registerXmppNotifyCapableTypes(String... typeIds) { - contentCapabilitiesRegistry.getXmppNotificyCapable().register(typeIds); - } - protected void registerUploadTypesAndMimes(String typeUploadedfile) { registerContentTypeIcon(typeUploadedfile, new BasicMimeTypeDTO("image"), "images/nav/picture.png"); registerContentTypeIcon(typeUploadedfile, new BasicMimeTypeDTO("video"), "images/nav/film.png"); @@ -98,4 +88,16 @@ "images/nav/page_pps.png"); registerContentTypeIcon(typeUploadedfile, "images/nav/page.png"); } + + protected void registerVersionableTypes(String... typeIds) { + contentCapabilitiesRegistry.getVersionable().register(typeIds); + } + + protected void registerXmppComentableTypes(String... typeIds) { + contentCapabilitiesRegistry.getXmppComentable().register(typeIds); + } + + protected void registerXmppNotifyCapableTypes(String... typeIds) { + contentCapabilitiesRegistry.getXmppNotificyCapable().register(typeIds); + } } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/FileParams.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/FileParams.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/FileParams.java 2008-11-26 13:41:04 UTC (rev 970) @@ -24,4 +24,5 @@ String DOWNLOAD = "download"; String IMGSIZE = "imgsize"; String FILENAME = "filename"; + String TYPE_ID = "typeid"; } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/AbstractUploader.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/AbstractUploader.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/AbstractUploader.java 2008-11-26 13:41:04 UTC (rev 970) @@ -24,11 +24,12 @@ public class AbstractUploader { - public UrlParam[] genUploadParams(final String userhash, final String currentStateToken) { + public UrlParam[] genUploadParams(final String userhash, final String currentStateToken, final String typeId) { // Warning take into account param[size] - final UrlParam param[] = new UrlParam[2]; + final UrlParam param[] = new UrlParam[3]; param[0] = new UrlParam(FileParams.HASH, userhash); param[1] = new UrlParam(FileParams.TOKEN, currentStateToken); + param[2] = new UrlParam(FileParams.TYPE_ID, typeId); return param; } } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java 2008-11-26 13:41:04 UTC (rev 970) @@ -92,8 +92,8 @@ setPermittedExtensions(exts); } - public void setUploadParams(final String userhash, final String currentStateToken) { - dialog.setBaseParams(genUploadParams(userhash, currentStateToken)); + public void setUploadParams(final String userhash, final String currentStateToken, final String typeId) { + dialog.setBaseParams(genUploadParams(userhash, currentStateToken, typeId)); } public void show() { Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderPresenter.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderPresenter.java 2008-11-26 13:41:04 UTC (rev 970) @@ -20,6 +20,7 @@ import org.ourproject.kune.platf.client.dto.StateToken; import org.ourproject.kune.platf.client.state.Session; +import org.ourproject.kune.platf.client.tool.FoldableAbstractClientTool; import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator; import com.calclab.suco.client.ioc.Provider; @@ -40,14 +41,16 @@ public boolean checkFolderChange() { final StateToken currentFolderStateToken = session.getCurrentStateToken().clone().clearDocument(); if (sameContainer()) { - view.setUploadParams(session.getUserHash(), currentFolderStateToken.toString()); + view.setUploadParams(session.getUserHash(), currentFolderStateToken.toString(), + currentFolderStateToken.getTool() + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX); return true; } if (view.hasUploadingFiles()) { return false; } else { currentUploadStateToken = currentFolderStateToken; - view.setUploadParams(session.getUserHash(), currentFolderStateToken.toString()); + view.setUploadParams(session.getUserHash(), currentFolderStateToken.toString(), + currentFolderStateToken.getTool() + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX); return true; } } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderView.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderView.java 2008-11-26 13:41:04 UTC (rev 970) @@ -30,7 +30,7 @@ void setPermittedExtensions(String extensions); - void setUploadParams(String userhash, String currentUploadStateToken); + void setUploadParams(String userhash, String currentUploadStateToken, String typeId); void show(); Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java 2008-11-26 13:41:04 UTC (rev 970) @@ -90,8 +90,8 @@ @Authenticated @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group) @Transactional(type = TransactionType.READ_WRITE) - protected void createUploadedFile(String userHash, StateToken stateToken, String fileName, FileItem file) - throws Exception { + protected void createUploadedFile(String userHash, StateToken stateToken, String fileName, FileItem file, + String typeId) throws Exception { String mimeTypeS = file.getContentType(); File tmpOrigFile = File.createTempFile("logoOrig", ""); file.write(tmpOrigFile); Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java 2008-11-26 13:41:04 UTC (rev 970) @@ -25,7 +25,6 @@ import net.sf.json.JSONObject; import org.apache.commons.fileupload.FileItem; -import org.ourproject.kune.docs.server.DocumentServerTool; import org.ourproject.kune.platf.client.dto.StateToken; import org.ourproject.kune.platf.client.services.I18nTranslationService; import org.ourproject.kune.platf.client.ui.download.ImageSize; @@ -92,16 +91,16 @@ } @Override - protected void createUploadedFile(String userHash, StateToken stateToken, String fileName, FileItem file) - throws Exception { - createUploadedFileWrapped(userHash, stateToken, fileName, file); + protected void createUploadedFile(String userHash, StateToken stateToken, String fileName, FileItem file, + String typeId) throws Exception { + createUploadedFileWrapped(userHash, stateToken, fileName, file, typeId); } @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor, actionLevel = ActionLevel.container) @Transactional(type = TransactionType.READ_WRITE) Content createUploadedFileWrapped(final String userHash, final StateToken stateToken, final String fileName, - final FileItem fileUploadItem) throws Exception { + final FileItem fileUploadItem, String typeId) throws Exception { final String relDir = FileUtils.toDir(stateToken); final String absDir = kuneProperties.get(KuneProperties.UPLOAD_LOCATION) + relDir; fileManager.mkdir(absDir); @@ -127,7 +126,7 @@ user, AccessRol.Editor); final String preview = "Preview of this file (in development)"; final Content content = contentManager.createContent(FileUtils.getFileNameWithoutExtension(file.getName(), - extension), preview, user, container, DocumentServerTool.TYPE_UPLOADEDFILE); + extension), preview, user, container, typeId); content.setMimeType(basicMimeType); content.setFilename(file.getName()); return content; Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManagerAbstract.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManagerAbstract.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManagerAbstract.java 2008-11-26 13:41:04 UTC (rev 970) @@ -59,8 +59,8 @@ protected void beforeRespond(final HttpServletResponse response, final Writer w) throws IOException { } - protected void createUploadedFile(String userHash, StateToken stateToken, String fileName, FileItem file) - throws Exception { + protected void createUploadedFile(String userHash, StateToken stateToken, String fileName, FileItem file, + String typeId) throws Exception { } @Override @@ -88,6 +88,7 @@ final List fileItems = upload.parseRequest(req); String userHash = null; StateToken stateToken = null; + String typeId = null; String fileName = null; FileItem file = null; for (final Iterator iterator = fileItems.iterator(); iterator.hasNext();) { @@ -102,13 +103,17 @@ if (name.equals(FileParams.TOKEN)) { stateToken = new StateToken(value); } + if (name.equals(FileParams.TYPE_ID)) { + typeId = value; + } } else { fileName = item.getName(); - log.info("file: " + fileName + " fieldName: " + item.getFieldName() + " size: " + item.getSize()); + log.info("file: " + fileName + " fieldName: " + item.getFieldName() + " size: " + item.getSize() + + " typeId: " + typeId); file = item; } } - createUploadedFile(userHash, stateToken, fileName, file); + createUploadedFile(userHash, stateToken, fileName, file, typeId); onSuccess(response); } catch (final FileUploadException e) { onFileUploadException(response); Modified: trunk/src/main/java/org/ourproject/kune/platf/server/tool/ServerTool.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/tool/ServerTool.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/platf/server/tool/ServerTool.java 2008-11-26 13:41:04 UTC (rev 970) @@ -32,6 +32,9 @@ */ public interface ServerTool { + /* Same constant in client */ + public static final String UPLOADEDFILE_SUFFIX = "uploaded"; + void checkTypesBeforeContainerCreation(String parentTypeId, String typeId); void checkTypesBeforeContentCreation(String parentTypeId, String typeId); Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java 2008-11-26 13:41:04 UTC (rev 970) @@ -27,11 +27,11 @@ import org.ourproject.kune.workspace.client.themes.WsThemePresenter; public class WikiClientTool extends FoldableAbstractClientTool { - public static final String TYPE_ROOT = "wiki.root"; - public static final String TYPE_FOLDER = "wiki.folder"; - public static final String TYPE_WIKIPAGE = "wiki.wikipage"; - public static final String TYPE_UPLOADEDFILE = "wiki.uploaded"; public static final String NAME = "wiki"; + public static final String TYPE_ROOT = NAME + "." + "root"; + public static final String TYPE_FOLDER = NAME + "." + "folder"; + public static final String TYPE_WIKIPAGE = NAME + "." + "wikipage"; + public static final String TYPE_UPLOADEDFILE = NAME + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX; public WikiClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector, final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws, Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentPresenter.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentPresenter.java 2008-11-26 13:41:04 UTC (rev 970) @@ -19,7 +19,6 @@ */ package org.ourproject.kune.wiki.client.cnt; -import org.ourproject.kune.chat.client.ChatClientTool; import org.ourproject.kune.platf.client.actions.ActionRegistry; import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar; import org.ourproject.kune.platf.client.dto.ContainerDTO; @@ -49,7 +48,7 @@ @Override protected void setState(StateContainerDTO state) { - if (state.getTypeId().equals(ChatClientTool.TYPE_ROOT)) { + if (state.getTypeId().equals(WikiClientTool.TYPE_ROOT)) { ContainerDTO rootContainer = state.getRootContainer(); if (rootContainer.getChilds().size() == 0 && rootContainer.getContents().size() == 0) { view.setInfo(i18n.t("This wiki has no pages.")); Modified: trunk/src/main/java/org/ourproject/kune/wiki/server/WikiServerTool.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/wiki/server/WikiServerTool.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/wiki/server/WikiServerTool.java 2008-11-26 13:41:04 UTC (rev 970) @@ -19,6 +19,8 @@ */ package org.ourproject.kune.wiki.server; +import java.util.Date; + import org.ourproject.kune.platf.client.errors.ContainerNotPermittedException; import org.ourproject.kune.platf.client.errors.ContentNotPermittedException; import org.ourproject.kune.platf.client.services.I18nTranslationService; @@ -40,12 +42,12 @@ import com.google.inject.Inject; public class WikiServerTool implements ServerTool { - public static final String TYPE_ROOT = "wiki.root"; - public static final String TYPE_FOLDER = "wiki.folder"; - public static final String TYPE_WIKIPAGE = "wiki.wikipage"; - public static final String TYPE_UPLOADEDFILE = "wiki.uploaded"; + public static final String NAME = "wiki"; + public static final String TYPE_ROOT = NAME + "." + "root"; + public static final String TYPE_FOLDER = NAME + "." + "folder"; + public static final String TYPE_WIKIPAGE = NAME + "." + "wikipage"; + public static final String TYPE_UPLOADEDFILE = NAME + "." + ServerTool.UPLOADEDFILE_SUFFIX; - public static final String NAME = "wiki"; public static final String ROOT_NAME = "wiki"; private final ContentManager contentManager; @@ -111,6 +113,8 @@ } public void onCreateContent(final Content content, final Container parent) { + content.setStatus(ContentStatus.publishedOnline); + content.setPublishedOn(new Date()); } @Inject Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2008-11-26 13:41:04 UTC (rev 970) @@ -1,7 +1,5 @@ package org.ourproject.kune.workspace.client; -import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_UPLOADEDFILE; - import org.ourproject.kune.platf.client.actions.ActionEnableCondition; import org.ourproject.kune.platf.client.actions.ActionMenuItemDescriptor; import org.ourproject.kune.platf.client.actions.ActionToolbarButtonAndItemDescriptor; @@ -199,8 +197,8 @@ downloadCtx.setTextDescription(i18n.t("Download")); downloadCtx.setIconUrl("images/nav/download.png"); - contentActionRegistry.addAction(download, TYPE_UPLOADEDFILE); - contextActionRegistry.addAction(downloadCtx, TYPE_UPLOADEDFILE); + contentActionRegistry.addAction(download, typeUploadedfile); + contextActionRegistry.addAction(downloadCtx, typeUploadedfile); } protected ActionToolbarButtonDescriptor<StateToken> createEditAction(String... registerInTypes) { Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java 2008-11-26 13:41:04 UTC (rev 970) @@ -80,7 +80,7 @@ anchorLayoutPanel.add(entityTools, new AnchorLayoutData("100%")); // height: is 25 * number of tools :-( finding a way to make this // automatic - anchorLayoutPanel.add(entitySummary, new AnchorLayoutData("100% -" + 4 * 25)); + anchorLayoutPanel.add(entitySummary, new AnchorLayoutData("100% -" + 5 * 25)); mainFitPanel.add(anchorLayoutPanel); } Modified: trunk/src/test/java/org/ourproject/kune/platf/client/ui/dialogs/upload/FileUploaderPresenterTest.java =================================================================== --- trunk/src/test/java/org/ourproject/kune/platf/client/ui/dialogs/upload/FileUploaderPresenterTest.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/test/java/org/ourproject/kune/platf/client/ui/dialogs/upload/FileUploaderPresenterTest.java 2008-11-26 13:41:04 UTC (rev 970) @@ -6,6 +6,7 @@ import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; +import org.ourproject.kune.docs.client.DocumentClientTool; import org.ourproject.kune.platf.client.dto.StateToken; import org.ourproject.kune.platf.client.state.Session; import org.ourproject.kune.platf.client.ui.upload.FileUploaderPresenter; @@ -29,46 +30,53 @@ @Test public void testFirstAddFromDocInSameContainer() { - Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.tool.1.1")); + Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.docs.1.1")); assertTrue(presenter.checkFolderChange()); - Mockito.verify(view, Mockito.times(1)).setUploadParams(SOMEUSER_HASH, "group.tool.1"); + Mockito.verify(view, Mockito.times(1)).setUploadParams(SOMEUSER_HASH, "group.docs.1", + DocumentClientTool.TYPE_UPLOADEDFILE); } @Test public void testFirstAddInSameContainer() { - Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.tool.1")); + Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.docs.1")); assertTrue(presenter.checkFolderChange()); - Mockito.verify(view, Mockito.times(1)).setUploadParams(SOMEUSER_HASH, "group.tool.1"); + Mockito.verify(view, Mockito.times(1)).setUploadParams(SOMEUSER_HASH, "group.docs.1", + DocumentClientTool.TYPE_UPLOADEDFILE); } @Test public void testSomeAddsInDiffContainersButNotUploading() { - Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.tool.1")); + Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.docs.1")); assertTrue(presenter.checkFolderChange()); Mockito.stub(view.hasUploadingFiles()).toReturn(false); - Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.tool.2")); + Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.docs.2")); assertTrue(presenter.checkFolderChange()); - Mockito.verify(view, Mockito.times(1)).setUploadParams(SOMEUSER_HASH, "group.tool.1"); - Mockito.verify(view, Mockito.times(1)).setUploadParams(SOMEUSER_HASH, "group.tool.2"); + Mockito.verify(view, Mockito.times(1)).setUploadParams(SOMEUSER_HASH, "group.docs.1", + DocumentClientTool.TYPE_UPLOADEDFILE); + Mockito.verify(view, Mockito.times(1)).setUploadParams(SOMEUSER_HASH, "group.docs.2", + DocumentClientTool.TYPE_UPLOADEDFILE); } @Test public void testSomeAddsInDiffContainersButUploading() { - Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.tool.1")); + Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.docs.1")); assertTrue(presenter.checkFolderChange()); Mockito.stub(view.hasUploadingFiles()).toReturn(true); - Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.tool.2")); + Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.docs.2")); assertFalse(presenter.checkFolderChange()); - Mockito.verify(view, Mockito.times(1)).setUploadParams(SOMEUSER_HASH, "group.tool.1"); - Mockito.verify(view, Mockito.never()).setUploadParams(SOMEUSER_HASH, "group.tool.2"); + Mockito.verify(view, Mockito.times(1)).setUploadParams(SOMEUSER_HASH, "group.docs.1", + DocumentClientTool.TYPE_UPLOADEDFILE); + Mockito.verify(view, Mockito.never()).setUploadParams(SOMEUSER_HASH, "group.docs.2", + DocumentClientTool.TYPE_UPLOADEDFILE); } @Test public void testSomeAddsInSameContainer() { - Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.tool.1")); + Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.docs.1")); assertTrue(presenter.checkFolderChange()); - Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.tool.1")); + Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.docs.1")); assertTrue(presenter.checkFolderChange()); - Mockito.verify(view, Mockito.times(2)).setUploadParams(SOMEUSER_HASH, "group.tool.1"); + Mockito.verify(view, Mockito.times(2)).setUploadParams(SOMEUSER_HASH, "group.docs.1", + DocumentClientTool.TYPE_UPLOADEDFILE); } } Modified: trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManagerTest.java =================================================================== --- trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManagerTest.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManagerTest.java 2008-11-26 13:41:04 UTC (rev 970) @@ -44,7 +44,7 @@ @Test(expected = SessionExpiredException.class) public void testSessionExp() throws Exception { - manager.createUploadedFile("otherhash", null, null, null); + manager.createUploadedFile("otherhash", null, null, null, null); } @Ignore @@ -56,6 +56,6 @@ @Test(expected = UserMustBeLoggedException.class) public void testUserMustBeAuth() throws Exception { - manager.createUploadedFile(null, null, null, null); + manager.createUploadedFile(null, null, null, null, null); } } Modified: trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/FileUploadManagerTest.java =================================================================== --- trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/FileUploadManagerTest.java 2008-11-25 16:52:11 UTC (rev 969) +++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/FileUploadManagerTest.java 2008-11-26 13:41:04 UTC (rev 970) @@ -21,11 +21,11 @@ @Test(expected = SessionExpiredException.class) public void testSessionExp() throws Exception { - fileUploadManager.createUploadedFile("otherhash", null, null, null); + fileUploadManager.createUploadedFile("otherhash", null, null, null, null); } @Test(expected = UserMustBeLoggedException.class) public void testUserMustBeAuth() throws Exception { - fileUploadManager.createUploadedFile(null, null, null, null); + fileUploadManager.createUploadedFile(null, null, null, null, null); } }