<?php
	set_include_path($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common" . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] . "/projects" . PATH_SEPARATOR . get_include_path()); 
	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: 		Igor Vinnykov
	# Date:			2007-11-23
	#
	# Description: Autogenerated for eclipse.org site pages from Eclipse IDE help
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Eclipse Subversive - Documentation";
	$pageKeywords	= "Subversive, Subversion, SVN, Team Provider, documentation, user guid";
	$pageAuthor		= "Igor Vinnykov";
		
	include("_projectCommon.php");    # All on the same line to unclutter the user's desktop'
	
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

	<div id="midcolumn">

	<h2>Annotate</h2>
	<p>
		These preferences can be changed on 
			<i>'Team>SVN>Annotate'</i>
		 properties page.</p>
	<table cellpadding="1" cellspacing="0" border="0">
		<tr>
			<td valign="top" align="left">
				<p align="left">
					<i>
						<b>Tip:</b>
					</i>
				</p>
			</td>
			<td valign="top">
				<p>
					<i>
						It's recommended to view annotations in the Repository Exploring perspective. Using Quick Diff is very comfortable, because the user can examine all the revision changes at once, but it can be performed only on local files, not repository ones. If your team is rather big it's convenient to use different colors to highlight the changes in Quick Diff mode.
					</i>
				</p>
			</td>
		</tr>
	</table>
		<table cellpadding="5" cellspacing="0" border="1" width="100%">
			<tr>
				<td class="header" align ="center" valign="center">Option</td>
				<td class="header" align ="center" valign="center">Description</td>
				<td class="header" align ="center" valign="center">Default</td>
			</tr>
			<tr>
				<td align ="center" valign="center">Open perspective after a 'Show Annotation' operation.</td>
				<td align ="center" valign="center">Specifies if the specified perspective should be opened after a  'Show Annotation' operation.</td>
				<td align ="center" valign="center">Prompt</td>
			</tr>
			<tr>
				<td align ="center" valign="center">Perspective for 'Annotate View'</td>
				<td align ="center" valign="center">Allows user to choose a perspective for 'Annotate View' to show in.</td>
				<td align ="center" valign="center">SVN Repository Exploring</td>
			</tr>
			<tr>
				<td align ="center" valign="center">Use Quick Diff annotate mode for local file annotations</td>
				<td align ="center" valign="center">Configure using of Quick Diff feature for local file annotations.</td>
				<td align ="center" valign="center">Prompt</td>
			</tr>
			<tr>
				<td align ="center" valign="center">Use same color for all authors</td>
				<td align ="center" valign="center">Defines if the one and only color should be used for annotation blocks of every author's made changes.</td>
				<td align ="center" valign="center">Enabled</td>
			</tr>
			<tr>
				<td align ="center" valign="center">Annotation Block Color</td>
				<td align ="center" valign="center">Specifies a color for annotation blocks.</td>
				<td align ="center" valign="center">
					<img border="0" cellpadding="0" cellspacing="0" src="../images/grey_color.png" alt="grey"/>
				</td>
			</tr>
		</table><br/>
		This is how <i>'Annotate'</i> properties page looks like:
		<br/><br/><img border="0" src="../images/pref_annotate.png" alt="Annotate properties page"/>
	<br/>
	<img border="0" src="../images/rel_tops.png" alt="Related topics"/>
	<br/>
	<a href="../teamSupport/annotation_view.php">SVN Annotation View</a>
	<br/>
	<a href="../teamSupport/repos_persp.php">SVN Repository Exploring Perspective</a>
	<br/>
	<br/>
	</div>	

EOHTML;


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