<?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'

#*****************************************************************************
#
# template.php
#
# Author: 		Denis Roy
# Date:			2005-06-16
#
# Description: Type your page comments here - these are not sent to the browser
#
#
#****************************************************************************

#
# Begin: page-specific settings.  Change these.
$pageTitle 		= "Tigerstripe Queries (Buckminster)";
$pageKeywords	= "Type, page, keywords, here";
$pageAuthor		= "Eric Dillon";

# 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)
# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);

# End: page-specific settings
#

# Paste your HTML content between the EOHTML markers!
$html = <<<EOHTML

<div id="maincontent">
<div id="midcolumn">
<h1>$pageTitle</h1>
			<div class="homeitem3col">
				<h3>Development Environment Setup</h3>
						<p>Setting up a development environment for Tigerstripe requires you to checkout a number
			of plugins from our CVS repository into your workspace depending on the feature you plan on working on.</p>
			<p>To simplify the setup, we use <a href="http://www.eclipse.org/buckminster">Buckminster</a> queries
			to all "one-click setups". Please see below to setup the appropriate workspace.</p> 
			<ul>
				<li><strong>Tigerstripe Annotation Framework</strong>: <a href="tigerstripe-annotation.cquery">tigerstripe-annotation.cquery</a></li>
				<li><strong>Tigerstripe Core Framework</strong>: <a href="tigerstripe-base.cquery">tigerstripe-base.cquery</a></li>
				<li><strong>Tigerstripe End-User Workbench</strong>: <a href="tigerstripe-workbench.cquery">tigerstripe-workbench.cquery</a></li>
			</ul>
			<p>These cqueries use the Tigerstripe RMap (<a href="tigerstripe.rmap">tigerstripe.rmap</a>).</p>
		</div>
	</div>
</div>


EOHTML;


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