blob: f37851b6e548218e8a679536d84da9f3f0b12e8e [file] [log] [blame]
<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>