
<?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: 		Wayne Beaton
	# Date:			2006-06-06
	#
	# Description: 
	# This page contains pointers to download and tutorial information for
	# individuals interested in using Eclipse for Java development.
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Eclipse for Plug-in and RCP Developers";
	$pageKeywords	= "callisto plug-in rcp rich client platform eclipse 3.2 resource screencam screen cam tutorial ";
	$pageAuthor		= "Wayne Beaton";
	
	# 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", 1);
	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 1);

	# End: page-specific settings
	#
			
	require_once("links.php");
	
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML
<link rel="stylesheet" type="text/css" href="callisto.css" media="screen" />

<script type="text/javascript">
function show_section(name) {
	if (document.getElementById(name).style.display=='block') return;
	document.getElementById(name +'-down').style.display='none';
	document.getElementById(name).style.display='block'
}
function hide_section(name) {
	if (document.getElementById(name).style.display=='none') return;
	document.getElementById(name +'-down').style.display='inline';
	document.getElementById(name).style.display='none'
}
</script>

<div class="callistoRealEstate paddingLeft">
	<div class="maincontent">
        <table cellspacing=0 class="callistoButtons">
        	<tr>
        		<td width="50"><img src="images/plugin.jpg"></a></td>
				<td width="100%"class="noRightBorder">$pageTitle</td>
			</tr>
		</table>
        
		<p>The Eclipse Software Development Kit (SDK) contains everything you need to build
		Eclipse applications, including plug-ins for the development environment and Eclipse Rich Client Platform (<a href="http://wiki.eclipse.org/index.php/Rich_Client_Platform">RCP</a>) applications.</p>
		<p>The new Eclipse SDK 3.2 release features some exciting new capabilities for plug-in and RCP developers, including:
		<ul>
			<li>Java 6 support</li>
			<li>Support for Mac OSX on Intel and Preview support for Windows Vista</li>
			<li><a href="/swt">SWT</a> Enhancements including support for OpenGL, virtual trees, custom table cell drawing</li>
			<li>Improvements in Plug-in Development Environment (<a href="http://www.eclipse.org/pde/">PDE</a>) to make building RCP applications easier</li>
			<li>Common Navigator Framework</li>
			<li>New standalone OSGi framework</li>
		</ul>	
		<p>For a more complete list, check out the <a href="$new_noteworthy">New and Noteworthy</a>.</p>
		
		<p>The Eclipse SDK can be extended to provide additional functionality by adding features from the 
		<a href="$callisto_discovery">Callisto Discovery Site</a>.</p>
	      
      	<div class="homeitem">
      		<h3>What do you need?</h3>

			<p><strong><a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.2-200606291905/index.php">Eclipse 3.2</a> is required for Callisto.</strong> 
			There is no upgrade path from previous versions of Eclipse.</p>
      		

      		<ul>
      			<li style="border-style: none">The <a href="$eclipse_sdk">Eclipse SDK</a> <span style="white-space:nowrap">3.2<img id="platform-down" src="images/down.png" onclick="show_section('platform');"/></span>
      				<div id="platform" style="border-style:solid;border-width:1px;margin-left:5%;display:none">
      							<h3><img onclick="hide_section('platform');" align="right" src="images/close.png"/>Eclipse SDK 3.2</h3>
	      						The SDK provides Java development tools.
	      						<h4>Tutorials and Help</h4>
					      		<ul>
					      		    <li style="list-style-image: url(images/movie.png);border-style: none"><a href="http://www.eclipse.org/downloads/download.php?r=1&file=/technology/phoenix/demos/install-eclipse/install-eclipse.html">Installing the Eclipse SDK 3.2</a></li>
      		    					<li style="list-style-image: url(images/movie.png);border-style: none"><a href="http://www.eclipse.org/downloads/download.php?r=1&file=/technology/phoenix/demos/testfirst/testfirst.html">Test First Development using Eclipse</a></li>
					      		</ul>
      						</div>
      					</li>
      			<li style="border-style: none">Optional features available via the <a href="$callisto_discovery">Callisto&nbsp;Discovery&nbsp;Site</a>
      				<ul>      					
      					<li style="border-style: none">Visual Editor <span style="white-space:nowrap">(<a href="/ve">VE</a>)<img id="ve-down" src="images/down.png" onclick="show_section('ve');"/></span>
      						<div id="ve" style="border-style:solid;border-width:1px;margin-left:5%;display:none">
      							<h3><img onclick="hide_section('ve');" align="right" src="images/close.png"/>Visual Editor</h3>
	      						The Eclipse Visual Editor (VE) project is a vendor-neutral, open 
      							development platform supplying frameworks for creating GUI 
      							builders, and exemplary, extensible tool implementations for 
      							<a href="/swt">SWT</a>/<a href="/rcp">RCP</a>.
      						</div>
      					</li>
      					<li style="border-style: none">Eclipse Modeling Framework <span style="white-space:nowrap">(<a href="/emf">EMF</a>)<img id="emf-down" src="images/down.png" onclick="show_section('emf');"/></span>
      						<div id="emf" style="border-style:solid;border-width:1px;margin-left:5%;display:none">
      							<h3><img onclick="hide_section('emf');" align="right" src="images/close.png"/>Eclipse Modeling Framework</h3>
      							EMF is a modeling framework and code generation facility for building tools and other 
      							applications based on a structured data model.
      						</div>
      					</li>
      					<li style="border-style: none">Graphical Editing Framework <span style="white-space:nowrap">(<a href="/gef">GEF</a>)<img id="gef-down" src="images/down.png" onclick="show_section('gef');"/></span>
      						<div id="gef" style="border-style:solid;border-width:1px;margin-left:5%;display:none">      							
      							<h3><img onclick="hide_section('gef');" align="right" src="images/close.png"/>Graphical Editing Framework</h3>
      							The Graphical Editing Framework (GEF) allows developers to take an existing 
      							application model and quickly create a rich graphical editor.
      						</div>
      					</li>
      					<li style="border-style: none">Graphical Modeling Framework <span style="white-space:nowrap">(<a href="/gmf">GMF</a>)<img id="gmf-down" src="images/down.png" onclick="show_section('gmf');"/></span>
      						<div id="gmf" style="border-style:solid;border-width:1px;margin-left:5%;display:none">
      							<h3><img onclick="hide_section('gmf');" align="right" src="images/close.png"/>Graphical Modeling Framework</h3>
      							The Eclipse Graphical Modeling Framework (GMF) provides a 
      							generative component and runtime infrastructure for developing 
      							graphical editors.
      						</div>
      					</li>
 
      					
       					
      					<li style="border-style: none">Reporting Tools <span style="white-space:nowrap">(<a href="/birt">BIRT</a>)<img id="birt-down" src="images/down.png" onclick="show_section('birt');"/></span>
      						<div id="birt" style="border-style:solid;border-width:1px;margin-left:5%;display:none">
      							<h3><img onclick="hide_section('birt');" align="right" src="images/close.png"/>Reporting Tools</h3>
	      						BIRT is a reporting system that integrates with your application to produce 
	      						compelling reports for both web and PDF.
	      						<ul>
					      		    <li style="list-style-image: url(images/tutorial.png);border-style: none"><a href="http://www.eclipse.org/birt/phoenix/tutorial/basic">Building a Simple Report with BIRT</a></li>
									<li style="list-style-image: url(images/movie.png);border-style: none"><a href="http://download.eclipse.org/birt/downloads/demos/FirstReport/MyFirstReport.html">My First Report</a></li>
									<li style="list-style-image: url(images/tutorial.png);border-style: none"><a href="http://www.eclipse.org/birt/phoenix/tutorial/">More BIRT Tutorials and screen casts...</a></li>
								</ul>
      						</div>
      					</li>
      					
      					<li style="border-style: none">Data Tools <span style="white-space:nowrap">(<a href="/datatools">DTP</a>)<img id="dtp-down" src="images/down.png" onclick="show_section('dtp');"/></span>
      						<div id="dtp" style="border-style:solid;border-width:1px;margin-left:5%;display:none">
      							<h3><img onclick="hide_section('dtp');" align="right" src="images/close.png"/>Data Tools</h3>
	      						The Eclipse Data Tools Platform (DTP) is a set of extensible frameworks and
								exemplary tools for developing data-centric applications in Eclipse.
      						</div>
      					</li>
      				</ul>
   				</li>
      		</ul>
      	</div>
      	
      	<div class="homeitem">
      		<h3>Tutorials and help</h3>
      		<ul>
      		    <li style="list-style-image: url(images/movie.png);border-style: none"><a href="http://www.eclipse.org/downloads/download.php?r=1&file=/technology/phoenix/demos/install-eclipse/install-eclipse.html">Installing the Eclipse SDK 3.2</a></li>
      			<li style="list-style-image: url(images/movie.png);border-style: none"><a href="$install_callisto">Installing Features from the Callisto Discovery Site</a></li>
      			<li style="list-style-image: url(images/movie.png);border-style: none"><a href="http://www.eclipse.org/downloads/download.php?r=1&file=/technology/phoenix/demos/install-ve/install-ve.html">Installing and using the Eclipse Visual Editor</a></li>
      			<li style="list-style-image: url(images/movie.png);border-style: none"><a href="http://www.eclipse.org/downloads/download.php?r=1&file=/technology/phoenix/demos/testfirst/testfirst.html">Test First Development using Eclipse</a></li>
      		</ul>
      	</div>
      			
      	<div class="homeitem">
      		<h3>Suggested reading</h3>
      		<ul>
      			<li style="list-style-image: url(images/document.png);border-style: none"><a href="http://www.eclipse.org/articles/">Eclipse Corner Articles</a></li>
      			<li style="list-style-image: url(images/document.png);border-style: none"><a href="http://local.phoenix.eclipse.org/articles/Whitepaper-Platform-3.1/eclipse-platform-whitepaper.html">Eclipse Platform Technical Overview</a></li>
      			<li style="list-style-image: url(images/book.png);border-style: none"><a href="http://www.aw-bc.com/catalog/academic/product/0,1144,032142672X,00.html">Eclipse: Building Commercial-Quality Plug-ins</a></li>
      			<li style="list-style-image: url(images/book.png);border-style: none"><a href="http://www.aw-bc.com/catalog/academic/product/0,1144,0321205758,00.html">Contributing to Eclipse: Principles, Patterns, and Plug-Ins</a></li>
      			<li style="list-style-image: url(images/book.png);border-style: none"><a href="http://www.aw-bc.com/catalog/academic/product/0,1144,0321334612,00.html">Eclipse Rich Client Platform: Designing, Coding, and Packaging Java&trade; Applications</a></li>
      			<li style="list-style-image: url(images/document.png);border-style: none">Building a Common Navigator based viewer
      				<a href="http://scribbledideas.blogspot.com/2006/05/building-common-navigator-based-viewer.html">Part I</a>,
      				<a href="http://scribbledideas.blogspot.com/2006/05/building-common-navigator-based-viewer_22.html">Part II</a>,
      				<a href="http://scribbledideas.blogspot.com/2006/06/building-common-navigator-based-viewer.html">Part III</a>, and
      				<a href="http://scribbledideas.blogspot.com/2006/06/building-common-navigator-based-viewer_18.html">Part IV</a>
      			</li>
      		</ul>
      	</div>      	
	</div>

</div>




EOHTML;

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