Author: dam...@jb... Date: 2006-06-09 12:19:30 -0400 (Fri, 09 Jun 2006) New Revision: 4694 Added: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/configuration/to-copy/JBLabs-ds.xml.sample labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/DeleteTagClickListener.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/web/images/ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/web/images/delete.gif Removed: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-freezone/src/web/WEB-INF/jsp/ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/web/images/delete.gif Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/configuration/maven.xml labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/configuration/to-copy/ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-freezone/src/java/org/jboss/forge/projects/freezone/Freezone.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/project.xml labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/TagMeServlet.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMe.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeClickListener.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingService.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingServiceAsync.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-theme/project.xml labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-theme/src/java/org/jboss/portal/core/theme/render/impl/JBFRegionRenderer.java Log: MERGED: -r 4662:4692 https://svn.labs.jboss.com/labs/jbosslabs/trunk into qa for Labs 1.1 promote. This updates the Red Hat theme at the top. Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/configuration/maven.xml =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/configuration/maven.xml 2006-06-09 16:18:16 UTC (rev 4693) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/configuration/maven.xml 2006-06-09 16:19:30 UTC (rev 4694) @@ -18,7 +18,9 @@ <goal name="deploy"> <ant:copy todir="${local.deploy.dir}" overwrite="true"> - <ant:fileset dir="to-copy" /> + <ant:fileset dir="to-copy"> + <exclude name="**/*.sample"/> + </ant:fileset> </ant:copy> <ant:delete file="${local.deploy.dir}/jboss-portal.sar/conf/data/default-object.xml" /> <ant:delete dir="${local.deploy.dir}/jboss-portal.sar/portal-samples.war" /> Property changes on: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/configuration/to-copy ___________________________________________________________________ Name: svn:ignore + JBLabs-ds.xml Copied: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/configuration/to-copy/JBLabs-ds.xml.sample (from rev 4692, labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/JBLabs-ds.xml.sample) Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-freezone/src/java/org/jboss/forge/projects/freezone/Freezone.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-freezone/src/java/org/jboss/forge/projects/freezone/Freezone.java 2006-06-09 16:18:16 UTC (rev 4693) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-freezone/src/java/org/jboss/forge/projects/freezone/Freezone.java 2006-06-09 16:19:30 UTC (rev 4694) @@ -57,6 +57,8 @@ private final static String ERROR_404_MSG = "404 - Not found."; + private final static String TAGME_JSP = "freezone/tagme.jsp"; + private void sendResponseNotFound(JBossRenderResponse response) throws IOException { response.setContentType(Constants.PAGES_MIME_TYPE); @@ -114,7 +116,7 @@ // (possibly) create a new page.ru if (isAllowedToEdit(portalName, request, response)) { response.setContentType(Constants.PAGES_MIME_TYPE); - writeTagmeButton(request, response, requestedPath); + writeTagmeButton(portalName, request, response, requestedPath); writeEditLink(portalName, requestedPath, request, response); response.getWriter().println(ERROR_404_MSG); } else { @@ -125,7 +127,7 @@ } response.setContentType(Constants.PAGES_MIME_TYPE); - writeTagmeButton(request, response, requestedPath); + writeTagmeButton(portalName, request, response, requestedPath); if (isAllowedToEdit(portalName, request, response)) { writeEditLink(portalName, requestedPath, request, response); Tools.transfer(requestedNode.getContentInputStream(), response @@ -136,15 +138,17 @@ } } - private void writeTagmeButton(JBossRenderRequest request, - JBossRenderResponse response, String requestedPath) - throws PortletException, IOException { + private void writeTagmeButton(String portalName, + JBossRenderRequest request, JBossRenderResponse response, + String requestedPath) throws PortletException, IOException { if (request.getUser() != null) { request.setAttribute("TAGME_PATH", requestedPath); request.setAttribute("TAGME_USER", request.getUser().getUserName()); - + PortletRequestDispatcher rd = getPortletContext() - .getRequestDispatcher("/WEB-INF/jsp/normal.jsp"); + .getRequestDispatcher( + ForgeHelper.createRepoAccessPath(portalName, + TAGME_JSP)); rd.include(request, response); } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/project.xml =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/project.xml 2006-06-09 16:18:16 UTC (rev 4693) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/project.xml 2006-06-09 16:19:30 UTC (rev 4694) @@ -42,5 +42,26 @@ <version>1.0</version> <jar>shotoku-tags.jar</jar> </dependency> + + <dependency> + <groupId>jboss</groupId> + <artifactId>ejb3-persistence</artifactId> + <jar>ejb3-persistence.jar</jar> + </dependency> + <dependency> + <groupId>jboss</groupId> + <artifactId>jboss-ejb3x</artifactId> + <jar>jboss-ejb3x.jar</jar> + </dependency> + <dependency> + <groupId>jboss</groupId> + <artifactId>jboss-j2ee</artifactId> + <jar>jboss-j2ee.jar</jar> + </dependency> + <dependency> + <groupId>jboss</groupId> + <artifactId>jboss-annotations-ejb3</artifactId> + <jar>jboss-annotations-ejb3.jar</jar> + </dependency> </dependencies> </project> Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/TagMeServlet.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/TagMeServlet.java 2006-06-09 16:18:16 UTC (rev 4693) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/TagMeServlet.java 2006-06-09 16:19:30 UTC (rev 4694) @@ -86,4 +86,27 @@ } } + public boolean deleteTag(String user, String path, String clas, String tag) { + + try { + TagMeTagger tagger = (TagMeTagger)Class.forName(clas).newInstance(); + + tagger.deleteTag(user, path, tag); + + return true; + } catch (InstantiationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IllegalAccessException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (ClassNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + return false; + + } + } Copied: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/DeleteTagClickListener.java (from rev 4692, labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/DeleteTagClickListener.java) Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMe.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMe.java 2006-06-09 16:18:16 UTC (rev 4693) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMe.java 2006-06-09 16:19:30 UTC (rev 4694) @@ -26,6 +26,7 @@ import com.google.gwt.core.client.EntryPoint; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Button; +import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.RootPanel; public class TagMe implements EntryPoint { @@ -109,9 +110,14 @@ } } - private Button getButton(String path, String user, String clas) { + private Image getButton(String path, String user, String clas) { - return new Button("TagMe", new TagMeShowPopupListener(path, user, clas)); + Image image = new Image("/file-access/default/theme/images/but_tagme.gif"); + image.setStyleName("tagme_btn"); + image.addClickListener(new TagMeShowPopupListener(path, user, clas)); + + return image; + //return new Button("TagMe", new TagMeShowPopupListener(path, user, clas)); } } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeClickListener.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeClickListener.java 2006-06-09 16:18:16 UTC (rev 4693) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeClickListener.java 2006-06-09 16:19:30 UTC (rev 4694) @@ -35,28 +35,25 @@ import com.google.gwt.user.client.ui.Widget; public class TagMeClickListener implements ClickListener { - + public static final String TAG_SEP = ";&&tagMeSeparator&&;"; - - private static final String ADDING_TXT = "Adding tags"; private String path; private String user; private Vector textBoxes; - + private String clas; - + private Label info; - + private Button button; - - private Timer timer; - + private TagMeShowPopupListener parent; - public TagMeClickListener(String path, String user, String clas, Vector textBoxes, Label info, TagMeShowPopupListener parent) { + public TagMeClickListener(String path, String user, String clas, + Vector textBoxes, Label info, TagMeShowPopupListener parent) { this.path = path; this.user = user; this.textBoxes = textBoxes; @@ -66,56 +63,46 @@ } public void onClick(Widget sender) { + TaggingServiceAsync tagging = (TaggingServiceAsync) GWT .create(TaggingService.class); - this.button = (Button)sender; - + this.button = (Button) sender; + ServiceDefTarget endpoint = (ServiceDefTarget) tagging; endpoint.setServiceEntryPoint("/tagme-servlet/tag/"); - info.setText(ADDING_TXT); - - timer = new Timer() { - - public void run() { - info.setText(info.getText() + "."); - } - - }; - - timer.scheduleRepeating(1000); - + parent.startProgressAnim("Adding tags"); + AsyncCallback callback = new AsyncCallback() { public void onSuccess(Object result) { - timer.cancel(); - button.setEnabled(true); + parent.stopProgressAnim("Tags added"); parent.refreshTags(); - info.setText("Tags added"); } public void onFailure(Throwable caught) { Window.alert("Error ! " + caught.getMessage()); + parent.stopProgressAnim("Error while adding tags"); } }; button.setEnabled(false); - + String tags = ""; - + for (int i = 0; i < textBoxes.size(); i++) { - String tag = ((TextBox)textBoxes.get(i)).getText(); + String tag = ((TextBox) textBoxes.get(i)).getText(); if (tag != null && tag.length() > 0) { if (tags.length() == 0) { tags = tag; - } - else { + } else { tags += TAG_SEP + tag; } } } - tagging.addTag(user, path, clas, tags, callback); + tagging.addTag(user, path, clas, tags, callback); + } } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java 2006-06-09 16:18:16 UTC (rev 4693) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java 2006-06-09 16:19:30 UTC (rev 4694) @@ -25,6 +25,7 @@ import java.util.Vector; import com.google.gwt.core.client.GWT; +import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.rpc.ServiceDefTarget; @@ -33,6 +34,7 @@ import com.google.gwt.user.client.ui.DialogBox; import com.google.gwt.user.client.ui.FlexTable; import com.google.gwt.user.client.ui.HorizontalPanel; +import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.VerticalPanel; @@ -42,6 +44,8 @@ private static final String TAGME_STYLE = "tagmePanel"; + private Timer timer; + private String path; private String currentUser; @@ -52,12 +56,18 @@ private FlexTable table; + private Button saveBtn; + public TagMeShowPopupListener(String path, String user, String clas) { this.path = path; this.currentUser = user; this.clas = clas; } + public TagMeShowPopupListener getMyself() { + return this; + } + public void refreshTags() { while (table.getRowCount() > 0) { @@ -79,37 +89,44 @@ int rowsNum = 0; for (int i = 0; i < vect.size(); i++) { - - String[] to = ((String) vect.get(i)).split(TagMeClickListener.TAG_SEP); - + + String[] to = ((String) vect.get(i)) + .split(TagMeClickListener.TAG_SEP); + String tag = to[0]; String user = to[1]; String fullName = to[2]; if (!rows.keySet().contains(user)) { rows.put(user, new Integer(rowsNum)); - table.setHTML(rowsNum++, 0, "<b>"+fullName+"</b>"); + table.setHTML(rowsNum++, 0, "<b>" + fullName + "</b>"); } int curRow = ((Integer) rows.get(user)).intValue(); - + if (table.getText(curRow, 0).equals(currentUser)) { // current user - add delete button - VerticalPanel vpanel = new VerticalPanel(); - vpanel.add(new Label(tag)); - vpanel.add(new Button()); - - table.setWidget(curRow, table.getCellCount(curRow), vpanel); - } - else { - //just show tag + Image im = new Image("/tagme-servlet/images/delete.gif"); + + HorizontalPanel hpanel = new HorizontalPanel(); + hpanel.add(new Label(tag)); + hpanel.add(im); + + im.addClickListener(new DeleteTagClickListener( + currentUser, tag, path, getMyself(), clas)); + + table.setWidget(curRow, table.getCellCount(curRow), + hpanel); + } else { + // just show tag table.setText(curRow, table.getCellCount(curRow), tag); } } } public void onFailure(Throwable caught) { - Window.alert("Error ! " + caught.getMessage() + " Throwable: " + caught); + Window.alert("Error ! " + caught.getMessage() + " Throwable: " + + caught); } }; @@ -141,8 +158,9 @@ final DialogBox dialog = new DialogBox(); HorizontalPanel btnPanel = new HorizontalPanel(); - btnPanel.add(new Button("Save", new TagMeClickListener(path, currentUser, - clas, textBoxes, info, this))); + this.saveBtn = new Button("Save", new TagMeClickListener(path, + currentUser, clas, textBoxes, info, this)); + btnPanel.add(saveBtn); btnPanel.add(new Button("Close", new ClickListener() { public void onClick(Widget sender) { @@ -177,4 +195,24 @@ } + public void startProgressAnim(String text) { + info.setText(text); + + timer = new Timer() { + + public void run() { + info.setText(info.getText() + "."); + } + + }; + + timer.scheduleRepeating(1000); + } + + public void stopProgressAnim(String text) { + timer.cancel(); + saveBtn.setEnabled(true); + info.setText(text); + } + } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingService.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingService.java 2006-06-09 16:18:16 UTC (rev 4693) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingService.java 2006-06-09 16:19:30 UTC (rev 4694) @@ -42,4 +42,6 @@ public Vector getTags(String path, String clas); public boolean addTag(String user, String path, String clas, String tags); + + public boolean deleteTag(String user, String path, String clas, String tag); } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingServiceAsync.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingServiceAsync.java 2006-06-09 16:18:16 UTC (rev 4693) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingServiceAsync.java 2006-06-09 16:19:30 UTC (rev 4694) @@ -35,4 +35,7 @@ public void addTag(String user, String path, String clas, String tags, AsyncCallback callback); + + public void deleteTag(String user, String path, String clas, String tag, + AsyncCallback callback); } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java 2006-06-09 16:18:16 UTC (rev 4693) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java 2006-06-09 16:19:30 UTC (rev 4694) @@ -21,7 +21,9 @@ */ package org.jboss.labs.tagme.services; +import java.util.Date; import java.util.Iterator; +import java.util.List; import java.util.Map; import java.util.Vector; @@ -32,6 +34,14 @@ import org.jboss.shotoku.exceptions.RepositoryException; import org.jboss.shotoku.exceptions.ResourceDoesNotExist; import org.jboss.shotoku.exceptions.SaveException; +import org.jboss.shotoku.tags.ShotokuTag; +import org.jboss.shotoku.tags.Tag; +import org.jboss.shotoku.tags.TagList; +import org.jboss.shotoku.tags.TagService; +import org.jboss.shotoku.tags.tools.TagTools; +import org.jboss.shotoku.tags.exceptions.TagAddException; +import org.jboss.shotoku.tags.exceptions.TagDeleteException; +import org.jboss.shotoku.tags.exceptions.TagGetException; public class ShotokuTaggingService implements TagMeTagger { @@ -40,104 +50,117 @@ private static final Logger log = Logger .getLogger(ShotokuTaggingService.class); + private TagService service = TagTools.getService(); + public Vector getTags(String path) { log.info("Getting tags for: " + path); - ContentManager manager = ContentManager.getContentManager(); Vector<String> tags = new Vector<String>(); - Node node; try { - node = manager.getNode(path); + TagList tagList = service.getTags(path); - Map<String, String> map = node.getProperties(); + if (tagList != null) { + List<Tag> allTags = tagList.getList(); - for (String key : map.keySet()) { - log.info(key); - if (key.startsWith(SHOTOKU_TAG)) { - String tag = (String) map.get(key); - String user = (String) key.substring(key.indexOf(':') + 1, key - .lastIndexOf(':')); - tags.add(tag + TagMeClickListener.TAG_SEP + user - + TagMeClickListener.TAG_SEP + user); + for (Tag tag : allTags) { + tags.add(tag.getName() + TagMeClickListener.TAG_SEP + + tag.getAuthor() + TagMeClickListener.TAG_SEP + + tag.getAuthor()); } } - } catch (RepositoryException e) { + } catch (TagGetException e) { // TODO Auto-generated catch block e.printStackTrace(); - } catch (ResourceDoesNotExist e) { - // TODO Auto-generated catch block - e.printStackTrace(); } + /* + * ContentManager manager = ContentManager.getContentManager(); + * + * Node node; try { node = manager.getNode(path); + * + * Map<String, String> map = node.getProperties(); + * + * for (String key : map.keySet()) { log.info(key); if + * (key.startsWith(SHOTOKU_TAG)) { String tag = (String) map.get(key); + * String user = (String) key.substring(key.indexOf(':') + 1, + * key.lastIndexOf(':')); tags.add(tag + TagMeClickListener.TAG_SEP + + * user + TagMeClickListener.TAG_SEP + user); } } } catch + * (RepositoryException e) { // TODO Auto-generated catch block + * e.printStackTrace(); } catch (ResourceDoesNotExist e) { // TODO + * Auto-generated catch block e.printStackTrace(); } + */ return tags; } public void addTag(String user, String path, String tag) { log.info("Adding tag: " + tag + " for node: " + path); - ContentManager manager = ContentManager.getContentManager(); - - Node node; - try { - node = manager.getNode(path); - - if (!getTags(path).contains(tag)) { - int i = 0; - while (node.getProperty(SHOTOKU_TAG + ":" + user + ":" + i) != null) { - i++; - } - - node.setProperty(SHOTOKU_TAG + ":" + user + ":" + i, tag); - - try { - node.save("Saving tag: " + tag + " by: " + user); - } catch (SaveException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - } catch (RepositoryException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ResourceDoesNotExist e) { - // TODO Auto-generated catch block - e.printStackTrace(); + service.addTag(new ShotokuTag(tag, user, path, null, new Date())); + } catch (TagAddException e) { + throw new RuntimeException(e); } + /* + * ContentManager manager = ContentManager.getContentManager(); + * + * Node node; + * + * try { node = manager.getNode(path); + * + * if (!getTags(path).contains(tag)) { int i = 0; while + * (node.getProperty(SHOTOKU_TAG + ":" + user + ":" + i) != null) { i++; } + * + * node.setProperty(SHOTOKU_TAG + ":" + user + ":" + i, tag); + * + * try { node.save("Saving tag: " + tag + " by: " + user); } catch + * (SaveException e) { // TODO Auto-generated catch block + * e.printStackTrace(); } } } catch (RepositoryException e) { // TODO + * Auto-generated catch block e.printStackTrace(); } catch + * (ResourceDoesNotExist e) { // TODO Auto-generated catch block + * e.printStackTrace(); } + */ } public void deleteTag(String user, String path, String tag) { + log.info("Deleting tag " + tag + " " + path + "..."); + try { - Node node = ContentManager.getContentManager().getNode(path); - - Iterator it = node.getProperties().keySet().iterator(); - boolean found = false; - String key = null; - - while(!found && it.hasNext()) { - key = (String)it.next(); - if (node.getProperties().get(key).equals(tag)) { - found = true; + List<Tag> tags = service.getTags(path).getList(); + + for (Tag tagObj : tags) { + if (tagObj.getName().equals(tag) + && tagObj.getAuthor().equals(user)) { + service.deleteTag(tagObj); } } - - if (found) { - node.getProperties().remove(key); - try { - node.save("Removing tag: "+tag+" by user: "+user); - } catch (SaveException e) { - e.printStackTrace(); - } - } - - } catch (RepositoryException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ResourceDoesNotExist e) { - // TODO Auto-generated catch block - e.printStackTrace(); + } catch (TagGetException e) { + throw new RuntimeException(e); + } catch (TagDeleteException e) { + throw new RuntimeException(e); } + + /* + * try { + * + * + * Node node = ContentManager.getContentManager().getNode(path); + * + * Iterator it = node.getProperties().keySet().iterator(); boolean found = + * false; String key = null; + * + * while (!found && it.hasNext()) { key = (String) it.next(); if + * (node.getProperties().get(key).equals(tag)) { found = true; } } + * + * if (found) { node.deleteProperty(key); try { node.save("Removing tag: " + + * tag + " by user: " + user); + * + * log.info("tag deleted ! (key: " + key + " )"); } catch (SaveException + * e) { e.printStackTrace(); } } } catch (RepositoryException e) { // + * TODO Auto-generated catch block e.printStackTrace(); } catch + * (ResourceDoesNotExist e) { // TODO Auto-generated catch block + * e.printStackTrace(); } + */ } } Copied: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/web/images (from rev 4692, labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/web/images) Deleted: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/web/images/delete.gif =================================================================== (Binary files differ) Copied: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/web/images/delete.gif (from rev 4692, labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/web/images/delete.gif) Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-theme/project.xml =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-theme/project.xml 2006-06-09 16:18:16 UTC (rev 4693) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-theme/project.xml 2006-06-09 16:19:30 UTC (rev 4694) @@ -45,5 +45,6 @@ <version>1.0</version> <jar>javax.servlet.jar</jar> </dependency> + </dependencies> </project> Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-theme/src/java/org/jboss/portal/core/theme/render/impl/JBFRegionRenderer.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-theme/src/java/org/jboss/portal/core/theme/render/impl/JBFRegionRenderer.java 2006-06-09 16:18:16 UTC (rev 4693) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-theme/src/java/org/jboss/portal/core/theme/render/impl/JBFRegionRenderer.java 2006-06-09 16:19:30 UTC (rev 4694) @@ -42,6 +42,9 @@ if (renderContext.getRegionID() != null){ markup.append(" id='").append(renderContext.getRegionID()).append("'>"); } + else { + markup.append(">"); + } } for (Iterator i = region.getWindows().iterator(); i.hasNext();) |