<?xml version="1.0" encoding="UTF-8" ?>
<introContent>
  <!-- Extension to the SDK Samples Page. -->

  <extensionContent id="org.eclipse.objectteams.otdt.samples.samplesExtension" 
  						name="Object Teams Samples"
  						alt-style="css/swt-intro.properties"
  						style="css/samples.css"
						path="samples/@">
      <group label="Object Teams Samples" id="content-group" style-id="content-group">
		  <text style-id="group-description">Explore Object Teams development through code samples.</text>
<!--		  
		  <link label="Object Teams samples" 
				url="http://org.eclipse.ui.intro/showPage?id=otsamples" 
				id="otsamples" 
				style-id="content-link">
			<text>A small collection of Object Teams samples
			</text>
		  </link>	
-->
        <link label="OTSample-StopWatch" 
        	  url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;class=org.eclipse.objectteams.otdt.internal.samples.ShowSampleAction&amp;id=org.eclipse.objectteams.otdt.samples.stopwatch" 
        	  id="stopwatchsample" 
        	  style-id="content-link">
		  <text>This implementation of a simple stop watch demonstrates how the Model-View-Controller pattern can be applied in Object Teams. 

			The example gives a basic overview over these concepts: 
			   (1) team and role classes, 
			   (2) method bindings, and
			   (3) lifting a base object to its role.
		  </text>
		</link>
        <link label="OTSample-Observer" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;class=org.eclipse.objectteams.otdt.internal.samples.ShowSampleAction&amp;id=org.eclipse.objectteams.otdt.samples.observer" id="observersample" style-id="content-link">
		  <text>A reusable implementation of the standard Observer pattern with two applications.
					  
			A fine point in this example is the temporary deactivation of a team to avoid the "jumping aspects" problem.</text></link>		  
		<link label="OTSample-Flightbonus" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;class=org.eclipse.objectteams.otdt.internal.samples.ShowSampleAction&amp;id=org.eclipse.objectteams.otdt.samples.flightbooking" id="flightbonussample" style-id="content-link">
          <text>This examples demonstrates, how a reusable collaboration for collecting bonus points 
			can be integrated into an existing application for flight booking.
			
			It shows a typical decomposition into three parts: 
			   (1) a core application, 
			   (2) an abstract collaboration, and
			   (3) a connector which combines the other two modules.</text></link>	
        <link label="OTSample-Ordersystem" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;class=org.eclipse.objectteams.otdt.internal.samples.ShowSampleAction&amp;id=org.eclipse.objectteams.otdt.samples.ordersystem" id="ordersystemsample" style-id="content-link">        
        	<text>A comprehensive example showing different patterns of applying Object Teams.
			It implements three components: a storage, reservation of items, and orders.
			Also a GUI is provided which is cleanly separated into Model/View/Controller</text></link>
        <link label="OTSample-ATM" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;class=org.eclipse.objectteams.otdt.internal.samples.ShowSampleAction&amp;id=org.eclipse.objectteams.otdt.samples.atm" id="atmsample" style-id="content-link">        
    	    <text>An example showing the use of guard predicates in Object Teams. 
    	    
        	It implements a simple ATM that adds specific behaviour to specific groups of accounts:
        	   (1) Foreign accounts are charged additional fees,
        	   (2) The balance of foreign cannot be queried,
        	   (3) Subscribed accounts receive a gratification for each crediting operation performed at the ATM.</text></link>

		  <anchor id="otSampleAnchor"/>
      </group>
  </extensionContent>
<!--
  <page style="css/samples.css" alt-style="css/swt.properties" id="otsamples" style-id="page">
      <title style-id="intro-header">Welcome to Eclipse 3.0</title>
    <group id="background-image" filteredFrom="swt"/>
    <group id="curve-image" filteredFrom="swt"/>
    <include path="overview/navigation-links"/>
    
	<group id="page-content" >
	  <group id="content-header" label="Object Teams/Java Samples" filteredFrom="html"></group>
	  <text style-id="page-title" id="page-title" filteredFrom="swt">Object Teams/Java Samples</text>
	  <text style-id="page-description" id="page-description">Explore Object Teams by installing some prefabricated samples.</text>
      <group id="workbench" style-id="samples-group">
        <link label="OTSample-StopWatch" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;id=org.eclipse.objectteams.otdt.samples.stopwatch" id="stopwatchsample" style-id="sample-link">
		  <text>This implementation of a simple stop watch demonstrates how the Model-View-Controller pattern can be applied in Object Teams. 

			The example gives a basic overview over these concepts: 
			   (1) team and role classes, 
			   (2) method bindings, and
			   (3) lifting a base object to its role.</text></link>
        <link label="OTSample-Observer" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;id=org.eclipse.objectteams.otdt.samples.observer" id="observersample" style-id="sample-link">
		  <text>A reusable implementation of the standard Observer pattern with two applications.
					  
			A fine point in this example is the temporary deactivation of a team to avoid the "jumping aspects" problem.</text></link>		  
		<link label="OTSample-Flightbonus" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;id=org.eclipse.objectteams.otdt.samples.flightbooking" id="flightbonussample" style-id="sample-link">
          <text>This examples demonstrates, how a reusable collaboration for collecting bonus points 
			can be integrated into an existing application for flight booking.
			
			It shows a typical decomposition into three parts: 
			   (1) a core application, 
			   (2) an abstract collaboration, and
			   (3) a connector which combines the other two modules.</text></link>	
        <link label="OTSample-Ordersystem" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;id=org.eclipse.objectteams.otdt.samples.ordersystem" id="ordersystemsample" style-id="sample-link">        
        	<text>A comprehensive example showing different patterns of applying Object Teams.
			It implements three components: a storage, reservation of items, and orders.</text></link>
        <link label="OTSample-ATM" url="http://org.eclipse.ui.intro/runAction?pluginId=org.eclipse.objectteams.otdt.samples&amp;id=org.eclipse.objectteams.otdt.samples.atm" id="atmsample" style-id="sample-link">        
    	    <text>An example showing the use of guard predicates in Object Teams. 
    	    
        	It implements a simple ATM that adds specific behaviour to specific groups of accounts:
        	   (1) Foreign accounts are charged additional fees,
        	   (2) The balance of foreign cannot be queried,
        	   (3) Subscribed accounts receive a gratification for each crediting operation performed at the ATM.</text></link>
     </group>        
	</group>
  </page>
-->
</introContent>

