diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
index fb4e233..4540af0 100644
--- a/.settings/org.eclipse.wst.common.component
+++ b/.settings/org.eclipse.wst.common.component
@@ -4,6 +4,9 @@
+
+ uses
+
diff --git a/pom.xml b/pom.xml
index 277f0ba..e8e82c5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -82,15 +82,15 @@
gcube-widgets
provided
-
-
-
-
-
+
+ org.gcube.core
+ common-scope-maps
+ compile
+
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.portlets.widgets
diff --git a/src/main/java/org/gcube/portlets/user/shareupdates/client/ShareUpdateService.java b/src/main/java/org/gcube/portlets/user/shareupdates/client/ShareUpdateService.java
index 8b9afbf..0baad80 100644
--- a/src/main/java/org/gcube/portlets/user/shareupdates/client/ShareUpdateService.java
+++ b/src/main/java/org/gcube/portlets/user/shareupdates/client/ShareUpdateService.java
@@ -7,7 +7,7 @@ import org.gcube.portal.databook.shared.FeedType;
import org.gcube.portal.databook.shared.PrivacyLevel;
import org.gcube.portlets.user.shareupdates.shared.LinkPreview;
import org.gcube.portlets.user.shareupdates.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;
@@ -26,5 +26,7 @@ public interface ShareUpdateService extends RemoteService {
LinkPreview checkUploadedFile(String fileName, String fileabsolutePathOnServer);
- ArrayList getPortalUsers();
+ ArrayList getPortalUsers();
+
+ ArrayList getHashtags();
}
diff --git a/src/main/java/org/gcube/portlets/user/shareupdates/client/ShareUpdateServiceAsync.java b/src/main/java/org/gcube/portlets/user/shareupdates/client/ShareUpdateServiceAsync.java
index cd71d41..4cb3da5 100644
--- a/src/main/java/org/gcube/portlets/user/shareupdates/client/ShareUpdateServiceAsync.java
+++ b/src/main/java/org/gcube/portlets/user/shareupdates/client/ShareUpdateServiceAsync.java
@@ -5,9 +5,9 @@ import java.util.ArrayList;
import org.gcube.portal.databook.shared.ClientFeed;
import org.gcube.portal.databook.shared.FeedType;
import org.gcube.portal.databook.shared.PrivacyLevel;
-import org.gcube.portlets.widgets.pickuser.shared.PickingUser;
import org.gcube.portlets.user.shareupdates.shared.LinkPreview;
import org.gcube.portlets.user.shareupdates.shared.UserSettings;
+import org.gcube.portlets.widgets.pickitem.shared.ItemBean;
import com.google.gwt.user.client.rpc.AsyncCallback;
@@ -25,8 +25,10 @@ public interface ShareUpdateServiceAsync {
void getUserSettings(AsyncCallback callback);
- void getPortalUsers(AsyncCallback> callback);
+ void getPortalUsers(AsyncCallback> callback);
void checkUploadedFile(String fileName, String fileabsolutePathOnServer,
AsyncCallback callback);
+
+ void getHashtags(AsyncCallback> callback);
}
diff --git a/src/main/java/org/gcube/portlets/user/shareupdates/client/view/ShareUpdateForm.java b/src/main/java/org/gcube/portlets/user/shareupdates/client/view/ShareUpdateForm.java
index c66eb15..fe3165d 100644
--- a/src/main/java/org/gcube/portlets/user/shareupdates/client/view/ShareUpdateForm.java
+++ b/src/main/java/org/gcube/portlets/user/shareupdates/client/view/ShareUpdateForm.java
@@ -168,7 +168,7 @@ public class ShareUpdateForm extends Composite {
}
//privacyLevel.addItem("My Connections", PrivacyLevel.CONNECTION.toString());
- if (myUserInfo.isAdmin() && userSettings.isInfrastructure())
+ if (myUserInfo.isAdmin())
privacyLevel.addItem("Share with: Everyone", PrivacyLevel.PORTAL.toString());
//change css if deployed in VRE scope
if (!userSettings.isInfrastructure()) {
diff --git a/src/main/java/org/gcube/portlets/user/shareupdates/client/view/SuperPosedTextArea.java b/src/main/java/org/gcube/portlets/user/shareupdates/client/view/SuperPosedTextArea.java
index 9e1a8e1..416557e 100644
--- a/src/main/java/org/gcube/portlets/user/shareupdates/client/view/SuperPosedTextArea.java
+++ b/src/main/java/org/gcube/portlets/user/shareupdates/client/view/SuperPosedTextArea.java
@@ -5,12 +5,12 @@ package org.gcube.portlets.user.shareupdates.client.view;
import java.util.ArrayList;
-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.user.shareupdates.client.ShareUpdateService;
import org.gcube.portlets.user.shareupdates.client.ShareUpdateServiceAsync;
+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;
@@ -31,11 +31,13 @@ public class SuperPosedTextArea extends TextArea {
.create(ShareUpdateService.class);
private final HandlerManager eventBus = new HandlerManager(null);
- PickUsersDialog pickUserDlg;
+ PickItemsDialog pickUserDlg;
+ PickItemsDialog pickHashtagDlg;
public final static int ARROW_UP = 38;
public final static int ARROW_DOWN = 40;
private ArrayList mentionedUsers = new ArrayList();
+ private ArrayList hashtags = new ArrayList();
/**
*
@@ -45,18 +47,27 @@ public class SuperPosedTextArea extends TextArea {
sinkEvents(Event.ONKEYUP);
sinkEvents(Event.ONCONTEXTMENU);
sinkEvents(Event.ONKEYDOWN);
-
- shareupdateService.getPortalUsers(new AsyncCallback>() {
-
+ //get the users
+ shareupdateService.getPortalUsers(new AsyncCallback>() {
@Override
- public void onSuccess(ArrayList users) {
- pickUserDlg = new PickUsersDialog(users, eventBus, 525);
+ public void onSuccess(ArrayList users) {
+ pickUserDlg = new PickItemsDialog('@', users, eventBus, 525, true);
}
-
@Override
public void onFailure(Throwable caught) {
}
});
+ //get the hashtags in this group
+ shareupdateService.getHashtags(new AsyncCallback>() {
+ @Override
+ public void onSuccess(ArrayList hashtags) {
+ pickHashtagDlg = new PickItemsDialog('#', hashtags, eventBus, 525, false);
+ }
+ @Override
+ public void onFailure(Throwable caught) {
+ }
+ });
+
DOM.setElementAttribute(getElement(), "id", "postTextArea");
bind();
}
@@ -89,7 +100,8 @@ public class SuperPosedTextArea extends TextArea {
}
case Event.ONKEYUP: {
injectInDiv(getText());
- pickUserDlg.onKeyUp(event.getKeyCode(), this.getAbsoluteLeft(), this.getAbsoluteTop()+this.getOffsetHeight(), getText());
+ pickUserDlg.onKeyUp(event.getKeyCode(), this.getAbsoluteLeft(), this.getAbsoluteTop()+this.getOffsetHeight(), getText());
+ pickHashtagDlg.onKeyUp(event.getKeyCode(), this.getAbsoluteLeft(), this.getAbsoluteTop()+this.getOffsetHeight(), getText());
break;
}
case Event.ONCONTEXTMENU: {
@@ -105,6 +117,14 @@ public class SuperPosedTextArea extends TextArea {
return;
}
}
+ if (pickHashtagDlg.isShowing()) {
+ //avoid the arrow up to move the cursor at the beginning of the textbox and the TAB to move around inputs and enter to go newline
+ if (event.getKeyCode() == ARROW_UP || event.getKeyCode() == KeyCodes.KEY_TAB || event.getKeyCode() == KeyCodes.KEY_ENTER) {
+ DOM.eventCancelBubble(event, true);
+ DOM.eventPreventDefault(event);
+ return;
+ }
+ }
break;
}
}
@@ -125,10 +145,15 @@ public class SuperPosedTextArea extends TextArea {
// replace all the line braks by
, and all the double spaces by the html version
text = textAreaText.replaceAll("(\r\n|\n)","
");
text = text.replaceAll("\\s\\s"," ");
-
+
for (String mentionedUser : mentionedUsers) {
text = text.replaceAll(mentionedUser,""+mentionedUser+"");
}
+
+// for (String hashtag : hashtags) {
+// text = text.replaceAll(hashtag,""+hashtag+"");
+// }
+
// re-inject the processed text into the div
DOM.getElementById("highlighter").setInnerHTML(text);
}
@@ -137,21 +162,33 @@ 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 triggerChar = event.getTriggerChar();
+ String toAdd = event.getSelectedItem().getAlternativeName();
+ if (triggerChar.compareTo("#") == 0) { //has to be treated differently becase the # char remain present in the text unlike the @
+ toAdd = "#"+toAdd;
+ hashtags.add(toAdd);
+
+ int tPos = getText().lastIndexOf(triggerChar);
+ setText(getText().substring(0, tPos) + toAdd);
- String toAdd = event.getSelectedUser().getFullName();
- mentionedUsers.add(toAdd);
+ Element highDiv = DOM.getElementById("highlighter");
+ tPos = highDiv.getInnerHTML().lastIndexOf(triggerChar);
+ highDiv.setInnerHTML(highDiv.getInnerHTML().substring(0, tPos) + toAdd);
+ }
+ if (event.getTriggerChar().compareTo("@") == 0) {
+ mentionedUsers.add(toAdd);
+ String[] toSplit = getText().split(triggerChar); //get the preceeding part
- String[] toSplit = getText().split("@"); //get the preceeding part
+ setText(toSplit[0]+toAdd);
+ Element highDiv = DOM.getElementById("highlighter");
- setText(toSplit[0]+toAdd);
- Element highDiv = DOM.getElementById("highlighter");
-
- String[] htmlToSplit = highDiv.getInnerHTML().split("@"); //get the preceeding part
- String highLightedUser = ""+toAdd+"";
- highDiv.setInnerHTML(htmlToSplit[0]+highLightedUser);
+ String[] htmlToSplit = highDiv.getInnerHTML().split(triggerChar); //get the preceeding part
+ String highLightedUser = ""+toAdd+"";
+ highDiv.setInnerHTML(htmlToSplit[0]+highLightedUser);
+ }
}
});
}
@@ -163,6 +200,16 @@ public class SuperPosedTextArea extends TextArea {
toReturn.add(mentionedUser);
}
GWT.log(toReturn.toString());
- return mentionedUsers;
+ return toReturn;
+ }
+
+ public ArrayList getHashtags() {
+ ArrayList toReturn = new ArrayList();
+ for (String hashtag : hashtags) {
+ if (getText().contains(hashtag))
+ toReturn.add(hashtag);
+ }
+ GWT.log(toReturn.toString());
+ return toReturn;
}
}
diff --git a/src/main/java/org/gcube/portlets/user/shareupdates/server/MentionNotificationsThread.java b/src/main/java/org/gcube/portlets/user/shareupdates/server/MentionNotificationsThread.java
index 274c800..3892df5 100644
--- a/src/main/java/org/gcube/portlets/user/shareupdates/server/MentionNotificationsThread.java
+++ b/src/main/java/org/gcube/portlets/user/shareupdates/server/MentionNotificationsThread.java
@@ -3,7 +3,7 @@ package org.gcube.portlets.user.shareupdates.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/shareupdates/server/ShareUpdateServiceImpl.java b/src/main/java/org/gcube/portlets/user/shareupdates/server/ShareUpdateServiceImpl.java
index 2250315..4354d0b 100644
--- a/src/main/java/org/gcube/portlets/user/shareupdates/server/ShareUpdateServiceImpl.java
+++ b/src/main/java/org/gcube/portlets/user/shareupdates/server/ShareUpdateServiceImpl.java
@@ -7,9 +7,13 @@ import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.UUID;
import org.apache.commons.validator.routines.UrlValidator;
@@ -39,9 +43,10 @@ import org.gcube.portal.databook.shared.ex.FeedIDNotFoundException;
import org.gcube.portlets.user.shareupdates.client.ShareUpdateService;
import org.gcube.portlets.user.shareupdates.client.view.ShareUpdateForm;
import org.gcube.portlets.user.shareupdates.server.opengraph.OpenGraph;
+import org.gcube.portlets.user.shareupdates.shared.HashTagAndOccurrence;
import org.gcube.portlets.user.shareupdates.shared.LinkPreview;
import org.gcube.portlets.user.shareupdates.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.UserManager;
import org.gcube.vomanagement.usermanagement.impl.liferay.LiferayGroupManager;
@@ -51,6 +56,7 @@ import org.gcube.vomanagement.usermanagement.model.UserModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.google.gwt.core.ext.linker.LinkerOrder.Order;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
@@ -113,7 +119,7 @@ public class ShareUpdateServiceImpl extends RemoteServiceServlet implements Shar
}
public String getDevelopmentUser() {
String user = TEST_USER;
-// user = "massimiliano.assante";
+ user = "massimiliano.assante";
return user;
}
/**
@@ -139,7 +145,7 @@ public class ShareUpdateServiceImpl extends RemoteServiceServlet implements Shar
String escapedFeedText = TextTransfromUtils.escapeHtmlAndTransformUrl(postText);
- ArrayList mentionedUsers = null;
+ ArrayList mentionedUsers = null;
if (mentionedUserFullNames != null && ! mentionedUserFullNames.isEmpty()) {
mentionedUsers = getSelectedUserIds(mentionedUserFullNames);
escapedFeedText = TextTransfromUtils.convertMentionPeopleAnchorHTML(escapedFeedText, mentionedUsers);
@@ -452,16 +458,11 @@ public class ShareUpdateServiceImpl extends RemoteServiceServlet implements Shar
*/
private HashMap getUserVreNames(String username) {
HashMap toReturn = new HashMap();
- if (isInfrastructureScope()) {
- for (GroupModel vre : getUserVREs(username)) {
- toReturn.put(vre.getGroupId(), vre.getGroupName());
- }
- } else {
for (GroupModel vre : getUserVREs(username)) {
if (vre.getGroupName().compareTo(getASLSession().getGroupName())==0)
toReturn.put(vre.getGroupId(), vre.getGroupName());
}
- }
+// }
return toReturn;
}
@@ -557,15 +558,15 @@ public class ShareUpdateServiceImpl extends RemoteServiceServlet implements Shar
*
* @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 = getPortalUsers();
- ArrayList toReturn = new ArrayList();
+ ArrayList allUsers = getPortalUsers();
+ 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;
}
@@ -575,7 +576,7 @@ public class ShareUpdateServiceImpl extends RemoteServiceServlet implements Shar
}
@Override
- public ArrayList getPortalUsers() {
+ public ArrayList getPortalUsers() {
ASLSession session = getASLSession();
boolean withinPortal = false;
if (isWithinPortal() && session.getUsername().compareTo(TEST_USER) != 0) {
@@ -584,14 +585,35 @@ public class ShareUpdateServiceImpl extends RemoteServiceServlet implements Shar
return getOrganizationUsers(session.getScope(), session.getUsername(), withinPortal);
}
+ @Override
+ public ArrayList getHashtags() {
+ ASLSession session = getASLSession();
+ String scope = session.getScope();
+ _log.error("getting hashtags for " + scope);
+ Map map = store.getVREHashtagsWithOccurrence(scope);
+ ArrayList toSort = new ArrayList();
+ _log.trace("Got " + map.keySet().size() + " hashtags");
+ for (String hashtag : map.keySet()) {
+ toSort.add(new HashTagAndOccurrence(hashtag, map.get(hashtag)));
+ }
+ Collections.sort(toSort, Collections.reverseOrder());
+ ArrayList toReturn = new ArrayList<>();
+ for (HashTagAndOccurrence wrapper : toSort) {
+ String hashtag = wrapper.getHashtag().substring(1);
+ toReturn.add(new ItemBean(hashtag, hashtag, hashtag, null));
+ _log.trace(hashtag);
+ }
+ return toReturn;
+ }
+
/**
*
* @param session the Asl Session
* @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();
@@ -616,21 +638,21 @@ public class ShareUpdateServiceImpl extends RemoteServiceServlet implements Shar
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);
@@ -639,4 +661,6 @@ public class ShareUpdateServiceImpl extends RemoteServiceServlet implements Shar
}
+
+
}
diff --git a/src/main/java/org/gcube/portlets/user/shareupdates/server/TextTransfromUtils.java b/src/main/java/org/gcube/portlets/user/shareupdates/server/TextTransfromUtils.java
index 696f757..8604b0f 100644
--- a/src/main/java/org/gcube/portlets/user/shareupdates/server/TextTransfromUtils.java
+++ b/src/main/java/org/gcube/portlets/user/shareupdates/server/TextTransfromUtils.java
@@ -18,7 +18,7 @@ import org.gcube.portal.databook.client.GCubeSocialNetworking;
import org.gcube.portlets.user.shareupdates.server.metaseeker.MetaSeeker;
import org.gcube.portlets.user.shareupdates.server.opengraph.OpenGraph;
import org.gcube.portlets.user.shareupdates.shared.LinkPreview;
-import org.gcube.portlets.widgets.pickuser.shared.PickingUser;
+import org.gcube.portlets.widgets.pickitem.shared.ItemBean;
import org.htmlcleaner.HtmlCleaner;
import org.htmlcleaner.TagNode;
import org.htmlparser.beans.StringBean;
@@ -31,6 +31,7 @@ import com.sun.net.ssl.HttpsURLConnection;
* @author Massimiliano Assante, ISTI-CNR
*
*/
+@SuppressWarnings({ "deprecation", "restriction" })
public class TextTransfromUtils {
/**
*
@@ -55,13 +56,13 @@ public class TextTransfromUtils {
* @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/java/org/gcube/portlets/user/shareupdates/shared/HashTagAndOccurrence.java b/src/main/java/org/gcube/portlets/user/shareupdates/shared/HashTagAndOccurrence.java
new file mode 100644
index 0000000..454abc8
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/shareupdates/shared/HashTagAndOccurrence.java
@@ -0,0 +1,35 @@
+package org.gcube.portlets.user.shareupdates.shared;
+
+public class HashTagAndOccurrence implements Comparable{
+ private String hashtag;
+ private Integer occurrence;
+ public HashTagAndOccurrence(String hashtag, Integer occurrence) {
+ super();
+ this.hashtag = hashtag;
+ this.occurrence = occurrence;
+ }
+ public String getHashtag() {
+ return hashtag;
+ }
+ public void setHashtag(String hashtag) {
+ this.hashtag = hashtag;
+ }
+ public Integer getOccurrence() {
+ return occurrence;
+ }
+ public void setOccurrence(Integer occurrence) {
+ this.occurrence = occurrence;
+ }
+ @Override
+ public String toString() {
+ return "HashTagAndOccurrence [hashtag=" + hashtag + ", occurrence="
+ + occurrence + "]";
+ }
+ @Override
+ public int compareTo(HashTagAndOccurrence o) {
+ if (this.occurrence == o.getOccurrence()) return 0;
+ return (this.occurrence > o.getOccurrence()) ? 1 : -1;
+ }
+
+
+}
diff --git a/src/main/resources/org/gcube/portlets/user/shareupdates/ShareUpdates.gwt.xml b/src/main/resources/org/gcube/portlets/user/shareupdates/ShareUpdates.gwt.xml
index 98b717d..1cc635d 100644
--- a/src/main/resources/org/gcube/portlets/user/shareupdates/ShareUpdates.gwt.xml
+++ b/src/main/resources/org/gcube/portlets/user/shareupdates/ShareUpdates.gwt.xml
@@ -13,12 +13,12 @@
name="net.eliasbalasis.tibcopagebus4gwt.testsubscriber.TestSubscriber" />
-
+
-
+
diff --git a/src/main/webapp/ShareUpdates.css b/src/main/webapp/ShareUpdates.css
index 25de03f..4fbbea8 100644
--- a/src/main/webapp/ShareUpdates.css
+++ b/src/main/webapp/ShareUpdates.css
@@ -65,6 +65,11 @@
background-color: #D8DFEA !important;
}
+.highlightedHashtag {
+ background-color: #0084B5 !important;
+}
+
+
/* DIV trick ends here */
.gwt-Button {