<?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'
/*******************************************************************************
 * Copyright (c) 2010
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    
 *******************************************************************************/

	$pageTitle 		= "GEF Documentation";

	$html  = <<<EOHTML
<div id="midcolumn">
<h2>$pageTitle</h2>
<p>Apart from the provided reference documentation and the <i>new and noteworthy</i> of each release, there are several articles, tutorials, and presentations contributed by the community. 
A bunch of examples may also help to understand the frameworks.

<h3>New and Noteworthy</h3>
<p>Information about what is new and noteworthy in each release can be found on the <a href="http://wiki.eclipse.org/GEF/New_and_Noteworthy">New and Noteworthy</a> page in the GEF wiki.</p>

<h3>User Documentation</h3>
<p>User documentation for the Cloudio and DOT end-user tools is provided through the <a href="http://wiki.eclipse.org/GEF/GEF4/Cloudio/User_Guide">Cloudio User Guide</a> and <a href="http://wiki.eclipse.org/GEF/GEF4/DOT/User_Guide">DOT User Guide</a>. 
		
<h3>Developer Documentation</h3>
<p>Developer documentation for adopters and contributors is provided in the <a href="http://wiki.eclipse.org/GEF/Reference_Documentation">Reference Documentation</a> wiki page.

<h3>Articles, Tutorials, Slides</h3>
<p>Several (external) articles, tutorials, and slides can be found on the <a href="http://wiki.eclipse.org/GEF/Articles%2C_Tutorials%2C_Slides">Articles, Tutorials, Slides</a> page in the GEF Wiki.</p>

<h3>Examples</h3>
<p>Examples demonstrating the usage of the framework components are provided in bundled and unbundled form. Please refer to the <a href="http://wiki.eclipse.org/GEF/Examples">Examples</a> page in the GEF wiki for details.
</div>
EOHTML;

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