/* * * Copyright (C) 2007-2015 Licensed to the Comunes Association (CA) under * one or more contributor license agreements (see COPYRIGHT for details). * The CA licenses this file to you under the GNU Affero General Public * License version 3, (the "License"); you may not use this file except in * compliance with the License. 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.tasks.client.actions; import static cc.kune.gspace.client.actions.ActionGroups.*; import static cc.kune.tasks.shared.TasksToolConstants.*; import cc.kune.chat.client.actions.ChatAboutContentBtn; import cc.kune.common.client.actions.ui.descrip.MenuDescriptor; import cc.kune.common.shared.i18n.I18n; import cc.kune.core.client.actions.ActionRegistryByType; import cc.kune.core.client.registry.NewMenusForTypeIdsRegistry; import cc.kune.core.client.resources.CoreResources; import cc.kune.core.client.state.Session; import cc.kune.core.shared.domain.ContentStatus; import cc.kune.gspace.client.actions.AbstractFoldableToolActions; import cc.kune.gspace.client.actions.ContentViewerOptionsMenu; import cc.kune.gspace.client.actions.CopyContentMenuItem; import cc.kune.gspace.client.actions.MoveContentMenuItem; import cc.kune.gspace.client.actions.ParticipateInContentBtn; import cc.kune.gspace.client.actions.PurgeContainerBtn; import cc.kune.gspace.client.actions.PurgeContainerMenuItem; import cc.kune.gspace.client.actions.PurgeContentBtn; import cc.kune.gspace.client.actions.PurgeContentMenuItem; import cc.kune.gspace.client.actions.RefreshContentMenuItem; import cc.kune.gspace.client.actions.SetAsHomePageMenuItem; import cc.kune.gspace.client.actions.TutorialBtn; import cc.kune.gspace.client.actions.WriteToParticipantsMenuItem; import cc.kune.gspace.client.actions.share.AddAdminMembersToContentMenuItem; import cc.kune.gspace.client.actions.share.AddAllMembersToContentMenuItem; import cc.kune.gspace.client.actions.share.AddCollabMembersToContentMenuItem; import cc.kune.gspace.client.actions.share.ShareDialogMenuItem; import cc.kune.gspace.client.actions.share.ShareInHelper; import cc.kune.gspace.client.actions.share.ShareMenu; import cc.kune.trash.shared.TrashToolConstants; import com.google.inject.Inject; import com.google.inject.Provider; public class TasksClientActions extends AbstractFoldableToolActions { final String[] all = { TYPE_ROOT, TYPE_FOLDER, TYPE_TASK }; final String[] containers = { TYPE_ROOT, TYPE_FOLDER }; final String[] containersNoRoot = { TYPE_FOLDER }; final String[] contents = { TYPE_TASK }; final String[] noRoot = { TYPE_FOLDER, TYPE_TASK }; @SuppressWarnings("unchecked") @Inject public TasksClientActions(final Session session, final ActionRegistryByType registry, final CoreResources res, final Provider<GoParentFolderBtn> folderGoUp, final Provider<NewTaskMenuItem> newTaskItem, final Provider<NewTaskIconBtn> newTaskIconBtn, final Provider<NewFolderBtn> newFolderBtn, final Provider<OpenFolderMenuItem> openContentMenuItem, final Provider<MarkAsDoneTaskMenuItem> marksAsDoneMenuItem, final Provider<MarkAsNotDoneTaskMenuItem> marksAsNotDoneMenuItem, final Provider<RefreshContentMenuItem> refresh, final Provider<ContentViewerOptionsMenu> optionsMenuContent, final Provider<ShareMenu> shareMenuContent, final Provider<ParticipateInContentBtn> participateBtn, final Provider<TutorialBtn> tutorialBtn, final Provider<DelTaskMenuItem> delContentMenuItem, final Provider<AddAllMembersToContentMenuItem> addAllMenuItem, final Provider<AddAdminMembersToContentMenuItem> addAdminMembersMenuItem, final Provider<AddCollabMembersToContentMenuItem> addCollabMembersMenuItem, final Provider<PurgeContentMenuItem> purgeMenuItem, final Provider<PurgeContentBtn> purgeBtn, final Provider<PurgeContainerMenuItem> purgeFolderMenuItem, final Provider<PurgeContainerBtn> purgeFolderBtn, final Provider<ChatAboutContentBtn> chatAbout, final Provider<CopyContentMenuItem> copyContent, final Provider<WriteToParticipantsMenuItem> writeToParticipants, final TasksFolderNewMenu taskFolderNewMenu, final TasksNewMenu taskNewMenu, final NewMenusForTypeIdsRegistry newMenusRegistry, final Provider<DelFolderMenuItem> delFolderMenuItem, final Provider<MoveContentMenuItem> moveContentMenuItem, final Provider<SetAsHomePageMenuItem> setAsHomePage, final Provider<ShareDialogMenuItem> shareSettings, final ShareInHelper shareIHelper) { super(TOOL_NAME, session, registry); add(DOC_TOP_TOOLBAR, all, newTaskIconBtn); add(DOC_TOP_TOOLBAR, contents, taskNewMenu); add(DOC_TOP_TOOLBAR, containers, newFolderBtn); add(DOC_TOP_TOOLBAR, all, tutorialBtn); add(GROUP_HEADER_BOTTOM_BAR, contents, folderGoUp); add(GROUP_HEADER_BOTTOM_BAR, containers, folderGoUp); add(DOC_HEADER_BAR, all, shareMenuContent); add(DOC_HEADER_BAR, all, optionsMenuContent, refresh); add(DOC_HEADER_BAR, contents, shareIHelper.getShareInWaves()); add(DOC_HEADER_BAR, contents, addAllMenuItem, addAdminMembersMenuItem, addCollabMembersMenuItem); add(DOC_HEADER_BAR, all, shareIHelper.getShareInAll()); add(DOC_HEADER_BAR, contents, shareSettings, participateBtn, chatAbout, copyContent, writeToParticipants); add(TOOL_NAME, ITEM_MENU, marksAsDoneMenuItem, ContentStatus.publishedOnline, TYPE_TASK); add(TOOL_NAME, ITEM_MENU, marksAsDoneMenuItem, ContentStatus.editingInProgress, TYPE_TASK); add(TOOL_NAME, ITEM_MENU, marksAsNotDoneMenuItem, ContentStatus.inTheDustbin, TYPE_TASK); add(ITEM_MENU, contents, openContentMenuItem, moveContentMenuItem); add(ITEM_MENU, containersNoRoot, openContentMenuItem, moveContentMenuItem); add(ITEM_MENU, containersNoRoot, delFolderMenuItem); add(ITEM_MENU, contents, delContentMenuItem, addAllMenuItem, addAdminMembersMenuItem, addCollabMembersMenuItem, copyContent, writeToParticipants); add(TrashToolConstants.TOOL_NAME, DOC_TOP_TOOLBAR, contents, purgeBtn); add(TrashToolConstants.TOOL_NAME, DOC_TOP_TOOLBAR, containersNoRoot, purgeFolderBtn); add(TrashToolConstants.TOOL_NAME, ITEM_MENU, contents, purgeMenuItem, moveContentMenuItem); add(TrashToolConstants.TOOL_NAME, ITEM_MENU, containersNoRoot, purgeFolderMenuItem, moveContentMenuItem); // Currently new menu in folders has no sense (because we have buttons for // the same contents) // newMenusRegistry.register(TYPE_FOLDER, taskFolderNewMenu.get()); // newMenusRegistry.register(TYPE_ROOT, taskFolderNewMenu.get()); newMenusRegistry.register(TYPE_TASK, (MenuDescriptor) taskNewMenu.get().withText(I18n.t("Add Gadget"))); } @Override protected void createPostSessionInitActions() { } }