<?php

	# Set the theme for your project's web pages.
	# See the Committer Tools "How Do I" for list of themes
	# https://dev.eclipse.org/committers/
	# Optional: defaults to system theme 
	$theme = "Nova";

	$Nav->setLinkList(null);

	# Define your project-wide Nav bars here.
	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
	# these are optional
	# Adding Portal-based "About" information, to be "Standard left menu"-compliant (see http://www.eclipse.org/projects/dev_process/project-status-infrastructure/left-menu.php) :
	$Nav->addCustomNav( "About This Project", "/projects/project_summary.php?projectid=soa.jwt", "", 1  );
	# Adding JWT specific menus :
	$Nav->addNavSeparator("		JWT Home", 	"/jwt/index.php");
	$Nav->addCustomNav("		About JWT", 		"/jwt/pages/about.php", "_self", 2);
	$Nav->addCustomNav("		FAQ", 				"http://wiki.eclipse.org/JWT_FAQ", "_self", 2);
	$Nav->addCustomNav("		Wiki", 				"http://wiki.eclipse.org/index.php/Java_Workflow_Tooling_Project", "_self", 2);
	$Nav->addNavSeparator("		Downloads",			"/jwt/download.php");
	$Nav->addCustomNav("		Download JWT", 	"/jwt/download.php", "_self", 2);
	$Nav->addCustomNav("		More", 	"http://wiki.eclipse.org/JWT_Downloads", "_self", 2);
	$Nav->addNavSeparator(" 	Components",		"/jwt/components/index.php");
	$Nav->addCustomNav("		Workflow Editor",	"/jwt/components/we/index.php");
	$Nav->addCustomNav("		Desktop Tools",		"/jwt/components/desktop/index.php");
	$Nav->addCustomNav("		Transformations",	"/jwt/components/transformations/index.php");
	$Nav->addCustomNav("		WAM",				"/jwt/components/wam/index.php");
	$Nav->addCustomNav("		Runtime",			"/jwt/components/runtime/index.php");
	$Nav->addNavSeparator("		Development", 		"http://wiki.eclipse.org/index.php/JWT_DeveloperFAQ");
	$Nav->addCustomNav("		Team", 	"/jwt/pages/team.php", "_self", 2);
	$Nav->addCustomNav("		Newsgroup", 		"http://www.eclipse.org/forums/index.php?t=thread&frm_id=198", "_self", 2);
	$Nav->addCustomNav("		Mailing list", 		"https://dev.eclipse.org/mailman/listinfo/jwt-dev", "_self", 2);
	$Nav->addCustomNav("		Telco Meetings", 		"http://wiki.eclipse.org/JWT_Meetings", "_self", 2);
	$Nav->addCustomNav("		Source (SVN)", 	"http://wiki.eclipse.org/JWT_SVN", "_self", 2);

?>
