<html>
  <head>
    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
	<link rel=stylesheet type="text/css" href="../css/book.css">
	<link rel=stylesheet type="text/css" href="otguide.css">
    <title>Object Teams project creation</title>
    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <style type="text/css">
      h2 {color: blue}
    </style>    
  </head>
  <body>
    <h1>Object Teams project creation</h1>
    <h2>Opening the project wizard</h2>
    <p>The easiest way to create a new Object Teams project is to use the Object Teams
    project wizard. The project wizard selection dialog can be opened either by selecting
    <b>File > New > Project...</b> from the main workbench window or by selecting
    <b>New > Project...</b> from the package explorer's pop-up menu or by selecting
    <b>Project...</b> from the drop-down menu on the <b>New</b> button in the workbench
    toolbar. Afterwards the wizard for creating an Object Teams project has to be chosen.
    </p>
 
    <h2>Define settings</h2>
    <p>On the first page of the project wizard the name of the project has to be entered.
    On the second and last page the standard Java build settings can be defined as desired
    (source folder, output folder, libraries etc.).
    </p>
 
    <h2>Resulting effects</h2>
    <p>After all information has been entered the project with the chosen name will be created,
    the files <i>.classpath</i> and <i>.project</i> will be created and the tree view in the
    package explorer will be updated and the new project displayed.
    </p>
	<p>
	  <img src="images/screenshots/projectWizard.jpg"
	  	   alt="Object Teams project wizard">
	</p>    
	<h2>OT/Equinox: Plug-in project</h2>
	<p>
	If the project is to develop an Eclipse plug-in using Object Teams (OT/Equinox) choose
	the wizard for "Object Teams Plugin Project". This wizard is a variant of the regular
	"Plug-in Project" wizard.
	</p>
	<h1>Adding Object Teams support to an existing project</h1>
	<p>
	Alternatively, if you already have a valid Java project or Plug-in project, you may
	add Object Teams support using the project's context menu <span class="ui">Configure &gt; Add Object Teams support</span>.
	</p>
	<img src="images/screenshots/addOTNature.png" alt="Add Object Teams support menu option"/>
  </body>
</html>
