<?php
/*******************************************************************************
 * Copyright (c) 2013 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:
 *    Christopher Guindon (Eclipse Foundation)- initial API and implementation
 *******************************************************************************/

//if name of the file requested is the same as the current file, the script will exit directly.
if(basename(__FILE__) == basename($_SERVER['PHP_SELF'])){exit();}
?>

<div id="fullcolumn">
  <div id="widecolumn">
    <h1>How To Combine Packages</h1>
    <p>These packages are provided as a convenience to users; they represent common
      configurations of Eclipse projects that are often used together. However, since
      Eclipse is, at its core, an expandable platform, you can easily add other
      features and plugins to any of these packages. Just choose and install the
      package that most closely meets your needs, then follow these
      <a href="http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2Ftasks%2Ftasks-124.htm">instructions</a>
      to add features that you need.</p>

    <form id="form-compare">
    	<div id="button-control"></div>
		<?php
   			print $Downloads->compareOutput();
		?>
	</form>
    <p>Legend:<br/> <?php print $Downloads->getLegend();?></p>
  </div>
</div>
