<?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());

#
# Begin: page-specific settings.  Change these.
$pageTitle 		= "Supported SDKs and Wireless Toolkits";
$pageKeywords	= "mobile, java, tools";
$pageAuthor		= "Diego Madruga Sandin";


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

<div id="maincontent">
	<div id="midcolumn">
        <h1>$pageTitle</h1>
<p>
The following categories of toolkits are known to work with MTJ.
</p>
<ul>
	<li>Oracle Java ME SDK 8.2</li>        		
	<li>Oracle Java ME SDK 8.1</li>        			
    <li>Oracle Java ME SDK 8.0</li>
    <li>Oracle Java ME SDK 3.4</li>
	<li>Sun Java Wireless Toolkit 2.5.2 for CLDC</li>
	<li>MOTODEV SDK for JavaME</li>
	<li>Nokia SDKs for Java</li>
	<li>Sony Ericsson J2ME SDK</li>
	<li>Sprint PCS Wireless Toolkit for Java</li>
	<li>Siemens SMTK for Series 60</li>
	<li>mpowerplayer</li>
	<li>Microemulator </li>
</ul>
<p>Other toolkits that meet the Unified Emulator Interface (UEI) Specification <i>may</i> also work with MTJ. 
    Please provide feedback your experiences with toolkits other than listed with us to update this site.
</p>
	</div>
	<div id="rightcolumn">
        <div class="sideitem">
        	<h6>Getting started</h6>
        	<ul>				
        		<a href="/mtj/development/tutorial/prerequisites.php" target="_self">Prerequisites</a>
        		</li>
        	</ul>
        	<ul>				
        		<a href="/mtj/development/tutorial/supported.php" target="_self">Supported SDKs and Wireless Toolkits</a>
        		</li>
        	</ul>
        	<ul>				
        		<a href="/mtj/development/tutorial/installation.php" target="_self">Installation Instructions</a>
        		</li>
        	</ul>
        	<ul>				
        		<a href="/mtj/development/tutorial/removal.php" target="_self">Removal Instructions</a>
        		</li>
        	</ul>
        </div>
	</div>
</div>

EOHTML;


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