[jboss-svn-commits] JBL Code SVN: r5206 - in labs/jbosslabs/trunk/portal-extensions: forge-common/src/java/org/jboss/forge/common forge-common/src/java/org/jboss/forge/common/soa/primates forge-tagme/src/java/org/jboss/labs/tagme forge-tagme/src/java/org/jboss/labs/tagme/gwt/client forge-tagme/src/java/org/jboss/labs/tagme/services primates/src/java/org/jbosslabs/portlets/primates/service

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jul 20 17:35:50 EDT 2006


Author: szimano
Date: 2006-07-20 17:35:44 -0400 (Thu, 20 Jul 2006)
New Revision: 5206

Added:
   labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/LabsPopupPanel.java
   labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/ShowAuthorFeedsListener.java
   labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/ShowFeedsListener.java
   labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTools.java
Modified:
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeHelper.java
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/primates/PrimatesService.java
   labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/TagMeServlet.java
   labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/LabsDialogBox.java
   labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/SearchListener.java
   labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeClickListener.java
   labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java
   labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java
   labs/jbosslabs/trunk/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/service/PrimatesServiceImpl.java
Log:
JBLAB-724 bio showing up and usernames


Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeHelper.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeHelper.java	2006-07-20 20:58:55 UTC (rev 5205)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeHelper.java	2006-07-20 21:35:44 UTC (rev 5206)
@@ -40,6 +40,8 @@
 import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeMessage;
 import javax.management.MalformedObjectNameException;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
 import javax.portlet.PortalContext;
 import javax.portlet.PortletRequest;
 import javax.servlet.ServletRequest;
@@ -47,6 +49,10 @@
 import org.jboss.forge.common.service.ForgeManagement;
 import org.jboss.mx.util.MBeanProxyExt;
 import org.jboss.mx.util.MBeanServerLocator;
+import org.jboss.portal.core.model.NoSuchUserException;
+import org.jboss.portal.core.model.User;
+import org.jboss.portal.core.modules.ModuleException;
+import org.jboss.portal.core.modules.UserModule;
 import org.jboss.portlet.JBossRenderRequest;
 import org.jboss.shotoku.ContentManager;
 import org.jboss.shotoku.aop.CacheItem;
@@ -115,6 +121,8 @@
 	private static Set<Integer> volatileTempFiles;
 	
 	private static VolatileTempFileRemover vtfRemover;
+	
+	private static final String userModuleCtx = "java:portal/UserModule";
 
 	static {
 		forgeManagement = null;

Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/primates/PrimatesService.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/primates/PrimatesService.java	2006-07-20 20:58:55 UTC (rev 5205)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/primates/PrimatesService.java	2006-07-20 21:35:44 UTC (rev 5206)
@@ -1,5 +1,7 @@
 package org.jboss.forge.common.soa.primates;
 
+import org.jboss.portal.core.model.User;
+
 public interface PrimatesService {
 	
 	public static final String PRIMATES_SERVICE = "labs:service=primates";
@@ -8,6 +10,8 @@
 	
 	public PrimateDTO getPrimate(String nickname, String portalName);
 	
+	public User getUser(String username);
+	
 	void create() throws Exception;
 
 	void start() throws Exception;

Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/TagMeServlet.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/TagMeServlet.java	2006-07-20 20:58:55 UTC (rev 5205)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/TagMeServlet.java	2006-07-20 21:35:44 UTC (rev 5206)
@@ -40,6 +40,8 @@
 		TaggingService {
 
 	private final static Logger log = Logger.getLogger(TagMeServlet.class);
+	
+	private static final String NO_INFO = "<i>No info available</i>";
 
 	/**
 	 * 
@@ -68,7 +70,8 @@
 		return vect;
 	}
 
-	public boolean addTag(String user, String path, String clas, String tags, String descriptions,  boolean website) {
+	public boolean addTag(String user, String path, String clas, String tags,
+			String descriptions, boolean website) {
 		try {
 			TagMeTagger tagger = (TagMeTagger) Class.forName(clas)
 					.newInstance();
@@ -192,13 +195,16 @@
 	public String getUserInfo(String nickname) {
 		try {
 			PrimatesService pServ = LabsServices.getPrimatesService();
-			String bio = pServ.getPrimate(nickname, "default").getBio(); 
-			return bio;
+			if (pServ.getPrimate(nickname, "default") != null) {
+				String bio = pServ.getPrimate(nickname, "default").getBio();
+				return bio;
+			} else
+				return NO_INFO;
 		} catch (Exception e) {
 			e.printStackTrace();
-			return " ";
+			return NO_INFO;
 		}
-		
+
 	}
 
 }

Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/LabsDialogBox.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/LabsDialogBox.java	2006-07-20 20:58:55 UTC (rev 5205)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/LabsDialogBox.java	2006-07-20 21:35:44 UTC (rev 5206)
@@ -7,8 +7,10 @@
 
 	public void setPopupPosition(int left, int top) {
 		DOM.setStyleAttribute(this.getElement(), "position", "absolute");
-		DOM.setStyleAttribute(this.getElement(), "left", String.valueOf(left)+"px");
-		DOM.setStyleAttribute(this.getElement(), "top", String.valueOf(top)+"px");
+		DOM.setStyleAttribute(this.getElement(), "left", String.valueOf(left)
+				+ "px");
+		DOM.setStyleAttribute(this.getElement(), "top", String.valueOf(top)
+				+ "px");
 	}
 
 }

Added: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/LabsPopupPanel.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/LabsPopupPanel.java	2006-07-20 20:58:55 UTC (rev 5205)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/LabsPopupPanel.java	2006-07-20 21:35:44 UTC (rev 5206)
@@ -0,0 +1,23 @@
+package org.jboss.labs.tagme.gwt.client;
+
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.ui.PopupPanel;
+
+public class LabsPopupPanel extends PopupPanel {
+
+	public LabsPopupPanel(boolean b) {
+		super(b);
+	}
+	
+	public LabsPopupPanel() {
+		super();
+	}
+
+	public void setPopupPosition(int left, int top) {
+		DOM.setStyleAttribute(this.getElement(), "position", "absolute");
+		DOM.setStyleAttribute(this.getElement(), "left", String.valueOf(left)
+				+ "px");
+		DOM.setStyleAttribute(this.getElement(), "top", String.valueOf(top)
+				+ "px");
+	}
+}

Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/SearchListener.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/SearchListener.java	2006-07-20 20:58:55 UTC (rev 5205)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/SearchListener.java	2006-07-20 21:35:44 UTC (rev 5206)
@@ -26,11 +26,11 @@
 	private TextBox author;
 
 	private TextBox keyword;
-	
+
 	private HTML bio;
 
-	public SearchListener(VerticalPanel results, TextBox tags,
-			TextBox author, TextBox keyword, String clas, HTML bio) {
+	public SearchListener(VerticalPanel results, TextBox tags, TextBox author,
+			TextBox keyword, String clas, HTML bio) {
 		this.results = results;
 		this.clas = clas;
 		this.tags = tags;
@@ -51,29 +51,37 @@
 		AsyncCallback callback = new AsyncCallback() {
 			public void onSuccess(Object result) {
 				Vector res = (Vector) result;
-				
+
 				String last = "";
 				boolean oneAuthor = true;
 
-				for (int i = 0; i < res.size(); i += 3) {
+				for (int i = 0; i < res.size(); i += 5) {
+					
+					String tag = (String)res.get(i);
+					String author = (String)res.get(i + 1);
+					String desc = (String)res.get(i + 2);
+					String feed = (String)res.get(i + 3);
+					String allResFeed = (String)res.get(i + 4);
+
 					if (oneAuthor && last.equals("")) {
-						last = res.get(i + 2).toString();
-					}
-					else if (oneAuthor) {
-						if (!last.equals(res.get(i + 2))) {
+						last = author.toString();
+					} else if (oneAuthor) {
+						if (!last.equals(author)) {
 							oneAuthor = false;
 						}
 					}
+
+					results.add(TagMeShowPopupListener.getLink(desc, feed, allResFeed, tag, author));
 					
-					results.add(new HTML("<a href=\""
-							+ res.get(i + 1).toString() + "\">"
-							+ res.get(i).toString() + "</a>"));
+					// results.add(new HTML("<a href=\""
+					// + res.get(i + 1).toString() + "\">"
+					// + res.get(i).toString() + "</a>"));
 				}
-				
+
 				if (oneAuthor) {
 					getBio(last);
 				}
-				
+
 			}
 
 			public void onFailure(Throwable caught) {
@@ -82,8 +90,8 @@
 			}
 		};
 
-		//Window.alert("'" + tags.getText() + "' '" + author.getText() + "' '"
-		//		+ keyword.getText() + "'");
+		// Window.alert("'" + tags.getText() + "' '" + author.getText() + "' '"
+		// + keyword.getText() + "'");
 
 		// call AJAX methos, after that callback is going to be executed
 		tagging.search((tags.getText().length() == 0) ? " " : tags.getText(),
@@ -91,7 +99,7 @@
 				(keyword.getText().length() == 0) ? " " : keyword.getText(),
 				clas, callback);
 	}
-	
+
 	private void getBio(String nickname) {
 		bio.setHTML("");
 

Added: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/ShowAuthorFeedsListener.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/ShowAuthorFeedsListener.java	2006-07-20 20:58:55 UTC (rev 5205)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/ShowAuthorFeedsListener.java	2006-07-20 21:35:44 UTC (rev 5206)
@@ -0,0 +1,38 @@
+package org.jboss.labs.tagme.gwt.client;
+
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+public class ShowAuthorFeedsListener implements ClickListener {
+
+	private String  author,
+					allFeed,
+					uniqueFeed;
+	
+	public ShowAuthorFeedsListener(String author, String allFeed, String uniqueFeed) {
+		this.author = author;
+		this.allFeed = allFeed;
+		this.uniqueFeed = uniqueFeed;
+	}
+
+	public void onClick(Widget sender) {
+		LabsPopupPanel panel = new LabsPopupPanel(true);
+		VerticalPanel vPanel = new VerticalPanel();
+		
+		vPanel.add(new HTML("Subscribe to <a href='"+allFeed+"' target='_blank'>all resources tagged by "+ author +"</a>"));
+		vPanel.add(new HTML("Subscribe to <a href='"+uniqueFeed+"' target='_blank'>unique tags by "+ author +"</a>"));
+		
+		panel.add(vPanel);
+		
+		panel.setStyleName(TagMeShowPopupListener.TAGME_STYLE);
+		
+		panel.setPopupPosition(DOM.getAbsoluteLeft(sender.getElement()) + 5,
+				DOM.getAbsoluteTop(sender.getElement()) + 5);
+		
+		panel.show();
+	}
+
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/ShowFeedsListener.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/ShowFeedsListener.java	2006-07-20 20:58:55 UTC (rev 5205)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/ShowFeedsListener.java	2006-07-20 21:35:44 UTC (rev 5206)
@@ -0,0 +1,43 @@
+package org.jboss.labs.tagme.gwt.client;
+
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.PopupPanel;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+public class ShowFeedsListener implements ClickListener {
+	
+	private String feed;
+	private String allResFeed;
+	private String tagName;
+	private String author;
+	
+	public ShowFeedsListener(String feed, String allResFeed, String tagName, String author) {
+		this.feed = feed;
+		this.allResFeed = allResFeed;
+		this.tagName = tagName;
+		this.author = author;
+	}
+
+	public void onClick(Widget sender) {
+		LabsPopupPanel panel = new LabsPopupPanel(true);
+		VerticalPanel vPanel = new VerticalPanel();
+		
+		vPanel.add(new HTML("Subscribe to <a href='"+feed+"' target='_blank'>"+tagName+" by "+ author +"</a>"));
+		vPanel.add(new HTML("Subscribe to <a href='"+allResFeed+"' target='_blank'>"+tagName+" by all authors</a>"));
+		
+		panel.add(vPanel);
+		
+		panel.setStyleName(TagMeShowPopupListener.TAGME_STYLE);
+		
+		panel.setPopupPosition(DOM.getAbsoluteLeft(sender.getElement()) + 5,
+				DOM.getAbsoluteTop(sender.getElement()) + 5);
+		
+		panel.show();
+	}
+
+}

Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeClickListener.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeClickListener.java	2006-07-20 20:58:55 UTC (rev 5205)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeClickListener.java	2006-07-20 21:35:44 UTC (rev 5206)
@@ -110,7 +110,7 @@
 					descs = desc;
 				} else {
 					tags += TAG_SEP + tag;
-					descs += TAG_SEP + ((desc != null && desc.length() > 0) ? desc : " ");
+					descs += TAG_SEP + ((desc != null && desc.length() > 0) ? desc : tag);
 				}
 			}
 		}
@@ -122,8 +122,10 @@
 			if (chBox.isChecked()) {
 				if (tags.length() == 0) {
 					tags = chBox.getText();
+					descs = chBox.getText();
 				} else {
 					tags += TAG_SEP + chBox.getText();
+					descs += TAG_SEP + chBox.getText();
 				}
 			}
 		}

Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java	2006-07-20 20:58:55 UTC (rev 5205)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java	2006-07-20 21:35:44 UTC (rev 5206)
@@ -47,7 +47,7 @@
 
 public class TagMeShowPopupListener implements ClickListener {
 
-	private static final String TAGME_STYLE = "tagmePanel";
+	public static final String TAGME_STYLE = "tagmePanel";
 
 	private Timer timer;
 
@@ -105,6 +105,7 @@
 			public void onSuccess(Object result) {
 				Vector vect = (Vector) result;
 
+				if (vect.size() > 0) {
 				int rowLen = (int) Math.sqrt(vect.size());
 
 				for (int i = 0; i < vect.size(); i++) {
@@ -112,6 +113,10 @@
 					suggTable.setWidget(i / rowLen, i % rowLen, chBox);
 					suggestionCheckboxes.add(chBox);
 				}
+				}
+				else {
+					suggTable.setHTML(0, 0, "<i>There are no suggestions available</i>");
+				}
 			}
 
 			public void onFailure(Throwable caught) {
@@ -186,16 +191,16 @@
 					String fullName = to[2];
 					String feed = to[3];
 					String authorFeed = to[4];
-					String desc = to[5];
-					int subsc = Integer.parseInt(to[6]);
+					String authorUniqueFeed = to[5];
+					String allResFeed = to[6];
+					String desc = to[7];
+					int subsc = Integer.parseInt(to[8]);
 
 					if (!rows.keySet().contains(user)) {
 						rows.put(user, new Integer(rowsNum + 1));
 						table.setHTML(rowsNum + 1, 1, String.valueOf(subsc));
 						table
-								.setHTML(++rowsNum, 2, "<b><a href='"
-										+ authorFeed + "' target='_blank' >"
-										+ fullName + "</a></b>");
+								.setWidget(++rowsNum, 2, getAuthorLink(fullName, user, authorFeed, authorUniqueFeed));
 					}
 
 					int curRow = ((Integer) rows.get(user)).intValue();
@@ -206,10 +211,9 @@
 						im.setStyleName("tagme_btn");
 						
 						HorizontalPanel hpanel = new HorizontalPanel();
-						hpanel.add(new HTML("<a href='" + feed
-								+ "' target='_blank' title='"
-								+ ((desc == null) ? "" : desc) + "' >" + tag
-								+ "</a>"));
+						
+						hpanel.add(getLink(desc, feed, allResFeed, tag, user));
+						
 						hpanel.add(im);
 
 						im.addClickListener(new DeleteTagClickListener(
@@ -219,11 +223,8 @@
 								hpanel);
 					} else {
 						// just show tag
-						table.setHTML(curRow, table.getCellCount(curRow),
-								"<a href='" + feed
-										+ "' target='_blank' title='"
-										+ ((desc == null) ? "" : desc) + "' >"
-										+ tag + "</a>");
+						table.setWidget(curRow, table.getCellCount(curRow),
+								getLink(desc, feed, allResFeed, tag, user));
 					}
 				}
 			}
@@ -244,6 +245,27 @@
 		refreshAllTags();
 	}
 
+	public static HTML getLink(String desc, String feed, String allResFeed, String tag, String user) {
+		HTML link = new HTML("<a href='" + /*feed*/ ""
+				+ "' target='_blank' title='"
+				+ ((desc == null) ? "" : desc) + "' onclick='return false' >" + tag
+				+ "</a>");
+		
+		link.addClickListener(new ShowFeedsListener(feed, allResFeed, tag, user));
+		
+		return link;
+	}
+	
+	public static HTML getAuthorLink(String fullName, String author, String allFeed, String uniqueFeed) {
+		HTML link = new HTML("<b><a href='" + /*feed*/ ""
+				+ "' target='_blank' onclick='return false' >" + fullName
+				+ "</a></b>");
+		
+		link.addClickListener(new ShowAuthorFeedsListener(author, allFeed, uniqueFeed));
+		
+		return link;
+	}
+	
 	public void onClick(Widget sender) {
 		VerticalPanel panel = new VerticalPanel();
 

Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java	2006-07-20 20:58:55 UTC (rev 5205)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java	2006-07-20 21:35:44 UTC (rev 5206)
@@ -101,15 +101,20 @@
 						+ TagMeClickListener.TAG_SEP
 						+ tag.getAuthor()
 						+ TagMeClickListener.TAG_SEP
-						+ tag.getAuthor()
+						+ TagMeTools.getFullName(tag.getAuthor())
 						+ TagMeClickListener.TAG_SEP
 						+ service.getFeedLink(FeedType.AUTHOR_TAG, feedData,
 								"rss2")
 						+ TagMeClickListener.TAG_SEP
 						+ service.getFeedLink(FeedType.AUTHOR_ALL, tag
 								.getAuthor(), "rss2")
-						+ TagMeClickListener.TAG_SEP + tag.getData()
 						+ TagMeClickListener.TAG_SEP
+						+ service.getFeedLink(FeedType.AUTHOR_UNIQUE, tag
+								.getAuthor(), "rss2")
+						+ TagMeClickListener.TAG_SEP
+						+ service.getFeedLink(FeedType.TAGS, tag.getName(),
+								"rss2") + TagMeClickListener.TAG_SEP
+						+ tag.getData() + TagMeClickListener.TAG_SEP
 						+ service.getAllSubscribers(tag.getAuthor()));
 			}
 
@@ -124,11 +129,11 @@
 				String[] o1Splited = o1.split(TagMeClickListener.TAG_SEP);
 				String[] o2Splited = o2.split(TagMeClickListener.TAG_SEP);
 
-				return 0 - ((Integer.valueOf(o1Splited[6]).compareTo(
-						Integer.valueOf(o2Splited[6])) == 0) ? (0 - o1Splited[2]
-						.compareTo(o2Splited[2])) : Integer
-						.valueOf(o1Splited[6]).compareTo(
-								Integer.valueOf(o2Splited[6])));
+				return 0 - ((Integer.valueOf(o1Splited[8]).compareTo(
+						Integer.valueOf(o2Splited[8])) == 0) ? (0 - o1Splited[2]
+						.compareTo(o2Splited[2]))
+						: Integer.valueOf(o1Splited[8]).compareTo(
+								Integer.valueOf(o2Splited[8])));
 			}
 
 		});
@@ -230,11 +235,25 @@
 
 		Vector result = new Vector();
 
+		String lastTag = "";
 		for (Tag tag : allTags) {
-			result.add(tag.getName());
-			result.add(service
-					.getFeedLink(FeedType.TAGS, tag.getName(), "rss2"));
-			result.add(tag.getAuthor());
+
+			// check if there are no duplicates
+			if (!tag.getName().equals(lastTag)) {
+				List<String> tagData = new ArrayList<String>();
+				tagData.add(tag.getName());
+				tagData.add(tag.getAuthor());
+
+				result.add(tag.getName());
+				result.add(tag.getAuthor());
+				result.add(tag.getData());
+				result.add(service.getFeedLink(FeedType.AUTHOR_TAG, tagData,
+						"rss2"));
+				result.add(service.getFeedLink(FeedType.TAGS, tag.getName(),
+						"rss2"));
+
+				lastTag = tag.getName();
+			}
 		}
 
 		return result;

Added: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTools.java	2006-07-20 20:58:55 UTC (rev 5205)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTools.java	2006-07-20 21:35:44 UTC (rev 5206)
@@ -0,0 +1,25 @@
+package org.jboss.labs.tagme.services;
+
+import javax.management.MalformedObjectNameException;
+
+import org.jboss.forge.common.soa.LabsServices;
+import org.jboss.portal.core.model.User;
+
+public class TagMeTools {
+
+	public static String getFullName(String username) {
+		try {
+			User user = LabsServices.getPrimatesService().getUser(username);
+
+			if (user != null
+					&& (user.getGivenName() != null && user.getFamilyName() != null)) {
+				return user.getGivenName() + " " + user.getFamilyName();
+			} else {
+				return username;
+			}
+		} catch (MalformedObjectNameException e) {
+			e.printStackTrace();
+			return username;
+		}
+	}
+}

Modified: labs/jbosslabs/trunk/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/service/PrimatesServiceImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/service/PrimatesServiceImpl.java	2006-07-20 20:58:55 UTC (rev 5205)
+++ labs/jbosslabs/trunk/portal-extensions/primates/src/java/org/jbosslabs/portlets/primates/service/PrimatesServiceImpl.java	2006-07-20 21:35:44 UTC (rev 5206)
@@ -95,4 +95,28 @@
 		return null;
 	}
 
+	public User getUser(String username) {
+		try {
+			InitialContext initialContext = new InitialContext();
+
+			UserModule userModule = (UserModule) initialContext
+					.lookup(userModuleCtx);
+
+			User user = userModule.findUserByUserName(username);
+
+			return user;
+		} catch (NamingException e) {
+			e.printStackTrace();
+		} catch (IllegalArgumentException e) {
+			e.printStackTrace();
+		} catch (NoSuchUserException e) {
+			e.printStackTrace();
+		} catch (ModuleException e) {
+			e.printStackTrace();
+		}
+
+		// if soemthing went wrong return null
+		return null;
+	}
+
 }




More information about the jboss-svn-commits mailing list