<?php/******************************************************************************* * Copyright (c) 2014 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://eclipse.org/legal/epl-v10.html * * Contributors: *    Anne Haugommard (Atos) - Initial implementation *******************************************************************************/?><div>	        <div class="modal fade" id="gendoc_descr_image" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">	                <div class="modal-dialog modal-lg">		                    <div class="modal-content">		                            <div class="modal-body">			                                <img class="img-responsive" src='/gendoc/public/images/gendoc_generation_details.png'/>		                            </div>		                    </div>	                </div>	        </div>	        <!-- 4 modals to show the 4 images in a larger size      	<div class="modal fade" id="myModal1" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">      	  <div class="modal-dialog modal-lg">      		<div class="modal-content">      		  <div class="modal-body">      			<img class="img-responsive" src='/gendoc/public/images/image1.png'/>      		  </div>      		</div>      	  </div>      	</div>      	<div class="modal fade" id="myModal2" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">      	  <div class="modal-dialog modal-lg">      		<div class="modal-content">      		  <div class="modal-body">      			<img class="img-responsive" src='/gendoc/public/images/image2.png'/>      		  </div>      		</div>      	  </div>      	</div>      	<div class="modal fade" id="myModal3" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">      	  <div class="modal-dialog modal-lg">      		<div class="modal-content">      		  <div class="modal-body">      			<img class="img-responsive" src='/gendoc/public/images/image3.png'/>      		  </div>      		</div>      	  </div>      	</div>      	<div class="modal fade" id="myModal4" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">      	  <div class="modal-dialog modal-lg">      		<div class="modal-content">      		  <div class="modal-body">      			<img class="img-responsive" src='/gendoc/public/images/image4.png'/>      		  </div>      		</div>      	  </div>      	</div>      -->  	        <!-- part containing the gendoc logo and the presentation video of the project.      	 To change the video modify the videoId variable of the player object. The video id of a Youtube video is found at the end of its URL after "v=" -->  	        <div class="case">		              <div id="novaContent" class="container background-image-none">			                    <div id="midcolumn" >				                          <div style='align:left'>					                                <div >                                     <img style="width:50%" class="img-responsive" src='/gendoc/public/images/logo-gendoc.png'/>                               </div>					                                <div>                                     <p><h2>From models to documents</h2>                        </p>            <p><h4>Gendoc generates documentation from EMF models using document templates                                                 <br/> in formats such as OpenOffice Writer (.odt), Microsoft Word (.docx), Microsoft Excel (.xlsx) and Microsoft Powerpoint (.pptx).</h4>                                     </p>                                 </div>				                          </div>				                          <!-- 1. The <iframe> (and video player) will replace this <div> tag. -->  			                          <!--	<div id="player"></div>  FIXME : Pput it back when video is available -->  			                          <!-- Temporarily replaced by image -->  			                          <div class="col-md-24" style="margin-bottom: 20px;">				                                <center>			 						                               	          <a href="" data-toggle="modal" data-target="#gendoc_descr_image">					                          	            <img class="img-responsive" src='/gendoc/public/images/gendoc_generation_details.png'/>				</a>          </center>				                                <p>					                                      <center>			 						                                             <table>						                                                     <tr><td>                                                             <img src='/gendoc/public/images/1.png'/></td><td><h4>Get or write a standard template document in OpenOffice Writer (.odt), Microsoft Word (.docx), Microsoft Excel (.xlsx) and Microsoft PowerPoint (.pptx) format, </h4></td>                                                 </tr>  						                                                     <tr><td>                                                             <img src='/gendoc/public/images/2.png'/></td><td><h4>Add script sections to get dynamic content from models :  each dynamic section of the template contains a script written in M2T Acceleo language,  </h4></td>                                                 </tr>  						                                                     <tr><td>                                                             <img src='/gendoc/public/images/3.png'/></td><td><h4>Reference your model as datasource (Papyrus, UML, SysML , GMF or any EMF model),</h4></td>                                                 </tr>  						                                                     <tr><td>                                                             <img src='/gendoc/public/images/4.png'/></td><td><h4>Launch the generation directly from the template </h4></td>                                                 </tr>  						                                                     <tr><td>                                                             <img src='/gendoc/public/images/5.png'/></td><td><h4>The generation result fully respects the template document, with all dynamic sections filled with model content </h4></td>                                                 </tr>  						                                            </table>					                                      </center>				                                </p>			                          </div>			                    </div>			 			                    <div id="rightcolumn">				                          <div style="height:100px">				 				                          </div>				                          <div class="sideitem">					                                <h6>Incubation Phase                                </h6>					                                <center>					                                      <a href="http://www.eclipse.org/projects/what-is-incubation.php">					                                            <img width="70" border="0" alt="Incubation" src="http://www.eclipse.org/images/egg-incubation.png">					</a>					                                </center>				                          </div>			 				        		<div class="sideitem">					                                <h6>Gendoc v0.7 is available          </h6>					                                <center>					                                      <p>26th Mars 2018 : Gendoc 0.7.0 is now available for download.<br/> See <a href="/gendoc/downloads/download.php">Downloads</a> page.			            </p>					                                </center>				                          </div>			              		        <div class="sideitem">					                                <h6>Compatibility with old Papyrus releases          </h6>					                                <center>					                                      <p>New release Gendoc 0.7.0 is now compatible with old Papyrus releases: Juno, Mars and Neon. <br/> See <a href="/gendoc/downloads/download.php">Downloads</a> page.			            </p>					                                </center>				                          </div>        <div class="sideitem">					                                <h6>Compatibility with Capella           </h6>					                                <center>					                                      <p>New release Gendoc 0.7.0 is now compatible with Capella v1.0.x(Juno), v1.1.x(Mars), v1.2.x (Neon) <br/> See <a href="/gendoc/downloads/download.php">Downloads</a> page.			            </p>					                                </center>				                          </div>		<div class="sideitem">					                                <h6>Second release          </h6>					                                <center>					                                      <p>Gendoc 0.6.0 is available for download.<br/> See <a href="/gendoc/downloads/download.php">Downloads</a> page.			            </p>					                                </center>				                          </div>			              		<div class="sideitem">					                                <h6>First release          </h6>					                                <center>					                                      <p>Gendoc 0.5.1 is available for download.<br/> See <a href="/gendoc/downloads/download.php">Downloads</a> page.			            </p>					                                </center>				                          </div>			                    </div>			 		              </div>	        </div>	        <div>		  <script>		  // 2. This code loads the IFrame Player API code asynchronously.		  var tag = document.createElement('script');		  tag.src = "https://www.youtube.com/iframe_api";		  var firstScriptTag = document.getElementsByTagName('script')[0];		  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);		  // 3. This function creates an <iframe> (and YouTube player)		  //    after the API code downloads.		  var player;		  function onYouTubeIframeAPIReady() {			player = new YT.Player('player', {				height: '390',				width: '640',				videoId: 'TN-kgngP81Q', // ********* ID OF THE VIDEO TO BE PLAYED ************* 				events: {					'onReady': onPlayerReady,					'onStateChange': onPlayerStateChange				}			});		  }		  // 4. The API will call this function when the video player is ready.		  function onPlayerReady(event) {			//event.target.playVideo();		}		  // 5. The API calls this function when the player's state changes.		  //    The function indicates that when playing a video (state=1),		  //    the player should play for six seconds and then stop.		  var done = false;		  function onPlayerStateChange(event) {			if (event.data == YT.PlayerState.PLAYING && !done) {			  //setTimeout(stopVideo, 6000);			  done = true;		  }	  }	  function stopVideo() {		player.stopVideo();	  }	</script>  	        </div>	        <!--       		The code below is the setup of the 4 images displayed under the logo and video      		To change the images just modifie the "src" of the img tags with yours.       	-->  	        <div class="simple">		              <div class="row">			                    <div class="col-md-24">				                          <div class="col-md-12" >                               <div class="well cases">                                     <div class="col-md-24" style="margin-bottom: 5px;">                <div class="img-bullet"><img  src='/gendoc/public/images/gendoc_bullet.png'/></div>			                                       <h4 class="main-features">Styled text</h4>                                     </div>				                                      <!--<div class="col-md-24"><a href="" data-toggle="modal" data-target="#myModal1"><img class="img-responsive" src='/gendoc/public/images/image1.png'/></a></div> -->  				                                     	                                      <div class="col-md-24 feature" >                                           <p class="feature-details">Handling of text editor custom styles :                                                   <br/>generation of titles, bullets and all styles                                             </p>                                     </div>			                                </div>                         </div>			                          <div class="col-md-12" >                               <div class="well cases">                                     <div class="col-md-24" style="margin-bottom: 5px;">               <div class="img-bullet"><img  src='/gendoc/public/images/gendoc_bullet.png'/></div>                                          <h4 class="main-features">Images and diagrams</h4>  			                                      </div>			                                      <!--<div class="col-md-24"><a href="" data-toggle="modal" data-target="#myModal2"><img class="img-responsive" src='/gendoc/public/images/image2.png'/></a></div> -->  			                                      <div class="col-md-24 feature">                                           <p class="feature-details">Generation of GMF diagrams and static images, with caption                                                   <br/>and configuration of max output size through area definition                                            </p>                                     </div>                               </div>		                          </div>	                    </div>	                    <div class="col-md-24">		                          <div class="col-md-12" >                               <div class="well cases">                                     <div class="col-md-24" style="margin-bottom: 5px;">                                           <div class="img-bullet"><img  src='/gendoc/public/images/gendoc_bullet.png'/></div>              <h4 class="main-features">Tables</h4>                                     </div>		                                      <!--<div class="col-md-24"><a href="" data-toggle="modal" data-target="#myModal3"><img class="img-responsive" src='/gendoc/public/images/image3.png'/></a></div> -->  		                                      <div class="col-md-24 feature">                                           <p class="feature-details">Dynamic table generation, with custom table style handling  <br/>              Support for Papyrus and Sirius table diagrams.                                           </p>                   </div>	                                </div>                         </div>	                          <div class="col-md-12" >                               <div class="well cases">                                     <div class="col-md-24"style="margin-bottom: 5px;">                                           <div class="img-bullet"><img  src='/gendoc/public/images/gendoc_bullet.png'/></div>              <h4 class="main-features">Bookmarks and hyperlinks</h4>                                     </div>	                                      <!--<div class="col-md-24"><a href="" data-toggle="modal" data-target="#myModal4"><img class="img-responsive" src='/gendoc/public/images/image4.png'/></a></div> -->  	                                      <div class="col-md-24 feature">                                           <p class="feature-details">Generation of dynamic bookmarks and hyperlinks in output document                                            </p>                                     </div>	                                </div>                         </div>	                    </div>	              </div>	        </div>	        <!-- this is the display of the news list -->  	        <!--      	<div class="news-list">      	 <h2 style="margin: 0;"><a name="news" href="#news">Announcements</a></h2>      	  <div class="news_item"> <div class="news_item_date">2014/10/17</div> <div class="news_item_title"> <h3><a href="https://www.eclipsecon.org/europe2014/cfp">EclipseCon Europe - Call for Papers</a></h3> </div>      	  <div class="news_item_description">Soon to be implemented</div> </div>      	  <div class="news_item"> <div class="news_item_date">2014/10/17</div> <div class="news_item_title"> <h3><a href="https://www.eclipsecon.org/europe2014/cfp">EclipseCon Europe - Call for Papers</a></h3> </div>      	  <div class="news_item_description">Soon to be implemented</div> </div>      	  <div class="news_item"> <div class="news_item_date">2014/10/17</div> <div class="news_item_title"> <h3><a href="https://www.eclipsecon.org/europe2014/cfp">EclipseCon Europe - Call for Papers</a></h3> </div>      	  <div class="news_item_description">Soon to be implemented</div>      	</div>      	-->  	  </div>