<title>Intro to the Order System Sample</title>
<style type="text/css">
code { background-color:lightgray; }
img { border:0px; }
</style>
<body>	
<h1>A Simple Order System</h1>

<h2>Package Overview</h2>
See the individual class comments for details.

<dl>
<dt><img src="images/package.gif"> <b><code>package org.objectteams.sample.ordersystem</code></b>
<dd>A simple main class triggering some actions in batch mode.

<dt><img src="images/package.gif"> <b><code>package org.objectteams.sample.ordersystem.data</code></b>
<dd>Plain data classes <code>Customer</code> and <code>Address</code>

<dt><img src="images/package.gif"> <b><code>package org.objectteams.sample.ordersystem.store</code></b>
<dd>This package models a <code>Storage</code> and its <code>StockItems</code>.<br />
	These are normal data objects with the usual access methods.<br />
	Throughout the class <code>StockItem</code> you will find "callin markers" 
	(<img src="images/callinbinding_obj.gif">) in the gutter, 
	indicating that the corresponding methods are adapted by one or more aspects in the system.

<dt><img src="images/package.gif"> <b><code>package org.objectteams.sample.ordersystem.reservation</code></b>
<dl>
<dt><img src="images/team_obj.gif"> <code>team class Reservations</code>
<dd>A simple reservation component; abstract at this level because it is
    completely undefined what kinds of <img src="images/role_obj.gif">&nbsp;<code>Reservable</code> items are 
    being managed.
<dt><img src="images/team_obj.gif"> <code>team class StockReservations</code>
<dd>Binding the reservation component in order to manage <code>StockItems</code>.
</dl>

<dt><img src="images/package.gif"> <b><code>package org.objectteams.sample.ordersystem.order</code></b>
<dl>
<dt><img src="images/team_obj.gif"> <code>team class Order</code>
<dd>A simple ordering component; abstract at this level because it is
    completely undefined what kinds of <img src="images/role_obj.gif">&nbsp;<code>Items</code> items are 
    being managed. <br />
    However, each order is associated to a <img src="images/role_obj.gif">&nbsp;<code>Customer</code>
    and his or her <img src="images/role_obj.gif">&nbsp;<code>Address</code>. Please note, that these
    role classes are not related to those classes defined in <code>org.objectteams.samples.data</code>.
<dt><img src="images/team_obj.gif"> <code>team class StockOrder</code>
<dd>Binding the order component in order to manage <code>StockItems</code>.
</dl>
<dt><img src="images/package.gif"> <b><code>package org.objectteams.sample.ordersystem.gui</code></b>
<dl><img src="images/class_public.gif"> <code>class OrderSystemMainFrame</code>
<dd>Definition of the GUI of this system. Most of this class might have been generated by 
 	a Form Designer.
<dt><img src="images/team_obj.gif"> <code>team class ModelAdapterTeam</code>
<dd>This aspect binds classes from the packages <code>data</code> and <code>store</code> to
    the GUI.
<dt><img src="images/team_obj.gif"> <code>team class ControllerAdapterTeam</code>
<dd>This aspect contains all listeners and attaches them to the GUI.
<dt><img src="images/team_obj.gif"> <code>team class GUIAdapterTeam</code>
<dd>This aspect ensures that each window will appear in the middle of the screen.
<dt>
<dd>
</dl>
</dl>

<h2>Running the application</h2>
In order to see the full functionality enter the following information to the launch configuration:
<table padding=3 border=1>
<tr><td colspan=2><b>Tab <img src="images/class_public.gif"> Main</b>
<tr><td>Main class<td><code>org.objectteams.samples.ordersystem.gui.GUITest</code>
<tr><td colspan=2><b>Tab <img src="images/team_obj.gif"> Team Activation</b>
<tr><td>Add:	<td><code>ModelAdapterTeam</code><br />
				    <code>ControllerAdapterTeam</code><br />
				    <code>GUIAdapterTeam</code>
</table>
</body>
</html>