From 820076b008d85c559cd0a2ca7d08f7ee9ce41157 Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Wed, 8 Oct 2014 21:15:42 +0000 Subject: [PATCH] refactored for pickitem widget git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/news-feed@100556 82a268e6-3cf1-43bd-a215-b396298e98cf --- .settings/org.eclipse.wst.common.component | 6 ---- pom.xml | 4 +-- .../user/newsfeed/client/NewsService.java | 4 +-- .../newsfeed/client/NewsServiceAsync.java | 4 +-- .../newsfeed/client/panels/NewsFeedPanel.java | 8 ++--- .../user/newsfeed/client/ui/ResultsFor.java | 4 +-- .../client/ui/SuperPosedTextArea.java | 22 ++++++------ .../server/MentionNotificationsThread.java | 12 +++---- .../user/newsfeed/server/NewsServiceImpl.java | 20 +++++------ .../portlets/user/newsfeed/server/Utils.java | 36 +++++++++---------- .../portlets/user/newsfeed/NewsFeed.gwt.xml | 4 +-- 11 files changed, 58 insertions(+), 66 deletions(-) diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index a875f43..bf08e59 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -4,12 +4,6 @@ - - uses - - - uses - diff --git a/pom.xml b/pom.xml index 775b7d3..2192ad9 100644 --- a/pom.xml +++ b/pom.xml @@ -75,8 +75,8 @@ org.gcube.portlets.widgets - pickuser-widget - [0.4.0-SNAPSHOT, 1.0.0-SNAPSHOT) + pickitem-widget + [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) org.gcube.applicationsupportlayer diff --git a/src/main/java/org/gcube/portlets/user/newsfeed/client/NewsService.java b/src/main/java/org/gcube/portlets/user/newsfeed/client/NewsService.java index ab1625f..2e9cfad 100644 --- a/src/main/java/org/gcube/portlets/user/newsfeed/client/NewsService.java +++ b/src/main/java/org/gcube/portlets/user/newsfeed/client/NewsService.java @@ -7,7 +7,7 @@ import org.gcube.portal.databook.shared.Like; import org.gcube.portlets.user.newsfeed.shared.EnhancedFeed; import org.gcube.portlets.user.newsfeed.shared.MoreFeedsBean; import org.gcube.portlets.user.newsfeed.shared.UserSettings; -import org.gcube.portlets.widgets.pickuser.shared.PickingUser; +import org.gcube.portlets.widgets.pickitem.shared.ItemBean; import com.google.gwt.user.client.rpc.RemoteService; import com.google.gwt.user.client.rpc.RemoteServiceRelativePath; @@ -49,5 +49,5 @@ public interface NewsService extends RemoteService { EnhancedFeed getSingleFeed(String feedKey); - ArrayList getOrganizationUsers(String currentScope); + ArrayList getOrganizationUsers(String currentScope); } diff --git a/src/main/java/org/gcube/portlets/user/newsfeed/client/NewsServiceAsync.java b/src/main/java/org/gcube/portlets/user/newsfeed/client/NewsServiceAsync.java index a6c3c0c..a9a96bd 100644 --- a/src/main/java/org/gcube/portlets/user/newsfeed/client/NewsServiceAsync.java +++ b/src/main/java/org/gcube/portlets/user/newsfeed/client/NewsServiceAsync.java @@ -7,7 +7,7 @@ import org.gcube.portal.databook.shared.Like; import org.gcube.portlets.user.newsfeed.shared.EnhancedFeed; import org.gcube.portlets.user.newsfeed.shared.MoreFeedsBean; import org.gcube.portlets.user.newsfeed.shared.UserSettings; -import org.gcube.portlets.widgets.pickuser.shared.PickingUser; +import org.gcube.portlets.widgets.pickitem.shared.ItemBean; import com.google.gwt.user.client.rpc.AsyncCallback; @@ -57,7 +57,7 @@ public interface NewsServiceAsync { AsyncCallback callback); void getOrganizationUsers(String currentScope, - AsyncCallback> callback); + AsyncCallback> callback); void getFeedsByHashtag(String hashtag, AsyncCallback> callback); diff --git a/src/main/java/org/gcube/portlets/user/newsfeed/client/panels/NewsFeedPanel.java b/src/main/java/org/gcube/portlets/user/newsfeed/client/panels/NewsFeedPanel.java index 4e518ea..3185873 100644 --- a/src/main/java/org/gcube/portlets/user/newsfeed/client/panels/NewsFeedPanel.java +++ b/src/main/java/org/gcube/portlets/user/newsfeed/client/panels/NewsFeedPanel.java @@ -56,9 +56,6 @@ import org.gcube.portlets.widgets.userselection.shared.ItemSelectableBean; import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.RunAsyncCallback; - -import java.util.HashMap; - import com.google.gwt.dom.client.Document; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.event.shared.HandlerManager; @@ -376,6 +373,7 @@ public class NewsFeedPanel extends Composite { newsPanel.add(new HTML("
" + "We're sorry, "+ usrLink +" removed the post in the meantime!
")); } else{ + newsPanel.add(new ResultsFor("selected post", "")); newsPanel.setHeight(""); newsPanel.setHorizontalAlignment(HasAlignment.ALIGN_LEFT); newsPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_TOP); @@ -484,7 +482,7 @@ public class NewsFeedPanel extends Composite { newsPanel.clear(); if (feeds != null) { if (feeds.size() == 0) { - newsPanel.add(new ResultsFor(hashtag)); + newsPanel.add(new ResultsFor("results for", hashtag)); newsPanel.add(new HTML("
" + "Sorry, looks like we found no updates with topic: " + hashtag +"
")); isFirstTweet = true; @@ -493,7 +491,7 @@ public class NewsFeedPanel extends Composite { newsPanel.setHeight(""); newsPanel.setHorizontalAlignment(HasAlignment.ALIGN_LEFT); newsPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_TOP); - newsPanel.add(new ResultsFor(hashtag)); + newsPanel.add(new ResultsFor("results for", hashtag)); for (EnhancedFeed feed : feeds) { newsPanel.add(new TweetTemplate(false, showFeedTimelineSource, myUserInfo, feed, eventBus)); //in the view } diff --git a/src/main/java/org/gcube/portlets/user/newsfeed/client/ui/ResultsFor.java b/src/main/java/org/gcube/portlets/user/newsfeed/client/ui/ResultsFor.java index f4ba205..21862fb 100644 --- a/src/main/java/org/gcube/portlets/user/newsfeed/client/ui/ResultsFor.java +++ b/src/main/java/org/gcube/portlets/user/newsfeed/client/ui/ResultsFor.java @@ -21,11 +21,11 @@ public class ResultsFor extends Composite { @UiField HTML allUpdatesLink; @UiField HTML resultForDiv; - public ResultsFor(String hashtag) { + public ResultsFor(String prefix, String hashtag) { initWidget(uiBinder.createAndBindUi(this)); allUpdatesLink.setHTML("All Updates"); allUpdatesLink.getElement().getStyle().setCursor(Cursor.POINTER); - resultForDiv.setHTML("results for " + hashtag+""); + resultForDiv.setHTML(prefix + " " + hashtag+""); resultForDiv.setStyleName("filter-selected"); } diff --git a/src/main/java/org/gcube/portlets/user/newsfeed/client/ui/SuperPosedTextArea.java b/src/main/java/org/gcube/portlets/user/newsfeed/client/ui/SuperPosedTextArea.java index 0a39081..e56770f 100644 --- a/src/main/java/org/gcube/portlets/user/newsfeed/client/ui/SuperPosedTextArea.java +++ b/src/main/java/org/gcube/portlets/user/newsfeed/client/ui/SuperPosedTextArea.java @@ -9,10 +9,10 @@ import org.gcube.portlets.user.gcubewidgets.client.elements.Div; import org.gcube.portlets.user.newsfeed.client.NewsService; import org.gcube.portlets.user.newsfeed.client.NewsServiceAsync; import org.gcube.portlets.user.newsfeed.client.panels.NewsFeedPanel; -import org.gcube.portlets.widgets.pickuser.client.dialog.PickUsersDialog; -import org.gcube.portlets.widgets.pickuser.client.events.PickedUserEvent; -import org.gcube.portlets.widgets.pickuser.client.events.PickedUserEventHandler; -import org.gcube.portlets.widgets.pickuser.shared.PickingUser; +import org.gcube.portlets.widgets.pickitem.client.dialog.PickItemsDialog; +import org.gcube.portlets.widgets.pickitem.client.events.PickedItemEvent; +import org.gcube.portlets.widgets.pickitem.client.events.PickedItemEventHandler; +import org.gcube.portlets.widgets.pickitem.shared.ItemBean; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Element; @@ -35,7 +35,7 @@ public class SuperPosedTextArea extends TextArea { private final HandlerManager eventBus = new HandlerManager(null); - private PickUsersDialog pickUserDlg; + private PickItemsDialog pickUserDlg; private Div highlighterDIV; public final static int ARROW_UP = 38; public final static int ARROW_DOWN = 40; @@ -57,11 +57,11 @@ public class SuperPosedTextArea extends TextArea { //needed to give unique identifiers to the Area (for the jQuery plugin) areaId = "postTextArea"+Random.nextInt(); - newsService.getOrganizationUsers(NewsFeedPanel.getCurrentScope(), new AsyncCallback>() { + newsService.getOrganizationUsers(NewsFeedPanel.getCurrentScope(), new AsyncCallback>() { @Override - public void onSuccess(ArrayList users) { - pickUserDlg = new PickUsersDialog(users, eventBus, 460); + public void onSuccess(ArrayList users) { + pickUserDlg = new PickItemsDialog('@', users, eventBus, 460); } @Override @@ -164,11 +164,11 @@ public class SuperPosedTextArea extends TextArea { * events binder */ private void bind() { - eventBus.addHandler(PickedUserEvent.TYPE, new PickedUserEventHandler() { + eventBus.addHandler(PickedItemEvent.TYPE, new PickedItemEventHandler() { @Override - public void onSelectedUser(PickedUserEvent event) { + public void onSelectedItem(PickedItemEvent event) { - String toAdd = event.getSelectedUser().getFullName(); + String toAdd = event.getSelectedItem().getAlternativeName(); mentionedUsers.add(toAdd); String[] toSplit = getText().split("@"); //get the preceeding part diff --git a/src/main/java/org/gcube/portlets/user/newsfeed/server/MentionNotificationsThread.java b/src/main/java/org/gcube/portlets/user/newsfeed/server/MentionNotificationsThread.java index 1d2b612..62dd42c 100644 --- a/src/main/java/org/gcube/portlets/user/newsfeed/server/MentionNotificationsThread.java +++ b/src/main/java/org/gcube/portlets/user/newsfeed/server/MentionNotificationsThread.java @@ -3,7 +3,7 @@ package org.gcube.portlets.user.newsfeed.server; import java.util.ArrayList; import org.gcube.applicationsupportlayer.social.NotificationsManager; -import org.gcube.portlets.widgets.pickuser.shared.PickingUser; +import org.gcube.portlets.widgets.pickitem.shared.ItemBean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -18,10 +18,10 @@ public class MentionNotificationsThread implements Runnable { private String postText; private String postId; private NotificationsManager nm; - private ArrayList users; + private ArrayList users; - public MentionNotificationsThread(String postId, String postText, NotificationsManager nm, ArrayList users) { + public MentionNotificationsThread(String postId, String postText, NotificationsManager nm, ArrayList users) { super(); this.postId = postId; this.postText = postText; @@ -31,9 +31,9 @@ public class MentionNotificationsThread implements Runnable { @Override public void run() { - for (PickingUser userToNotify : users) { - boolean result = nm.notifyUserTag(userToNotify.getUsername(), postId, postText); - _log.trace("Sending Notification for post mention to: " + userToNotify.getUsername() + " result?"+ result); + for (ItemBean userToNotify : users) { + boolean result = nm.notifyUserTag(userToNotify.getName(), postId, postText); + _log.trace("Sending Notification for post mention to: " + userToNotify.getName() + " result?"+ result); } } } diff --git a/src/main/java/org/gcube/portlets/user/newsfeed/server/NewsServiceImpl.java b/src/main/java/org/gcube/portlets/user/newsfeed/server/NewsServiceImpl.java index 54ba0e9..0eeb4a4 100644 --- a/src/main/java/org/gcube/portlets/user/newsfeed/server/NewsServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/newsfeed/server/NewsServiceImpl.java @@ -40,7 +40,7 @@ import org.gcube.portlets.user.newsfeed.shared.EnhancedFeed; import org.gcube.portlets.user.newsfeed.shared.MoreFeedsBean; import org.gcube.portlets.user.newsfeed.shared.NewsConstants; import org.gcube.portlets.user.newsfeed.shared.UserSettings; -import org.gcube.portlets.widgets.pickuser.shared.PickingUser; +import org.gcube.portlets.widgets.pickitem.shared.ItemBean; import org.gcube.vomanagement.usermanagement.GroupManager; import org.gcube.vomanagement.usermanagement.impl.liferay.LiferayGroupManager; import org.slf4j.Logger; @@ -605,7 +605,7 @@ public class NewsServiceImpl extends RemoteServiceServlet implements NewsService String escapedCommentText = Utils.escapeHtmlAndTransformUrl(commentText); - ArrayList mentionedUsers = null; + ArrayList mentionedUsers = null; if (mentionedUserFullNames != null && ! mentionedUserFullNames.isEmpty()) { mentionedUsers = getSelectedUserIds(mentionedUserFullNames); escapedCommentText = Utils.convertMentionPeopleAnchorHTML(escapedCommentText, mentionedUsers); @@ -816,8 +816,8 @@ public class NewsServiceImpl extends RemoteServiceServlet implements NewsService } } @Override - public ArrayList getOrganizationUsers(String currentScope) { - ArrayList toReturn = Utils.getOrganizationUsers(currentScope, getASLSession().getUsername(), isWithinPortal()); + public ArrayList getOrganizationUsers(String currentScope) { + ArrayList toReturn = Utils.getOrganizationUsers(currentScope, getASLSession().getUsername(), isWithinPortal()); _log.trace("Returning " + toReturn.size() + " users for scope " + currentScope); return toReturn; } @@ -878,15 +878,15 @@ public class NewsServiceImpl extends RemoteServiceServlet implements NewsService * * @return the screennames of the addressee (user logins e.g. pino.pini) */ - public ArrayList getSelectedUserIds(ArrayList fullNames) { + public ArrayList getSelectedUserIds(ArrayList fullNames) { if (fullNames == null) - return new ArrayList(); + return new ArrayList(); else { - ArrayList allUsers = Utils.getOrganizationUsers("/"+OrganizationsUtil.getRootOrganizationName(), getASLSession().getUsername(), isWithinPortal()); - ArrayList toReturn = new ArrayList(); + ArrayList allUsers = Utils.getOrganizationUsers("/"+OrganizationsUtil.getRootOrganizationName(), getASLSession().getUsername(), isWithinPortal()); + ArrayList toReturn = new ArrayList(); for (String fullName : fullNames) - for (PickingUser puser : allUsers) { - if (puser.getFullName().compareTo(fullName) == 0) { + for (ItemBean puser : allUsers) { + if (puser.getAlternativeName().compareTo(fullName) == 0) { toReturn.add(puser); break; } diff --git a/src/main/java/org/gcube/portlets/user/newsfeed/server/Utils.java b/src/main/java/org/gcube/portlets/user/newsfeed/server/Utils.java index b7c6b1d..dbea21c 100644 --- a/src/main/java/org/gcube/portlets/user/newsfeed/server/Utils.java +++ b/src/main/java/org/gcube/portlets/user/newsfeed/server/Utils.java @@ -12,7 +12,7 @@ import org.gcube.common.scope.impl.ScopeBean; import org.gcube.common.scope.impl.ScopeBean.Type; import org.gcube.portal.custom.communitymanager.OrganizationsUtil; import org.gcube.portal.databook.client.GCubeSocialNetworking; -import org.gcube.portlets.widgets.pickuser.shared.PickingUser; +import org.gcube.portlets.widgets.pickitem.shared.ItemBean; import org.gcube.vomanagement.usermanagement.GroupManager; import org.gcube.vomanagement.usermanagement.UserManager; import org.gcube.vomanagement.usermanagement.impl.liferay.LiferayGroupManager; @@ -31,8 +31,8 @@ public class Utils { * @param withinPortal true when is on Liferay portal * @return the users belonging to the current organization (scope) */ - public static ArrayList getOrganizationUsers(String scope, String currUser, boolean withinPortal) { - ArrayList portalUsers = new ArrayList(); + public static ArrayList getOrganizationUsers(String scope, String currUser, boolean withinPortal) { + ArrayList portalUsers = new ArrayList(); try { if (withinPortal) { UserManager um = new LiferayUserManager(); @@ -57,21 +57,21 @@ public class Utils { String thumbnailURL = ""; com.liferay.portal.model.UserModel lifeUser = UserLocalServiceUtil.getUserByScreenName(OrganizationsUtil.getCompany().getCompanyId(), user.getScreenName()); thumbnailURL = "/image/user_male_portrait?img_id="+lifeUser.getPortraitId(); - portalUsers.add(new PickingUser(user.getUserId(), user.getScreenName(), user.getFullname(), thumbnailURL)); + portalUsers.add(new ItemBean(user.getUserId(), user.getScreenName(), user.getFullname(), thumbnailURL)); } } } else { //test users - portalUsers.add(new PickingUser("12111", "massimiliano.assante", "Test User #1", "")); - portalUsers.add(new PickingUser("14111", "massimiliano.assante", "Test Second User #2", "")); - portalUsers.add(new PickingUser("11511", "massimiliano.assante", "Test Third User", "")); - portalUsers.add(new PickingUser("11611", "massimiliano.assante", "Test Fourth User", "")); - portalUsers.add(new PickingUser("11711", "massimiliano.assante", "Test Fifth User", "")); - portalUsers.add(new PickingUser("11811", "massimiliano.assante", "Test Sixth User", "")); - portalUsers.add(new PickingUser("15811", "massimiliano.assante", "Ninth Testing User", "")); - portalUsers.add(new PickingUser("15811", "massimiliano.assante", "Eighth Testing User", "")); - portalUsers.add(new PickingUser("11211", "giogio.giorgi", "Seventh Test User", "")); - portalUsers.add(new PickingUser("2222", "pino.pinetti", "Tenth Testing User", "")); + portalUsers.add(new ItemBean("12111", "massimiliano.assante", "Test User #1", "")); + portalUsers.add(new ItemBean("14111", "massimiliano.assante", "Test Second User #2", "")); + portalUsers.add(new ItemBean("11511", "massimiliano.assante", "Test Third User", "")); + portalUsers.add(new ItemBean("11611", "massimiliano.assante", "Test Fourth User", "")); + portalUsers.add(new ItemBean("11711", "massimiliano.assante", "Test Fifth User", "")); + portalUsers.add(new ItemBean("11811", "massimiliano.assante", "Test Sixth User", "")); + portalUsers.add(new ItemBean("15811", "massimiliano.assante", "Ninth Testing User", "")); + portalUsers.add(new ItemBean("15811", "massimiliano.assante", "Eighth Testing User", "")); + portalUsers.add(new ItemBean("11211", "giogio.giorgi", "Seventh Test User", "")); + portalUsers.add(new ItemBean("2222", "pino.pinetti", "Tenth Testing User", "")); } } catch (Exception e) { _log.error("Error in server get all contacts ", e); @@ -152,13 +152,13 @@ public class Utils { * @param taggedPeople * @return */ - protected static String convertMentionPeopleAnchorHTML(String escapedFeedText, ArrayList taggedPeople) { - for (PickingUser tagged : taggedPeople) { + protected static String convertMentionPeopleAnchorHTML(String escapedFeedText, ArrayList taggedPeople) { + for (ItemBean tagged : taggedPeople) { String taggedHTML = ""+tagged.getFullName()+" "; - escapedFeedText = escapedFeedText.replace(tagged.getFullName(), taggedHTML); + new String(Base64.encodeBase64(tagged.getName().getBytes()))+"\">"+tagged.getAlternativeName()+" "; + escapedFeedText = escapedFeedText.replace(tagged.getAlternativeName(), taggedHTML); } return escapedFeedText; } diff --git a/src/main/resources/org/gcube/portlets/user/newsfeed/NewsFeed.gwt.xml b/src/main/resources/org/gcube/portlets/user/newsfeed/NewsFeed.gwt.xml index 6db3cdf..14361ac 100644 --- a/src/main/resources/org/gcube/portlets/user/newsfeed/NewsFeed.gwt.xml +++ b/src/main/resources/org/gcube/portlets/user/newsfeed/NewsFeed.gwt.xml @@ -4,7 +4,7 @@ - + @@ -16,7 +16,7 @@ - +