From: <jbo...@li...> - 2006-06-06 03:07:48
|
Author: adamw Date: 2006-06-05 14:17:12 -0400 (Mon, 05 Jun 2006) New Revision: 4618 Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/ProjectIssueTrackerLink.java labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/ProjectRepositoryLink.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/navigation/EntryFactory.java labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/ProjectsMenuEntry.java labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectDescriptor.java Log: http://jira.jboss.com/jira/browse/JBLAB-685 http://jira.jboss.com/jira/browse/JBLAB-690 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-06-05 18:12:42 UTC (rev 4617) +++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeHelper.java 2006-06-05 18:17:12 UTC (rev 4618) @@ -445,6 +445,9 @@ link = removeParameter(link, Constants.PROJECT_LIST_PARAM+"="+Constants.FALSE_VALUE); link = removeParameter(link, Constants.PROJECT_LIST_PARAM+"="+Constants.TRUE_VALUE); + while (link.contains("//")) { + link = link.replace("//", "/"); + } return link; } Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/EntryFactory.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/EntryFactory.java 2006-06-05 18:12:42 UTC (rev 4617) +++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/EntryFactory.java 2006-06-05 18:17:12 UTC (rev 4618) @@ -37,6 +37,8 @@ private final static String PAGE = "page"; private final static String LINK = "link"; private final static String FREEZONE = "freezone"; + private final static String REPOSITORY = "repository"; + private final static String ISSUE_TRACKER = "issue-tracker"; // This class cannot be instatiated. private EntryFactory() { @@ -97,6 +99,22 @@ } } + if (REPOSITORY.equals(type)) { + if (project != null) { + return new ProjectRepositoryLink(portalName, project, node); + } else { + return null; + } + } + + if (ISSUE_TRACKER.equals(type)) { + if (project != null) { + return new ProjectIssueTrackerLink(portalName, project, node); + } else { + return null; + } + } + return null; } } Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/ProjectIssueTrackerLink.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/ProjectIssueTrackerLink.java 2006-06-05 18:12:42 UTC (rev 4617) +++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/ProjectIssueTrackerLink.java 2006-06-05 18:17:12 UTC (rev 4618) @@ -0,0 +1,19 @@ +package org.jboss.forge.common.navigation; + +import org.jboss.forge.common.projects.ProjectDescriptor; +import org.jboss.forge.common.projects.IssueTracker; +import org.w3c.dom.Node; + +/** + * @author Adam Warski (ad...@as...) + */ +public class ProjectIssueTrackerLink extends LinkEntry { + public ProjectIssueTrackerLink(String portalName, ProjectDescriptor project, Node root) { + super(portalName, project, root); + } + + protected String generateLink(String content) { + IssueTracker it = getProject().getProjectIssueTracker(); + return it == null ? "" : it.getLocation(); + } +} Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/ProjectRepositoryLink.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/ProjectRepositoryLink.java 2006-06-05 18:12:42 UTC (rev 4617) +++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/ProjectRepositoryLink.java 2006-06-05 18:17:12 UTC (rev 4618) @@ -0,0 +1,19 @@ +package org.jboss.forge.common.navigation; + +import org.jboss.forge.common.projects.ProjectDescriptor; +import org.jboss.forge.common.projects.Repository; +import org.w3c.dom.Node; + +/** + * @author Adam Warski (ad...@as...) + */ +public class ProjectRepositoryLink extends LinkEntry { + public ProjectRepositoryLink(String portalName, ProjectDescriptor project, Node root) { + super(portalName, project, root); + } + + protected String generateLink(String content) { + Repository rep = getProject().getProjectRepository(); + return rep == null ? "" : rep.getLocation(); + } +} Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/ProjectsMenuEntry.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/ProjectsMenuEntry.java 2006-06-05 18:12:42 UTC (rev 4617) +++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/navigation/ProjectsMenuEntry.java 2006-06-05 18:17:12 UTC (rev 4618) @@ -83,8 +83,10 @@ PermissionsChecker pc = new RenderRequestPermissionsChecker(request); if (projectInLevel) { + Menu menu = projects.getProjectMenu(pc, projectId); - return link.equals(projects.getProjectLink(projectId)) || + String projectLink = projects.getProjectLink(projectId); + return link.equals(projectLink) || (link + "/").equals(projectLink) || menu.containsLink(link, projectId, levelId, request); } else { return link.equals(ForgeHelper.prepareLinkForChecking( Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectDescriptor.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectDescriptor.java 2006-06-05 18:12:42 UTC (rev 4617) +++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectDescriptor.java 2006-06-05 18:17:12 UTC (rev 4618) @@ -127,18 +127,20 @@ downloads = null; } - // There should be a menu. - if (menuNode != null) { - menu = new Menu(portalName, menuNode, this); - } - + if (repositoryNode != null) { repository = new Repository(repositoryNode); } - + if (issueTrackerNode != null) { issueTracker = new IssueTracker(issueTrackerNode); } + + // There should be a menu. + if (menuNode != null) { + menu = new Menu(portalName, menuNode, this); + } + } /** |