r959 - in trunk: . src/main/java/org/ourproject/kune/platf/client/actions src/main/java/org/ourproject/kune/platf/client/actions/toolbar src/main/java/org/ourproject/kune/workspace/client/socialnet src/main/java/org/ourproject/kune/workspace/client/tags
Author: vjrj Date: 2008-11-21 16:36:46 +0100 (Fri, 21 Nov 2008) New Revision: 959 Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionAddCondition.java Modified: trunk/CREDITS trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionItem.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionRegistry.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/ContextActionRegistry.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/GroupActionRegistry.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/UserActionRegistry.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java Log: Complete - task Tags cloud Incomplete - task Use of new ActionDescriptionClass in SocialNetwork Modified: trunk/CREDITS =================================================================== --- trunk/CREDITS 2008-11-20 02:28:23 UTC (rev 958) +++ trunk/CREDITS 2008-11-21 15:36:46 UTC (rev 959) @@ -18,4 +18,4 @@ * Thanks to David Trigo and http://www.esperanto-es.net/ for suggest the name of 'kune' for our initiative: http://ourproject.org/forum/forum.php?thread_id=500&forum_id=469 -* and ourproject.org and xsto.info for sharing whit us their resources +* and ourproject.org and xsto.info for sharing with us their resources Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionAddCondition.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionAddCondition.java 2008-11-20 02:28:23 UTC (rev 958) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionAddCondition.java 2008-11-21 15:36:46 UTC (rev 959) @@ -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.platf.client.actions; + +public interface ActionAddCondition<T> { + boolean mustBeAdded(T item); +} Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java 2008-11-20 02:28:23 UTC (rev 958) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java 2008-11-21 15:36:46 UTC (rev 959) @@ -64,6 +64,9 @@ /** The enable condition. */ private ActionEnableCondition<T> enableCondition; + /** The must be added condition. */ + private ActionAddCondition<T> addCondition; + /** The id. */ private String id; @@ -133,6 +136,15 @@ } /** + * Gets the add condition. + * + * @return the add condition + */ + public ActionAddCondition<T> getAddCondition() { + return addCondition; + } + + /** * Gets the confirmation text. * * @return the confirmation text @@ -233,6 +245,16 @@ } /** + * Sets the add condition. + * + * @param addCondition + * the new add condition + */ + public void setAddCondition(final ActionAddCondition<T> addCondition) { + this.addCondition = addCondition; + } + + /** * Sets the confirmation text. * * @param confirmationText Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionItem.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionItem.java 2008-11-20 02:28:23 UTC (rev 958) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionItem.java 2008-11-21 15:36:46 UTC (rev 959) @@ -34,6 +34,11 @@ this.item = item; } + public boolean checkAdded() { + final ActionAddCondition<T> addCondition = action.getAddCondition(); + return addCondition != null ? addCondition.mustBeAdded(getItem()) : true; + } + public boolean checkEnabling() { final ActionEnableCondition<T> enableCondition = action.getEnableCondition(); return enableCondition != null ? enableCondition.mustBeEnabled(getItem()) : true; Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionRegistry.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionRegistry.java 2008-11-20 02:28:23 UTC (rev 958) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionRegistry.java 2008-11-21 15:36:46 UTC (rev 959) @@ -23,6 +23,7 @@ import org.ourproject.kune.platf.client.dto.AccessRightsDTO; public class ActionRegistry<T> { + private static final String GENERIC = "kgenacts"; private final HashMap<String, ActionCollection<T>> actions; @@ -30,13 +31,22 @@ actions = new HashMap<String, ActionCollection<T>>(); } - public void addAction(final ActionDescriptor<T> action, final String... typeIds) { + public void addAction(final ActionDescriptor<T> action) { + addAction(action, GENERIC); + } + + public void addAction(final ActionDescriptor<T> action, String... typeIds) { for (final String contentTypeId : typeIds) { final ActionCollection<T> actionColl = getActions(contentTypeId); actionColl.add(action); } } + public ActionItemCollection<T> getCurrentActions(final T item, final boolean isLogged, + final AccessRightsDTO rights, final boolean toolbarItems) { + return getCurrentActions(item, GENERIC, isLogged, rights, toolbarItems); + } + public ActionItemCollection<T> getCurrentActions(final T item, final String typeId, final boolean isLogged, final AccessRightsDTO rights, final boolean toolbarItems) { final ActionItemCollection<T> collection = new ActionItemCollection<T>(); @@ -60,10 +70,18 @@ return collection; } + public void removeAction(final ActionDescriptor<T> action) { + removeAction(GENERIC, action); + } + public void removeAction(final String typeId, final ActionDescriptor<T> action) { actions.get(typeId).remove(action); } + public int size() { + return actions.size(); + } + private ActionCollection<T> getActions(final String typeId) { ActionCollection<T> actionColl = actions.get(typeId); if (actionColl == null) { @@ -89,4 +107,4 @@ return rights.isVisible(); } } -} +} \ No newline at end of file Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ContextActionRegistry.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ContextActionRegistry.java 2008-11-20 02:28:23 UTC (rev 958) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ContextActionRegistry.java 2008-11-21 15:36:46 UTC (rev 959) @@ -21,5 +21,4 @@ import org.ourproject.kune.platf.client.dto.StateToken; public class ContextActionRegistry extends ActionRegistry<StateToken> { - } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/GroupActionRegistry.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/GroupActionRegistry.java 2008-11-20 02:28:23 UTC (rev 958) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/GroupActionRegistry.java 2008-11-21 15:36:46 UTC (rev 959) @@ -24,7 +24,4 @@ * The Class GroupActionRegistry stores actions over groups (mainly used in SN) */ public class GroupActionRegistry extends ActionRegistry<StateToken> { - - @Deprecated - public static final String GENERAL = "genActions"; } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/UserActionRegistry.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/UserActionRegistry.java 2008-11-20 02:28:23 UTC (rev 958) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/UserActionRegistry.java 2008-11-21 15:36:46 UTC (rev 959) @@ -27,7 +27,4 @@ * */ public class UserActionRegistry extends ActionRegistry<UserSimpleDTO> { - - public static final String GENERAL = "genActions"; - } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java 2008-11-20 02:28:23 UTC (rev 958) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java 2008-11-21 15:36:46 UTC (rev 959) @@ -59,13 +59,16 @@ public void setActions(final ActionItemCollection<T> actions) { for (final ActionItem<T> actionItem : actions) { final ActionDescriptor<T> action = actionItem.getAction(); - if (isToolbarMenu(action)) { - view.addMenuAction(actionItem, actionItem.checkEnabling()); - } else { - if (isToolbarButton(action)) { - view.addButtonAction(actionItem, actionItem.checkEnabling()); + if (actionItem.checkAdded()) { + if (isToolbarMenu(action)) { + view.addMenuAction(actionItem, actionItem.checkEnabling()); } else { - Log.error("Code error: Not an ActionMenuDescriptor or ActionButtonDescriptor: " + action.getText()); + if (isToolbarButton(action)) { + view.addButtonAction(actionItem, actionItem.checkEnabling()); + } else { + Log.error("Code error: Not an ActionMenuDescriptor or ActionButtonDescriptor: " + + action.getText()); + } } } } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java 2008-11-20 02:28:23 UTC (rev 958) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java 2008-11-21 15:36:46 UTC (rev 959) @@ -84,8 +84,8 @@ if (userBuddies != UserBuddiesDataDTO.NO_BUDDIES) { List<UserSimpleDTO> buddies = userBuddies.getBuddies(); for (UserSimpleDTO user : buddies) { - view.addBuddie(user, actionRegistry.getCurrentActions(user, UserActionRegistry.GENERAL, - session.isLogged(), new AccessRightsDTO(true, true, true), false)); + view.addBuddie(user, actionRegistry.getCurrentActions(user, session.isLogged(), + new AccessRightsDTO(true, true, true), false)); } boolean hasLocalBuddies = buddies.size() > 0; int numExtBuddies = userBuddies.getOtherExternalBuddies(); @@ -129,7 +129,7 @@ return !session.getCurrentUserInfo().getShortName().equals(item.getShortName()); } }); - actionRegistry.addAction(addAsBuddie, UserActionRegistry.GENERAL); + actionRegistry.addAction(addAsBuddie); final ActionMenuItemDescriptor<UserSimpleDTO> go = new ActionMenuItemDescriptor<UserSimpleDTO>( AccessRolDTO.Viewer, new Listener<UserSimpleDTO>() { @@ -140,6 +140,6 @@ go.setMustBeAuthenticated(false); go.setTextDescription(i18n.t("Visit this user homepage")); go.setIconUrl("images/group-home.gif"); - actionRegistry.addAction(go, UserActionRegistry.GENERAL); + actionRegistry.addAction(go); } } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2008-11-20 02:28:23 UTC (rev 958) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2008-11-21 15:36:46 UTC (rev 959) @@ -65,6 +65,8 @@ private final Session session; private final Provider<SocialNetworkServiceAsync> snServiceProvider; private final StateManager stateManager; + private final GroupActionRegistry groupActionRegistry; + private final Provider<GroupLiveSearcher> liveSearcherProvider; public GroupMembersSummaryPresenter(final I18nUITranslationService i18n, final StateManager stateManager, final ImageUtils imageUtils, final Session session, @@ -77,12 +79,14 @@ this.stateManager = stateManager; this.session = session; this.snServiceProvider = snServiceProvider; + this.liveSearcherProvider = liveSearcherProvider; + this.groupActionRegistry = groupActionRegistry; final Listener<StateAbstractDTO> setStateListener = new Listener<StateAbstractDTO>() { public void onEvent(StateAbstractDTO state) { setState(state); toolbar.disableMenusAndClearButtons(); toolbar.setActions(groupActionRegistry.getCurrentActions(state.getGroup().getStateToken(), - GroupActionRegistry.GENERAL, session.isLogged(), state.getGroupRights(), true)); + session.isLogged(), state.getGroupRights(), true)); toolbar.attach(); } }; @@ -120,6 +124,27 @@ imageUtils.getImageHtml(ImageDescriptor.alert), true); super.addGroupOperation(gotoGroupMenuItem, false); super.addUserOperation(gotoMemberMenuItem, false); + createActions(); + } + + public void addCollab(final String groupShortName) { + Site.showProgressProcessing(); + snServiceProvider.get().addCollabMember(session.getUserHash(), session.getCurrentState().getStateToken(), + groupShortName, new AsyncCallbackSimple<SocialNetworkResultDTO>() { + public void onSuccess(final SocialNetworkResultDTO result) { + Site.hideProgress(); + Site.info(i18n.t("Member added as collaborator")); + stateManager.setSocialNetwork(result); + } + + }); + } + + public void init(final GroupMembersSummaryView view) { + this.view = view; + } + + private void createActions() { ActionToolbarMenuDescriptor<StateToken> addMember = new ActionToolbarMenuDescriptor<StateToken>( AccessRolDTO.Administrator, ActionToolbarPosition.bottombar, new Listener<StateToken>() { public void onEvent(StateToken parameter) { @@ -135,30 +160,31 @@ addMember.setTextDescription(i18n.t("Add member")); addMember.setToolTip(i18n.t("Add a group or a person as member of this group")); addMember.setParentMenuTitle(i18n.t("Options")); - groupActionRegistry.addAction(addMember, GroupActionRegistry.GENERAL); + + groupActionRegistry.addAction(addMember); + groupActionRegistry.addAction(unJoin); + + groupActionRegistry.addAction(participate); + createShowAction(i18n.t("anyone")); + createShowAction(i18n.t("only members")); + createShowAction(i18n.t("only admins")); } - public void addCollab(final String groupShortName) { - Site.showProgressProcessing(); - snServiceProvider.get().addCollabMember(session.getUserHash(), session.getCurrentState().getStateToken(), - groupShortName, new AsyncCallbackSimple<SocialNetworkResultDTO>() { - public void onSuccess(final SocialNetworkResultDTO result) { - Site.hideProgress(); - Site.info(i18n.t("Member added as collaborator")); - stateManager.setSocialNetwork(result); + private void createShowAction(String textDescription) { + ActionToolbarMenuDescriptor<StateToken> showMembersToAll = new ActionToolbarMenuDescriptor<StateToken>( + AccessRolDTO.Administrator, ActionToolbarPosition.bottombar, new Listener<StateToken>() { + public void onEvent(StateToken parameter) { + Site.info("In development"); } - }); + // showMembersToAll.setIconUrl("images/add-green.gif"); + showMembersToAll.setTextDescription(textDescription); + // showMembersToAll.setToolTip(i18n.t("Add a group or a person as member of this group")); + showMembersToAll.setParentMenuTitle(i18n.t("Options")); + showMembersToAll.setParentSubMenuTitle(i18n.t("Who can view this member list")); + groupActionRegistry.addAction(showMembersToAll); } - public void init(final GroupMembersSummaryView view) { - this.view = view; - } - - private boolean isMember(final boolean userIsAdmin, final boolean userIsCollab) { - return userIsAdmin || userIsCollab; - } - @SuppressWarnings("unchecked") private void setGroupMembers(final SocialNetworkDTO socialNetwork, final AccessRightsDTO rights) { final AccessListsDTO accessLists = socialNetwork.getAccessLists(); @@ -167,23 +193,15 @@ final List<GroupDTO> collabList = accessLists.getEditors().getList(); final List<GroupDTO> pendingCollabsList = socialNetwork.getPendingCollaborators().getList(); - final int numAdmins = adminsList.size(); + // final int numAdmins = adminsList.size(); boolean userIsAdmin = rights.isAdministrable(); - final boolean userIsCollab = !userIsAdmin && rights.isEditable(); final boolean userCanView = rights.isVisible(); - boolean userIsMember = isMember(userIsAdmin, userIsCollab); view.clear(); view.setDraggable(session.isLogged()); - if (!userIsMember) { - - } else if (userIsAdmin && numAdmins > 1 || userIsCollab) { - // FIXME: view.addButton(unJoinButton); - } - if (userCanView) { for (final GroupDTO admin : adminsList) { view.addItem(createGridItem(adminCategory, admin, rights, changeToCollabMenuItem, removeMemberMenuItem)); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java 2008-11-20 02:28:23 UTC (rev 958) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java 2008-11-21 15:36:46 UTC (rev 959) @@ -18,6 +18,7 @@ * */package org.ourproject.kune.workspace.client.socialnet; +import org.ourproject.kune.platf.client.actions.ActionAddCondition; import org.ourproject.kune.platf.client.actions.ActionToolbarButtonDescriptor; import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor; import org.ourproject.kune.platf.client.actions.ActionToolbarPosition; @@ -65,8 +66,10 @@ private final ImageUtils imageUtils; private final MenuItemCollection<GroupDTO> otherOperationsUsers; private final MenuItemCollection<GroupDTO> otherLoggedOperationsUsers; - private final GroupActionRegistry groupActionRegistry; + protected ActionToolbarMenuDescriptor<StateToken> unJoin; + protected ActionToolbarButtonDescriptor<StateToken> participate; + public SocialNetworkPresenter(final I18nUITranslationService i18n, final StateManager stateManager, final ImageUtils imageUtils, final Session session, final Provider<SocialNetworkServiceAsync> snServiceProvider, GroupActionRegistry groupActionRegistry) { @@ -75,7 +78,6 @@ this.imageUtils = imageUtils; this.session = session; this.snServiceProvider = snServiceProvider; - this.groupActionRegistry = groupActionRegistry; createButtons(); createMenuActions(); otherOperationsUsers = new MenuItemCollection<GroupDTO>(); @@ -125,9 +127,15 @@ return gridItem; } + protected boolean isMember(AccessRightsDTO rights) { + boolean userIsAdmin = rights.isAdministrable(); + final boolean userIsCollab = !userIsAdmin && rights.isEditable(); + return isMember(userIsAdmin, userIsCollab); + } + private void createButtons() { - ActionToolbarButtonDescriptor<StateToken> participate = new ActionToolbarButtonDescriptor<StateToken>( - AccessRolDTO.Viewer, ActionToolbarPosition.bottombar, new Listener<StateToken>() { + participate = new ActionToolbarButtonDescriptor<StateToken>(AccessRolDTO.Viewer, + ActionToolbarPosition.bottombar, new Listener<StateToken>() { public void onEvent(StateToken parameter) { Site.showProgressProcessing(); snServiceProvider.get().requestJoinGroup(session.getUserHash(), @@ -155,9 +163,14 @@ participate.setTextDescription(i18n.t("Participate")); participate.setToolTip(i18n.t("Request to participate in this group")); participate.setMustBeAuthenticated(false); + participate.setAddCondition(new ActionAddCondition<StateToken>() { + public boolean mustBeAdded(StateToken token) { + return !isMember(session.getCurrentState().getGroupRights()); + } + }); - ActionToolbarMenuDescriptor<StateToken> unJoin = new ActionToolbarMenuDescriptor<StateToken>( - AccessRolDTO.Editor, ActionToolbarPosition.bottombar, new Listener<StateToken>() { + unJoin = new ActionToolbarMenuDescriptor<StateToken>(AccessRolDTO.Editor, ActionToolbarPosition.bottombar, + new Listener<StateToken>() { public void onEvent(StateToken parameter) { removeMemberAction(); } @@ -169,8 +182,6 @@ unJoin.setMustBeConfirmed(true); unJoin.setConfirmationTitle(i18n.t("Unjoin this group")); unJoin.setConfirmationText(i18n.t("Are you sure?")); - groupActionRegistry.addAction(participate, GroupActionRegistry.GENERAL); - groupActionRegistry.addAction(unJoin, GroupActionRegistry.GENERAL); } private GridItem<GroupDTO> createDefMemberMenu(final GroupDTO group, final GridGroup gridGroup) { @@ -303,6 +314,10 @@ }); } + private boolean isMember(final boolean userIsAdmin, final boolean userIsCollab) { + return userIsAdmin || userIsCollab; + } + private void removeMemberAction() { removeMemberAction(session.getCurrentState().getGroup()); } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java 2008-11-20 02:28:23 UTC (rev 958) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java 2008-11-21 15:36:46 UTC (rev 959) @@ -38,7 +38,7 @@ public class TagsSummaryPresenter implements TagsSummary { - private static final int MINSIZE = 12; + private static final int MINSIZE = 11; private static final int MAXSIZE = 26; private TagsSummaryView view;
participants (1)
-
vjrj