<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'

	#*****************************************************************************
	#
	# /components/we/index.php of Java Workflow Tooling (JWT)
	#
	# Author: 		Christian Saad
	# created:		2008-11-13
	#
	# Description: The older news page of the Java Workflow Tooling project
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Eclipse Java Workflow Tooling (JWT)";
	$pageKeywords	= "JWT , Java Workflow Tooling Project, Workflow Editor, Workflow Administration and Monitoring, Eclipse";
	$pageAuthor		= "Christian Saad";
	
	# Add page-specific Nav bars here
	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)

	# End: page-specific settings
	#
		
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

<div id="midcolumn">
		<h1>Eclipse Java Workflow Tooling (JWT) Project</h1>
		
		<div class="homeitem3col">
			<h3>News archive</h3>
				<p>
					<li><strong>March, 4th 2008:</strong> The first version (0.4.0) of the Workflow Editor is finally available as an Eclipse plugin. 
					Check it out at the <a href="components/we/index.php">Workflow Editor</a>-page.				
					</li>
					<li>On <strong>October, 11th 2007</strong> one of the project leads held a presentation about the JWT project at the
				Eclipse Summit Europe 2007. Find the presented slides <a href="/jwt/press/ese07/index.php">here</a>.
				    </li>
				</p>
				<br/>
		</div>	
		<hr class="clearer">	
	</div>
	<div id="rightcolumn">
    	 <div class="sideitem">
   			<h6>Incubation</h6>
   			<div align="center"><a href="/projects/what-is-incubation.php"><img 
        			align="center" src="/images/egg-incubation.png" 
        			border="0" alt="Incubation" /></a></div>
 		</div>       		
	</div>

EOHTML;


	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>