<?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) 2009 Eclipse Foundation and others.
 * 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:
 *    
 *******************************************************************************/

	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "GMF Tooling - Documentation";
	$pageKeywords	= "Graphical Modeling Framework Tooling, GMF Tooling, GMF";
	$pageAuthor		= "golubev@montages.com";
		
	# Paste your HTML content between the EOHTML markers!	
	ob_start();
	?>
	<div id="midcolumn">
<p>
<h2>Documentation online</h2>
General information on the GMF Runtime framework, its usage within the GMF-Tooling paradigm as well as FAQs are available.
<ul>
<li><a href="http://wiki.eclipse.org/Graphical_Modeling_Framework/Documentation/Index#GMF-Tooling_.2F_Generation_Framework"><h5>Documentation</h5></a></li>
<li><a href="http://wiki.eclipse.org/Graphical_Modeling_Framework/Tutorial/Part_1"><h5>Tutorial - Getting started</h5></a></li>
<li><a href="http://wiki.eclipse.org/Graphical_Modeling_Framework/Tutorial/Part_2"><h5>Tutorial - Beyond the basics</h5></a></li>
<li><a href="http://wiki.eclipse.org/Graphical_Modeling_Framework/Tutorial/Part_3"><h5>Tutorial - Advanced concepts</h5></a></li>
<li><a href="http://wiki.eclipse.org/GMF_Archived_Newsgroup_Q_and_A"><h5>Frequently asked questions</h5></a></li>
<li><a href="http://wiki.eclipse.org/index.php?title=Graphical_Modeling_Framework/Versions/GMF_Tooling_3.0"><h5>What's new</h5></a></li>
</ul>
	
	</div>

	
	<?
	$html = ob_get_clean();

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