
  <div id="primaryLinks">
    <h3>Primary Links</h3>

    <ul>
      <li><a id="buttonDownload" href=
      "http://www.eclipse.org/downloads/packages/" title="Download"
      name="buttonDownload"><strong>Download</strong> Eclipse
      Distribution</a></li>

      <li><a id="buttonDocumentation" href=
      "http://wiki.eclipse.org/ModelingAmalgam" title=
      "Documentation" name=
      "buttonDocumentation"><strong>Documentation</strong>
      Tutorials, Examples, Videos, Reference Documentation</a></li>

      <li><a id="buttonSupport" href="support" title="Support"
      name="buttonSupport"><strong>Support</strong> Bug Tracker,
      Newsgroup, Support</a></li>

      <li><a id="buttonInvolved" href="developers" title=
      "Getting Involved" name="buttonInvolved"><strong>Getting
      Involved</strong> CVS, Workspace Setup, Wiki,
      Committers</a></li>
    </ul>
  </div>

  <div id="midcolumn">
    <h3>Modeling Amalgamation Project</h3>

    <div id="introText">
      <p class="left">The Amalgamation project provides improved
      packaging, integration, and usability of Modeling project
      components. The project is focused on providing a consumable
      and integrated Eclipse Modeling Tools package and ease the
      discovery of the modeling technologies through specific code
      and examples.</p>

      <p class="right">In a nutshell this project provides : a
      consumable and consistent <b>Modeling Platform</b>,
      complementary integration code to enhance the <b>user
      experience</b> , easy <b>one click discover and install</b>
      wizard to extend the package and <b>examples</b> leveraging
      modeling technologies.</p>
    </div>

    <div id="screencast">
      <a href="/modeling/amalgam/images/package.png"><img src=
      "images/small_package.png" alt="Modeling Package"></a>
    </div>
<div id="feature">
<h4></h4>
<p>
        
</p>
</div>

<div id="feature_discovery">
<h4></h4>
<p>
</p>    
</div>

  </div>

  <div id="rightcolumn">
   <div class="sideitem">
   </div><br/>
   
    <div class="sideitem" id="obeo">
    <p>
    <i>Obeo provides support for Eclipe Modeling Projects.</i>
    </p>
      <a href="http://www.obeo.fr" title="Main Obeo website" rel=
      "nofollow"><img src="images/logo/logo_obeo.png"></a>
    </div>
 
    <div class="sideitem">
      <h6>News</h6>

      <ul>
        <li><tt>03/2010</tt> a new media to <a href=
        "http://model-driven-blogging.blogspot.com/2010/03/eclipse-amalgamation-20.html">
        discover and install modeling components</a></li>

        <li><tt>10/2009</tt> a new team is forged</li>
      </ul>
    </div><br>

    <div class="sideitem">
      <h6>Eclipse Modeling Project Book</h6>

      <p align="center">The Amalgam project used to be a support for
      the <b>Eclipse Modeling Project</b> book explaining how to
      leverage several modeling technologies. The book examples are
      based on the Ganymede release and have not been updated since then you should download the
      <a href=
      "downloads/oldpackages.php">
      corresponding packages.</a> <a href=
      "http://www.informit.com/store/product.aspx?isbn=0321580540"><img src="http://www.informit.com/ShowCover.aspx?isbn=0321580540&amp;type=f"></a></p>
    </div>
    
    <div class="sideitem"> 
		<h6>Project Summary</h6> 
		<div class="modal"> 
			<p> 
				Read more <a href="http://www.eclipse.org/projects/project_summary.php?projectid=modeling.amalgam">about
				this project</a> and get all useful information and links about it in a nutshell.
			</p> 
		</div> 
	</div> 
	
    
   
  </div>
