<?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( "Information about JWT", "/projects/project_summary.php?projectid=technology.jwt", "", 1  );
	# Adding JWT specific menus :
	$Nav->addNavSeparator("		Getting started", 	"/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(" 	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("		Downloads",			"/jwt/index.php");
	$Nav->addCustomNav("		All Downloads", 	"http://wiki.eclipse.org/JWT_Downloads", "_self", 2);
	$Nav->addCustomNav("		Source Code", 		"http://wiki.eclipse.org/JWT_CVS", "_self", 2);
	$Nav->addNavSeparator("		Development", 		"/jwt/index.php");
	$Nav->addCustomNav("		Team/Committers", 	"/jwt/pages/team.php", "_self", 2);
	$Nav->addCustomNav("		Newsgroup", 		"http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.jwt", "_self", 2);
	$Nav->addCustomNav("		Mailing list", 		"https://dev.eclipse.org/mailman/listinfo/jwt-dev", "_self", 2);
	$Nav->addCustomNav("		CVS Repository", 	"http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jwt/?root=Technology_Project", "_self", 2);

?>
