Author: vjrj Date: 2008-07-21 16:30:36 +0200 (Mon, 21 Jul 2008) New Revision: 812 Added: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java Modified: trunk/src/main/java/org/ourproject/kune/app/public/Kune.html trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationBuilder.java trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java trunk/src/main/java/org/ourproject/kune/platf/client/state/ContentProviderImpl.java trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryView.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/ParticipationSummaryPanel.java Log: new ParticipationSummary Modified: trunk/src/main/java/org/ourproject/kune/app/public/Kune.html =================================================================== --- trunk/src/main/java/org/ourproject/kune/app/public/Kune.html 2008-07-21 02:46:08 UTC (rev 811) +++ trunk/src/main/java/org/ourproject/kune/app/public/Kune.html 2008-07-21 14:30:36 UTC (rev 812) @@ -131,7 +131,7 @@ src="org.ourproject.kune.app.Kune.nocache.js"></script> <iframe id="__gwt_historyFrame" style="width: 0; height: 0; border: 0"></iframe> <div id="kuneprogresspanel" class="kune-sitebar"> -<table cellspacing="0" summary="Loading" cellpadding="0" border="0" +<table cellspacing="0" summary="Starting" cellpadding="0" border="0" style="height: 16px;"> <tbody> <tr> @@ -140,7 +140,7 @@ src="images/spin-kune-thund-green.gif" style="height: 16px; width: 16px;" /></td> <td align="left" style="vertical-align: top;" class="kune-Progress"> - <div class="kune-SiteBarPanel gwt-Label" id="kuneprogresstext">Loading</div> + <div class="kune-SiteBarPanel gwt-Label" id="kuneprogresstext">Starting</div> </td> <td width="100%" height="16" align="left" style="vertical-align: top;"></td> Modified: trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationBuilder.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationBuilder.java 2008-07-21 02:46:08 UTC (rev 811) +++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationBuilder.java 2008-07-21 14:30:36 UTC (rev 812) @@ -56,7 +56,7 @@ final Session session = kune.getSession(); - Site.showProgressLoading(); + Site.showProgressStarting(); final KunePlatform platform = kune.getPlatform(); final StateManager stateManager = kune.getStateManager(); Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-07-21 02:46:08 UTC (rev 811) +++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-07-21 14:30:36 UTC (rev 812) @@ -179,12 +179,12 @@ }, SingletonScope.class); final WorkspaceSkeleton ws = builder.getInstance(WorkspaceSkeleton.class); + final Images images = builder.getInstance(Images.class); builder.registerProvider(SitePublicSpaceLink.class, new Provider<SitePublicSpaceLink>() { public SitePublicSpaceLink get() { final SitePublicSpaceLinkPresenter presenter = new SitePublicSpaceLinkPresenter(); - final SitePublicSpaceLinkPanel panel = new SitePublicSpaceLinkPanel(presenter, ws, i18n, builder - .getInstance(Images.class)); + final SitePublicSpaceLinkPanel panel = new SitePublicSpaceLinkPanel(presenter, ws, i18n, images); presenter.init(panel); return presenter; } @@ -368,7 +368,9 @@ builder.registerProvider(ParticipationSummary.class, new Provider<ParticipationSummary>() { public ParticipationSummary get() { - final ParticipationSummaryPresenter presenter = new ParticipationSummaryPresenter(i18n); + final ParticipationSummaryPresenter presenter = new ParticipationSummaryPresenter(i18n, builder + .getProvider(StateManager.class), builder.getInstance(ImageUtils.class), builder + .getInstance(Session.class), SocialNetworkService.App.getInstance()); final ParticipationSummaryView view = new ParticipationSummaryPanel(presenter, i18n, ws); presenter.init(view); return presenter; Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/ContentProviderImpl.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/state/ContentProviderImpl.java 2008-07-21 02:46:08 UTC (rev 811) +++ trunk/src/main/java/org/ourproject/kune/platf/client/state/ContentProviderImpl.java 2008-07-21 14:30:36 UTC (rev 812) @@ -35,26 +35,26 @@ private final HashMap<StateToken, StateDTO> cache; public ContentProviderImpl(final ContentServiceAsync server) { - this.server = server; - this.cache = new HashMap<StateToken, StateDTO>(); + this.server = server; + this.cache = new HashMap<StateToken, StateDTO>(); } public void cache(final StateToken encodeState, final StateDTO content) { - cache.put(encodeState, content); + cache.put(encodeState, content); } public void getContent(final String user, final StateToken newState, final AsyncCallback<StateDTO> callback) { - Site.showProgressProcessing(); - StateDTO catched = getCached(newState); - if (catched != null) { - callback.onSuccess(catched); - } else { - server.getContent(user, newState.getGroup(), newState, callback); - } + Site.showProgressLoading(); + final StateDTO catched = getCached(newState); + if (catched != null) { + callback.onSuccess(catched); + } else { + server.getContent(user, newState.getGroup(), newState, callback); + } } private StateDTO getCached(final StateToken newState) { - return cache.remove(newState); + return cache.remove(newState); } } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPresenter.java 2008-07-21 02:46:08 UTC (rev 811) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPresenter.java 2008-07-21 14:30:36 UTC (rev 812) @@ -46,10 +46,11 @@ } public void doSearch(final String text) { + Site.showProgressLoading(); searchHistory.put(text, null); - Site.hideProgress(); view.search(text, currentSearch); view.show(); + Site.hideProgress(); } public void doSearchOfType(final String text, final SiteSearcherType typeOfSearch) { Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java 2008-07-21 02:46:08 UTC (rev 811) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java 2008-07-21 14:30:36 UTC (rev 812) @@ -84,6 +84,10 @@ progress.showProgress(i18n.t("Saving")); } + public static void showProgressStarting() { + progress.showProgress(i18n.t("Starting")); + } + public static void veryImportant(final String value) { getSiteMessage().setMessage(value, SiteErrorType.veryimp); } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java 2008-07-21 02:46:08 UTC (rev 811) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java 2008-07-21 14:30:36 UTC (rev 812) @@ -12,6 +12,7 @@ import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton; import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme; +import com.allen_sauer.gwt.log.client.Log; import com.gwtext.client.core.EventObject; import com.gwtext.client.widgets.BoxComponent; import com.gwtext.client.widgets.Button; @@ -51,6 +52,7 @@ } public void addButton(final GridButton gridButton) { + // Workaround: gwt-ext don't have toolbar.removeItem method ... ToolbarButton button = buttonsCache.get(gridButton); if (button == null) { button = new ToolbarButton(gridButton.getTitle()); @@ -61,10 +63,11 @@ gridButton.getSlot().onEvent(""); } }); + buttonsCache.put(gridButton, button); + } else { + button.setVisible(true); } - if (!button.isAttached()) { - gridMenuPanel.getBottomBar().addButton(button); - } + gridMenuPanel.getBottomBar().addButton(button); } public void addItem(final GridItem<GroupDTO> gridItem) { @@ -74,6 +77,9 @@ public void clear() { gridMenuPanel.removeAll(); for (final ToolbarButton button : buttonsCache.values()) { + // Workaround: gwt-ext don't have toolbar.removeItem method ... + // gridMenuPanel.getBottomBar().getEl().removeChild(button.getElement()); + button.setVisible(false); button.removeFromParent(); } } @@ -99,6 +105,7 @@ } public void setVisible(final boolean visible) { + Log.debug("Set visible: " + visible + " in GroupMembers"); super.setVisible(visible); } } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java 2008-07-21 02:46:08 UTC (rev 811) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java 2008-07-21 14:30:36 UTC (rev 812) @@ -9,68 +9,46 @@ import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO; import org.ourproject.kune.platf.client.dto.StateDTO; import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple; -import org.ourproject.kune.platf.client.rpc.SocialNetworkService; import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync; -import org.ourproject.kune.platf.client.services.I18nTranslationService; import org.ourproject.kune.platf.client.services.ImageDescriptor; import org.ourproject.kune.platf.client.services.ImageUtils; import org.ourproject.kune.platf.client.state.Session; import org.ourproject.kune.platf.client.state.StateManager; -import org.ourproject.kune.platf.client.ui.gridmenu.GridButton; import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup; -import org.ourproject.kune.platf.client.ui.gridmenu.GridItem; -import org.ourproject.kune.platf.client.ui.gridmenu.GridMenu; -import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuItem; -import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuItemCollection; +import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; import org.ourproject.kune.workspace.client.sitebar.Site; import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme; import org.ourproject.kune.workspace.client.workspace.GroupMembersSummary; import com.calclab.suco.client.container.Provider; -import com.calclab.suco.client.signal.Slot; -public class GroupMembersSummaryPresenterNew implements GroupMembersSummary { +public class GroupMembersSummaryPresenterNew extends SocialNetworkPresenter implements GroupMembersSummary { private GroupMembersSummaryViewNew view; - private final I18nTranslationService i18n; - private final GridGroup adminGroup; - private final GridGroup collabGroup; - private final GridGroup pendigGroup; - private GridMenuItem<GroupDTO> gotoGroupMenuItem; - private final ImageUtils imageUtils; + private final I18nUITranslationService i18n; + private final GridGroup adminCategory; + private final GridGroup collabCategory; + private final GridGroup pendigCategory; private final Session session; private final SocialNetworkServiceAsync snService; - private final Provider<StateManager> stateManager; - private GridMenuItem<GroupDTO> changeToCollabMenuItem; - private GridMenuItem<GroupDTO> removeMemberMenuItem; - private GridMenuItem<GroupDTO> changeToAdminMenuItem; - private GridMenuItem<GroupDTO> acceptJoinGroupMenuItem; - private GridMenuItem<GroupDTO> denyJoinGroupMenuItem; - private GridButton addMember; - private GridButton requestJoin; - private GridButton unJoinButton; - private GridMenuItemCollection<GroupDTO> otherOperations; - private GridMenuItemCollection<GroupDTO> otherLoggedOperations; - public GroupMembersSummaryPresenterNew(final I18nTranslationService i18n, - final Provider<StateManager> stateManager, final ImageUtils imageUtils, final Session session, + public GroupMembersSummaryPresenterNew(final I18nUITranslationService i18n, + final Provider<StateManager> stateManagerProvider, final ImageUtils imageUtils, final Session session, final SocialNetworkServiceAsync snService) { + super(i18n, stateManagerProvider, imageUtils, session, snService); this.i18n = i18n; - this.stateManager = stateManager; - this.imageUtils = imageUtils; this.session = session; this.snService = snService; final String adminsTitle = i18n.t("Admins"); final String collabsTitle = i18n.t("Collaborators"); final String pendingTitle = i18n.t("Pending"); - adminGroup = new GridGroup(adminsTitle, adminsTitle, i18n.t("People that can admin this group"), true); - collabGroup = new GridGroup(collabsTitle, collabsTitle, - i18n.t("Other people that collaborate with this group"), true); - pendigGroup = new GridGroup(pendingTitle, pendingTitle, i18n + adminCategory = new GridGroup(adminsTitle, adminsTitle, i18n.t("People that can admin this group"), true); + collabCategory = new GridGroup(collabsTitle, collabsTitle, i18n + .t("Other people that collaborate with this group"), true); + pendigCategory = new GridGroup(pendingTitle, pendingTitle, i18n .t("People pending to be accepted in this group by the admins"), imageUtils .getImageHtml(ImageDescriptor.alert), true); - createMenuActions(); - createButtons(); + super.addGroupOperation(gotoMemberMenuItem, false); } public void addCollab(final String groupShortName) { @@ -86,15 +64,6 @@ }); } - public void addGroupOperation(final GridMenuItem<GroupDTO> operation, final boolean mustBeLogged) { - GridMenuItemCollection<GroupDTO> collection; - collection = mustBeLogged ? otherLoggedOperations : otherOperations; - if (collection == null) { - collection = new GridMenuItemCollection<GroupDTO>(); - } - collection.add(operation); - } - public void hide() { view.setVisible(false); } @@ -103,16 +72,8 @@ this.view = view; } - public void removeGroupOperation(final GridMenuItem<GroupDTO> operation, final boolean mustBeLogged) { - GridMenuItemCollection<GroupDTO> collection; - collection = mustBeLogged ? otherLoggedOperations : otherOperations; - if (collection != null) { - collection.remove(operation); - } - } - public void setState(final StateDTO state) { - if (state.getGroup().getType() == GroupDTO.PERSONAL) { + if (state.getGroup().getType().equals(GroupDTO.PERSONAL)) { hide(); } else { setGroupMembers(state.getGroupMembers(), state.getGroupRights()); @@ -123,174 +84,11 @@ view.setTheme(oldTheme, newTheme); } - private void createButtons() { - addMember = new GridButton("images/add-green.gif", i18n.t("Add member"), i18n - .t("Add a group or a person as member of this group"), new Slot<String>() { - public void onEvent(final String parameter) { - // TODO - // GroupLiveSearchComponent groupLiveSearchComponent - // = workspace.getGroupLiveSearchComponent(); - // groupLiveSearchComponent.addListener(listener); - // groupLiveSearchComponent.show(); - } - }); - - requestJoin = new GridButton("images/add-green.gif", i18n.t("Participate"), i18n - .t("Request to participate in this group"), new Slot<String>() { - public void onEvent(final String parameter) { - Site.showProgressProcessing(); - snService.requestJoinGroup(session.getUserHash(), session.getCurrentState().getGroup().getShortName(), - new AsyncCallbackSimple<Object>() { - public void onSuccess(final Object result) { - Site.hideProgress(); - final String resultType = (String) result; - if (resultType == SocialNetworkDTO.REQ_JOIN_ACEPTED) { - Site.info(i18n.t("You are now member of this group")); - getStateManager().reload(); - } - if (resultType == SocialNetworkDTO.REQ_JOIN_DENIED) { - Site.important(i18n.t("Sorry this is a closed group")); - } - if (resultType == SocialNetworkDTO.REQ_JOIN_WAITING_MODERATION) { - Site.info(i18n.t("Requested. Waiting for admins decision")); - } - } - }); - } - }); - - unJoinButton = new GridButton("images/del.gif", i18n.t("Unjoin"), i18n - .t("Don't participate more as a member in this group"), new Slot<String>() { - public void onEvent(final String parameter) { - Site.showProgressProcessing(); - snService.unJoinGroup(session.getUserHash(), session.getCurrentState().getGroup().getShortName(), - new AsyncCallbackSimple<SocialNetworkResultDTO>() { - public void onSuccess(final SocialNetworkResultDTO result) { - Site.hideProgress(); - Site.info(i18n.t("Removed as member")); - getStateManager().reload(); - // in the future with user info: - // services.stateManager.reloadSocialNetwork((SocialNetworkResultDTO) - // result); - } - }); - } - }); - } - - private GridItem<GroupDTO> createDefMemberMenu(final GroupDTO group, final GridGroup gridGroup) { - final GridMenu<GroupDTO> menu = new GridMenu<GroupDTO>(group); - final String longName = group.getLongName(); - final GridItem<GroupDTO> gridItem = new GridItem<GroupDTO>(group, gridGroup, group.getShortName(), imageUtils - .getImageHtml(ImageDescriptor.groupDefIcon), longName, longName, " ", longName, i18n.t( - "User name: [%s]", group.getShortName()), menu); - menu.addMenuItem(gotoGroupMenuItem); - if (otherOperations != null) { - menu.addMenuItemList(otherOperations); - } - if (session.isLogged() && otherOperations != null) { - menu.addMenuItemList(otherLoggedOperations); - } - return gridItem; - } - - private void createMenuActions() { - gotoGroupMenuItem = new GridMenuItem<GroupDTO>("images/group-home.gif", i18n.t("Visit this member homepage"), - new Slot<GroupDTO>() { - public void onEvent(final GroupDTO groupDTO) { - getStateManager().gotoToken(groupDTO.getShortName()); - } - }); - changeToCollabMenuItem = new GridMenuItem<GroupDTO>("images/arrow-down-green.gif", i18n - .t("Change to collaborator"), new Slot<GroupDTO>() { - public void onEvent(final GroupDTO group) { - Site.showProgressProcessing(); - snService.setCollabAsAdmin(session.getUserHash(), session.getCurrentState().getGroup().getShortName(), - group.getShortName(), new AsyncCallbackSimple<SocialNetworkResultDTO>() { - public void onSuccess(final SocialNetworkResultDTO result) { - Site.hideProgress(); - Site.info(i18n.t("Type of member changed")); - getStateManager().setSocialNetwork(result); - } - }); - } - }); - removeMemberMenuItem = new GridMenuItem<GroupDTO>("images/del.gif", i18n.t("Remove this member"), - new Slot<GroupDTO>() { - public void onEvent(final GroupDTO group) { - Site.showProgressProcessing(); - snService.deleteMember(session.getUserHash(), session.getCurrentState().getGroup() - .getShortName(), group.getShortName(), - new AsyncCallbackSimple<SocialNetworkResultDTO>() { - public void onSuccess(final SocialNetworkResultDTO result) { - Site.hideProgress(); - Site.info(i18n.t("Member removed")); - getStateManager().reload(); - // in the future, only if I cannot - // be affected: - // snService.stateManager.reloadSocialNetwork((SocialNetworkResultDTO) - // result); - } - }); - } - }); - changeToAdminMenuItem = new GridMenuItem<GroupDTO>("images/arrow-up-green.gif", i18n.t("Change to admin"), - new Slot<GroupDTO>() { - public void onEvent(final GroupDTO group) { - Site.showProgressProcessing(); - final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance(); - server.addAdminMember(session.getUserHash(), session.getCurrentState().getGroup() - .getShortName(), group.getShortName(), - new AsyncCallbackSimple<SocialNetworkResultDTO>() { - public void onSuccess(final SocialNetworkResultDTO result) { - Site.hideProgress(); - Site.info(i18n.t("Member added as admin")); - getStateManager().setSocialNetwork(result); - } - }); - } - }); - acceptJoinGroupMenuItem = new GridMenuItem<GroupDTO>("images/accept.gif", i18n.t("Accept this member"), - new Slot<GroupDTO>() { - public void onEvent(final GroupDTO group) { - Site.showProgressProcessing(); - snService.AcceptJoinGroup(session.getUserHash(), session.getCurrentState().getGroup() - .getShortName(), group.getShortName(), - new AsyncCallbackSimple<SocialNetworkResultDTO>() { - public void onSuccess(final SocialNetworkResultDTO result) { - Site.hideProgress(); - Site.info(i18n.t("Member accepted")); - getStateManager().setSocialNetwork(result); - } - }); - } - }); - denyJoinGroupMenuItem = new GridMenuItem<GroupDTO>("images/cancel.gif", i18n.t("Don't accept this member"), - new Slot<GroupDTO>() { - public void onEvent(final GroupDTO group) { - Site.showProgressProcessing(); - final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance(); - server.denyJoinGroup(session.getUserHash(), - session.getCurrentState().getGroup().getShortName(), group.getShortName(), - new AsyncCallbackSimple<SocialNetworkResultDTO>() { - public void onSuccess(final SocialNetworkResultDTO result) { - Site.hideProgress(); - Site.info(i18n.t("Member rejected")); - getStateManager().setSocialNetwork(result); - } - }); - } - }); - } - - private StateManager getStateManager() { - return stateManager.get(); - } - 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(); @@ -320,34 +118,22 @@ if (userCanView) { for (final GroupDTO admin : adminsList) { - final GridItem<GroupDTO> gridItem = createDefMemberMenu(admin, adminGroup); - final GridMenu<GroupDTO> menu = gridItem.getMenu(); - if (rights.isAdministrable()) { - menu.addMenuItem(changeToCollabMenuItem); - menu.addMenuItem(removeMemberMenuItem); - } - view.addItem(gridItem); + view + .addItem(createGridItem(adminCategory, admin, rights, changeToCollabMenuItem, + removeMemberMenuItem)); } for (final GroupDTO collab : collabList) { - final GridItem<GroupDTO> gridItem = createDefMemberMenu(collab, collabGroup); - final GridMenu<GroupDTO> menu = gridItem.getMenu(); - if (rights.isAdministrable()) { - menu.addMenuItem(changeToAdminMenuItem); - menu.addMenuItem(removeMemberMenuItem); - } - view.addItem(gridItem); + view + .addItem(createGridItem(collabCategory, collab, rights, changeToAdminMenuItem, + removeMemberMenuItem)); } for (final GroupDTO pendingCollab : pendingCollabsList) { - final GridItem<GroupDTO> gridItem = createDefMemberMenu(pendingCollab, pendigGroup); - final GridMenu<GroupDTO> menu = gridItem.getMenu(); - if (rights.isAdministrable()) { - menu.addMenuItem(acceptJoinGroupMenuItem); - menu.addMenuItem(denyJoinGroupMenuItem); - } - view.addItem(gridItem); + view.addItem(createGridItem(pendigCategory, pendingCollab, rights, acceptJoinGroupMenuItem, + denyJoinGroupMenuItem)); } } view.setDropDownContentVisible(true); view.setVisible(true); } + } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java 2008-07-21 02:46:08 UTC (rev 811) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java 2008-07-21 14:30:36 UTC (rev 812) @@ -19,66 +19,77 @@ */ package org.ourproject.kune.workspace.client.socialnet; -import java.util.Iterator; import java.util.List; -import org.ourproject.kune.platf.client.AbstractPresenter; -import org.ourproject.kune.platf.client.PlatformEvents; -import org.ourproject.kune.platf.client.View; import org.ourproject.kune.platf.client.dto.AccessRightsDTO; +import org.ourproject.kune.platf.client.dto.GroupDTO; import org.ourproject.kune.platf.client.dto.LinkDTO; import org.ourproject.kune.platf.client.dto.ParticipationDataDTO; import org.ourproject.kune.platf.client.dto.StateDTO; -import org.ourproject.kune.platf.client.services.I18nTranslationService; -import org.ourproject.kune.workspace.client.WorkspaceEvents; +import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync; +import org.ourproject.kune.platf.client.services.ImageUtils; +import org.ourproject.kune.platf.client.state.Session; +import org.ourproject.kune.platf.client.state.StateManager; +import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup; +import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme; import org.ourproject.kune.workspace.client.workspace.ParticipationSummary; -public class ParticipationSummaryPresenter extends AbstractPresenter implements ParticipationSummary { +import com.calclab.suco.client.container.Provider; +public class ParticipationSummaryPresenter extends SocialNetworkPresenter implements ParticipationSummary { + private ParticipationSummaryView view; + private final GridGroup adminCategory; + private GridGroup collabCategory; + private final GridGroup collabOnlyCategory; - private final I18nTranslationService i18n; - - private final String admin_subtitle; - - private final MemberAction goto_group_command; - - public ParticipationSummaryPresenter(final I18nTranslationService i18n) { - this.i18n = i18n; - admin_subtitle = i18n.t("admin in:"); - goto_group_command = new MemberAction(i18n.t("Visit this group homepage"), PlatformEvents.GOTO); + public ParticipationSummaryPresenter(final I18nUITranslationService i18n, + final Provider<StateManager> stateManagerProvider, final ImageUtils imageUtils, final Session session, + final SocialNetworkServiceAsync snService) { + super(i18n, stateManagerProvider, imageUtils, session, snService); + adminCategory = new GridGroup("admin in:", " ", i18n.tWithNT("Administrate these groups", + "talking about a person"), false); + collabCategory = new GridGroup(i18n.t("and as collaborator in:"), " ", i18n.t("Collaborate in these groups"), + false); + collabOnlyCategory = new GridGroup(i18n.t("collaborator in:"), " ", i18n.t("Collaborate in these groups"), + false); + super.addGroupOperation(gotoGroupMenuItem, false); } - public View getView() { - return view; - } - public void init(final ParticipationSummaryView view) { this.view = view; } + @SuppressWarnings("unchecked") public void setState(final StateDTO state) { final ParticipationDataDTO participation = state.getParticipation(); final AccessRightsDTO rights = state.getGroupRights(); - view.setDropDownContentVisible(false); + view.setContentVisible(false); view.clear(); - final MemberAction[] adminsActions = { - new MemberAction(i18n.t("Don't participate more in this group"), WorkspaceEvents.UNJOIN_GROUP), - goto_group_command }; - final MemberAction[] collabActions = adminsActions; - final MemberAction[] viewerActions = { goto_group_command }; final List<LinkDTO> groupsIsAdmin = participation.getGroupsIsAdmin(); final List<LinkDTO> groupsIsCollab = participation.getGroupsIsCollab(); - boolean userIsAdmin = rights.isAdministrable(); - final boolean userIsCollab = !userIsAdmin && rights.isEditable(); - final boolean userIsMember = isMember(userIsAdmin, userIsCollab); final int numAdmins = groupsIsAdmin.size(); final int numCollaborators = groupsIsCollab.size(); + if (numAdmins == 0) { + collabCategory = collabOnlyCategory; + } + for (final LinkDTO link : groupsIsAdmin) { + // FIXME: return GroupDTO not LinkDTO from server + final GroupDTO group = new GroupDTO(); + group.setShortName(link.getShortName()); + group.setLongName(link.getLongName()); + view.addItem(createGridItem(adminCategory, group, rights, unJoinMenuItem)); + } + for (final LinkDTO link : groupsIsCollab) { + // FIXME: return GroupDTO not LinkDTO from server + final GroupDTO group = new GroupDTO(); + group.setShortName(link.getShortName()); + group.setLongName(link.getLongName()); + view.addItem(createGridItem(collabCategory, group, rights, unJoinMenuItem)); + } if (numAdmins > 0 || numCollaborators > 0) { - addParticipants(groupsIsAdmin, groupsIsCollab, numAdmins, numCollaborators, userIsAdmin, userIsMember, - adminsActions, collabActions, viewerActions); - view.setDropDownContentVisible(true); + view.setContentVisible(true); view.show(); } else { hide(); @@ -90,48 +101,8 @@ view.setTheme(oldTheme, newTheme); } - private void addParticipants(final List<LinkDTO> groupsIsAdmin, final List<LinkDTO> groupsIsCollab, - final int numAdmins, final int numCollaborators, final boolean userIsAdmin, boolean userIsMember, - final MemberAction[] adminsActions, final MemberAction[] collabActions, final MemberAction[] viewerActions) { - MemberAction[] actions; - String collabTitle; - - if (!userIsMember) { - actions = viewerActions; - } else { - if (userIsAdmin) { - actions = adminsActions; - } else { - actions = collabActions; - } - } - if (numAdmins > 0) { - view.addCategory(admin_subtitle, i18n.tWithNT("Administrate these groups", "talking about a person")); - iteraList(admin_subtitle, groupsIsAdmin, actions); - collabTitle = i18n.t("and as collaborator in:"); - } else { - collabTitle = i18n.t("collaborator in:"); - } - if (numCollaborators > 0) { - view.addCategory(collabTitle, i18n.t("Collaborate in these groups")); - iteraList(collabTitle, groupsIsCollab, actions); - } - - } - private void hide() { view.hide(); } - private boolean isMember(final boolean userIsAdmin, final boolean userIsCollab) { - return userIsAdmin || userIsCollab; - } - - private void iteraList(final String categoryName, final List<LinkDTO> groupList, final MemberAction[] actions) { - final Iterator<LinkDTO> iter = groupList.iterator(); - while (iter.hasNext()) { - final LinkDTO group = iter.next(); - view.addCategoryMember(categoryName, group.getShortName(), group.getLongName(), actions); - } - } } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryView.java 2008-07-21 02:46:08 UTC (rev 811) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryView.java 2008-07-21 14:30:36 UTC (rev 812) @@ -20,19 +20,19 @@ package org.ourproject.kune.workspace.client.socialnet; import org.ourproject.kune.platf.client.View; +import org.ourproject.kune.platf.client.dto.GroupDTO; +import org.ourproject.kune.platf.client.ui.gridmenu.GridItem; import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme; public interface ParticipationSummaryView extends View { - void addCategory(String name, String title); + void addItem(GridItem<GroupDTO> createGridItem); - void addCategoryMember(String categoryName, String name, String title, MemberAction[] memberActions); - void clear(); void hide(); - void setDropDownContentVisible(boolean visible); + void setContentVisible(boolean visible); void setTheme(WsTheme oldTheme, WsTheme newTheme); Added: 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-07-21 02:46:08 UTC (rev 811) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java 2008-07-21 14:30:36 UTC (rev 812) @@ -0,0 +1,267 @@ +package org.ourproject.kune.workspace.client.socialnet; + +import org.ourproject.kune.platf.client.dto.AccessRightsDTO; +import org.ourproject.kune.platf.client.dto.GroupDTO; +import org.ourproject.kune.platf.client.dto.SocialNetworkDTO; +import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO; +import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple; +import org.ourproject.kune.platf.client.rpc.SocialNetworkService; +import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync; +import org.ourproject.kune.platf.client.services.ImageDescriptor; +import org.ourproject.kune.platf.client.services.ImageUtils; +import org.ourproject.kune.platf.client.state.Session; +import org.ourproject.kune.platf.client.state.StateManager; +import org.ourproject.kune.platf.client.ui.gridmenu.GridButton; +import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup; +import org.ourproject.kune.platf.client.ui.gridmenu.GridItem; +import org.ourproject.kune.platf.client.ui.gridmenu.GridMenu; +import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuItem; +import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuItemCollection; +import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; +import org.ourproject.kune.workspace.client.sitebar.Site; + +import com.calclab.suco.client.container.Provider; +import com.calclab.suco.client.signal.Slot; + +public class SocialNetworkPresenter { + + protected GridButton addMember; + protected GridButton requestJoin; + protected GridButton unJoinButton; + protected GridMenuItem<GroupDTO> changeToCollabMenuItem; + protected GridMenuItem<GroupDTO> removeMemberMenuItem; + protected GridMenuItem<GroupDTO> changeToAdminMenuItem; + protected GridMenuItem<GroupDTO> acceptJoinGroupMenuItem; + protected GridMenuItem<GroupDTO> denyJoinGroupMenuItem; + protected GridMenuItem<GroupDTO> gotoMemberMenuItem; + protected GridMenuItem<GroupDTO> gotoGroupMenuItem; + protected GridMenuItem<GroupDTO> unJoinMenuItem; + private final I18nUITranslationService i18n; + private final Provider<StateManager> stateManagerProvider; + private final SocialNetworkServiceAsync snService; + private final Session session; + private final GridMenuItemCollection<GroupDTO> otherOperations; + private final GridMenuItemCollection<GroupDTO> otherLoggedOperations; + private final ImageUtils imageUtils; + + public SocialNetworkPresenter(final I18nUITranslationService i18n, + final Provider<StateManager> stateManagerProvider, final ImageUtils imageUtils, final Session session, + final SocialNetworkServiceAsync snService) { + this.i18n = i18n; + this.stateManagerProvider = stateManagerProvider; + this.imageUtils = imageUtils; + this.session = session; + this.snService = snService; + createButtons(); + createMenuActions(); + otherOperations = new GridMenuItemCollection<GroupDTO>(); + otherLoggedOperations = new GridMenuItemCollection<GroupDTO>(); + } + + public void addGroupOperation(final GridMenuItem<GroupDTO> operation, final boolean mustBeLogged) { + GridMenuItemCollection<GroupDTO> collection; + collection = mustBeLogged ? otherLoggedOperations : otherOperations; + collection.add(operation); + } + + public void removeGroupOperation(final GridMenuItem<GroupDTO> operation, final boolean mustBeLogged) { + GridMenuItemCollection<GroupDTO> collection; + collection = mustBeLogged ? otherLoggedOperations : otherOperations; + collection.remove(operation); + } + + protected GridItem<GroupDTO> createGridItem(final GridGroup groupCategory, final GroupDTO group, + final AccessRightsDTO rights, final GridMenuItem<GroupDTO>... gridMenuItems) { + final GridItem<GroupDTO> gridItem = createDefMemberMenu(group, groupCategory); + final GridMenu<GroupDTO> menu = gridItem.getMenu(); + if (rights.isAdministrable()) { + for (final GridMenuItem<GroupDTO> item : gridMenuItems) { + menu.addMenuItem(item); + } + } + return gridItem; + } + + protected StateManager getStateManager() { + return stateManagerProvider.get(); + } + + private void createButtons() { + addMember = new GridButton("images/add-green.gif", i18n.t("Add member"), i18n + .t("Add a group or a person as member of this group"), new Slot<String>() { + public void onEvent(final String parameter) { + // TODO + // GroupLiveSearchComponent groupLiveSearchComponent + // = workspace.getGroupLiveSearchComponent(); + // groupLiveSearchComponent.addListener(listener); + // groupLiveSearchComponent.show(); + } + }); + + requestJoin = new GridButton("images/add-green.gif", i18n.t("Participate"), i18n + .t("Request to participate in this group"), new Slot<String>() { + public void onEvent(final String parameter) { + Site.showProgressProcessing(); + snService.requestJoinGroup(session.getUserHash(), session.getCurrentState().getGroup().getShortName(), + new AsyncCallbackSimple<Object>() { + public void onSuccess(final Object result) { + Site.hideProgress(); + final String resultType = (String) result; + if (resultType == SocialNetworkDTO.REQ_JOIN_ACEPTED) { + Site.info(i18n.t("You are now member of this group")); + getStateManager().reload(); + } + if (resultType == SocialNetworkDTO.REQ_JOIN_DENIED) { + Site.important(i18n.t("Sorry this is a closed group")); + } + if (resultType == SocialNetworkDTO.REQ_JOIN_WAITING_MODERATION) { + Site.info(i18n.t("Requested. Waiting for admins decision")); + } + } + }); + } + }); + + unJoinButton = new GridButton("images/del.gif", i18n.t("Unjoin"), i18n + .t("Don't participate more as a member in this group"), new Slot<String>() { + public void onEvent(final String parameter) { + removeMemberAction(); + } + }); + } + + private GridItem<GroupDTO> createDefMemberMenu(final GroupDTO group, final GridGroup gridGroup) { + final GridMenu<GroupDTO> menu = new GridMenu<GroupDTO>(group); + final String longName = group.getLongName(); + final GridItem<GroupDTO> gridItem = new GridItem<GroupDTO>(group, gridGroup, group.getShortName(), imageUtils + .getImageHtml(ImageDescriptor.groupDefIcon), longName, longName, " ", longName, i18n.t( + "User name: [%s]", group.getShortName()), menu); + if (otherOperations != null) { + menu.addMenuItemList(otherOperations); + } + if (session.isLogged() && otherOperations != null) { + menu.addMenuItemList(otherLoggedOperations); + } + return gridItem; + } + + private void createMenuActions() { + gotoGroupMenuItem = new GridMenuItem<GroupDTO>("images/group-home.gif", i18n.t("Visit this group homepage"), + new Slot<GroupDTO>() { + public void onEvent(final GroupDTO groupDTO) { + getStateManager().gotoToken(groupDTO.getShortName()); + } + }); + gotoMemberMenuItem = new GridMenuItem<GroupDTO>("images/group-home.gif", i18n.t("Visit this member homepage"), + new Slot<GroupDTO>() { + public void onEvent(final GroupDTO groupDTO) { + getStateManager().gotoToken(groupDTO.getShortName()); + } + }); + unJoinMenuItem = new GridMenuItem<GroupDTO>("images/del.gif", i18n + .t("Don't participate more as a member in this group"), new Slot<GroupDTO>() { + public void onEvent(final GroupDTO groupDTO) { + removeMemberAction(groupDTO); + } + }); + changeToCollabMenuItem = new GridMenuItem<GroupDTO>("images/arrow-down-green.gif", i18n + .t("Change to collaborator"), new Slot<GroupDTO>() { + public void onEvent(final GroupDTO group) { + Site.showProgressProcessing(); + snService.setCollabAsAdmin(session.getUserHash(), session.getCurrentState().getGroup().getShortName(), + group.getShortName(), new AsyncCallbackSimple<SocialNetworkResultDTO>() { + public void onSuccess(final SocialNetworkResultDTO result) { + Site.hideProgress(); + Site.info(i18n.t("Type of member changed")); + getStateManager().setSocialNetwork(result); + } + }); + } + }); + removeMemberMenuItem = new GridMenuItem<GroupDTO>("images/del.gif", i18n.t("Remove this member"), + new Slot<GroupDTO>() { + public void onEvent(final GroupDTO group) { + Site.showProgressProcessing(); + snService.deleteMember(session.getUserHash(), session.getCurrentState().getGroup() + .getShortName(), group.getShortName(), + new AsyncCallbackSimple<SocialNetworkResultDTO>() { + public void onSuccess(final SocialNetworkResultDTO result) { + Site.hideProgress(); + Site.info(i18n.t("Member removed")); + getStateManager().reload(); + // in the future, only if I cannot + // be affected: + // snService.stateManager.reloadSocialNetwork((SocialNetworkResultDTO) + // result); + } + }); + } + }); + changeToAdminMenuItem = new GridMenuItem<GroupDTO>("images/arrow-up-green.gif", i18n.t("Change to admin"), + new Slot<GroupDTO>() { + public void onEvent(final GroupDTO group) { + Site.showProgressProcessing(); + final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance(); + server.addAdminMember(session.getUserHash(), session.getCurrentState().getGroup() + .getShortName(), group.getShortName(), + new AsyncCallbackSimple<SocialNetworkResultDTO>() { + public void onSuccess(final SocialNetworkResultDTO result) { + Site.hideProgress(); + Site.info(i18n.t("Member added as admin")); + getStateManager().setSocialNetwork(result); + } + }); + } + }); + acceptJoinGroupMenuItem = new GridMenuItem<GroupDTO>("images/accept.gif", i18n.t("Accept this member"), + new Slot<GroupDTO>() { + public void onEvent(final GroupDTO group) { + Site.showProgressProcessing(); + snService.AcceptJoinGroup(session.getUserHash(), session.getCurrentState().getGroup() + .getShortName(), group.getShortName(), + new AsyncCallbackSimple<SocialNetworkResultDTO>() { + public void onSuccess(final SocialNetworkResultDTO result) { + Site.hideProgress(); + Site.info(i18n.t("Member accepted")); + getStateManager().setSocialNetwork(result); + } + }); + } + }); + denyJoinGroupMenuItem = new GridMenuItem<GroupDTO>("images/cancel.gif", i18n.t("Don't accept this member"), + new Slot<GroupDTO>() { + public void onEvent(final GroupDTO group) { + Site.showProgressProcessing(); + final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance(); + server.denyJoinGroup(session.getUserHash(), + session.getCurrentState().getGroup().getShortName(), group.getShortName(), + new AsyncCallbackSimple<SocialNetworkResultDTO>() { + public void onSuccess(final SocialNetworkResultDTO result) { + Site.hideProgress(); + Site.info(i18n.t("Member rejected")); + getStateManager().setSocialNetwork(result); + } + }); + } + }); + } + + private void removeMemberAction() { + removeMemberAction(session.getCurrentState().getGroup()); + } + + private void removeMemberAction(final GroupDTO groupDTO) { + Site.showProgressProcessing(); + snService.unJoinGroup(session.getUserHash(), groupDTO.getShortName(), + new AsyncCallbackSimple<SocialNetworkResultDTO>() { + public void onSuccess(final SocialNetworkResultDTO result) { + Site.hideProgress(); + Site.info(i18n.t("Removed as member")); + getStateManager().reload(); + // in the future with user info: + // services.stateManager.reloadSocialNetwork((SocialNetworkResultDTO) + // result); + } + }); + } +} Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/ParticipationSummaryPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/ParticipationSummaryPanel.java 2008-07-21 02:46:08 UTC (rev 811) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/ParticipationSummaryPanel.java 2008-07-21 14:30:36 UTC (rev 812) @@ -19,54 +19,51 @@ */ package org.ourproject.kune.workspace.client.socialnet.ui; -import org.ourproject.kune.platf.client.AbstractPresenter; -import org.ourproject.kune.platf.client.PlatformEvents; +import org.ourproject.kune.platf.client.dto.GroupDTO; import org.ourproject.kune.platf.client.services.I18nTranslationService; -import org.ourproject.kune.platf.client.services.Images; -import org.ourproject.kune.platf.client.ui.UIConstants; -import org.ourproject.kune.platf.client.ui.stacks.StackSubItemAction; -import org.ourproject.kune.platf.client.ui.stacks.StackedDropDownPanel; -import org.ourproject.kune.workspace.client.WorkspaceEvents; -import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryView; -import org.ourproject.kune.workspace.client.socialnet.MemberAction; +import org.ourproject.kune.platf.client.ui.DropDownPanel; +import org.ourproject.kune.platf.client.ui.gridmenu.GridItem; +import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuPanel; +import org.ourproject.kune.workspace.client.socialnet.ParticipationSummaryPresenter; import org.ourproject.kune.workspace.client.socialnet.ParticipationSummaryView; +import org.ourproject.kune.workspace.client.ui.newtmp.skel.EntitySummary; import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton; -import com.google.gwt.user.client.ui.AbstractImagePrototype; +import com.gwtext.client.widgets.BoxComponent; +import com.gwtext.client.widgets.event.ContainerListenerAdapter; -public class ParticipationSummaryPanel extends StackedDropDownPanel implements ParticipationSummaryView { +public class ParticipationSummaryPanel extends DropDownPanel implements ParticipationSummaryView { - private static final boolean COUNTS_VISIBLE = false; - private final Images img = Images.App.getInstance(); + private final GridMenuPanel<GroupDTO> gridMenuPanel; - public ParticipationSummaryPanel(final AbstractPresenter presenter, final I18nTranslationService i18n, + public ParticipationSummaryPanel(final ParticipationSummaryPresenter presenter, final I18nTranslationService i18n, final WorkspaceSkeleton ws) { - super(presenter, "#00D4AA", i18n.t("Participates as..."), i18n.t("Groups in which participates"), - COUNTS_VISIBLE); + super(true); + super.setHeaderText(i18n.t("Participates as...")); + super.setHeaderTitle(i18n.t("Groups in which participates")); + super.setBorderStylePrimaryName("k-dropdownouter-part"); + super.addStyleName("kune-Margin-Medium-tl"); + gridMenuPanel = new GridMenuPanel<GroupDTO>(i18n.t("This user is not member of any group"), true, false, false, + false, false); + final EntitySummary entitySummary = ws.getEntitySummary(); + entitySummary.addInSummary(this); + entitySummary.addListener(new ContainerListenerAdapter() { + @Override + public void onResize(final BoxComponent component, final int adjWidth, final int adjHeight, + final int rawWidth, final int rawHeight) { + gridMenuPanel.setWidth(adjWidth); + } + }); + this.setContent(gridMenuPanel); ws.getEntitySummary().addInSummary(this); } - public void addCategory(final String name, final String title) { - super.addStackItem(name, title, COUNTS_VISIBLE); + public void addItem(final GridItem<GroupDTO> gridItem) { + gridMenuPanel.addItem(gridItem); } - public void addCategory(final String name, final String title, final String iconType) { - super.addStackItem(name, title, getIcon(iconType), UIConstants.ICON_HORIZ_ALIGN_RIGHT, COUNTS_VISIBLE); - } - - public void addCategoryMember(final String categoryName, final String name, final String title, - final MemberAction[] memberActions) { - final StackSubItemAction[] subItems = new StackSubItemAction[memberActions.length]; - for (int i = 0; i < memberActions.length; i++) { - subItems[i] = new StackSubItemAction(getIconFronEvent(memberActions[i].getAction()), memberActions[i] - .getText(), memberActions[i].getAction()); - } - - super.addStackSubItem(categoryName, img.groupDefIcon(), name, title, subItems); - } - public void clear() { - super.clear(); + gridMenuPanel.removeAll(); } public void hide() { @@ -77,21 +74,4 @@ this.setVisible(true); } - private AbstractImagePrototype getIcon(final String event) { - if (event == GroupMembersSummaryView.ICON_ALERT) { - return img.alert(); - } - throw new IndexOutOfBoundsException("Icon unknown in ParticipationPanelk"); - } - - private AbstractImagePrototype getIconFronEvent(final String event) { - if (event == WorkspaceEvents.UNJOIN_GROUP) { - return img.del(); - } - if (event == PlatformEvents.GOTO) { - return img.groupHome(); - } - throw new IndexOutOfBoundsException("Event unknown in ParticipationPanel"); - } - }